diff --git a/web/screens/Hub/ModelList/ModelItem/index.tsx b/web/screens/Hub/ModelList/ModelItem/index.tsx index e782e6f70..e96021c20 100644 --- a/web/screens/Hub/ModelList/ModelItem/index.tsx +++ b/web/screens/Hub/ModelList/ModelItem/index.tsx @@ -5,6 +5,7 @@ import Image from 'next/image' import { ModelSource } from '@janhq/core' import { DownloadIcon, FileJson } from 'lucide-react' +import rehypeRaw from 'rehype-raw' import ModelLabel from '@/containers/ModelLabel' @@ -36,6 +37,7 @@ const ModelItem: React.FC = ({ model, onSelectedModel }) => { {extractDescription(model.metadata?.description) || '-'} diff --git a/web/utils/modelSource.ts b/web/utils/modelSource.ts index 159178136..2f4676298 100644 --- a/web/utils/modelSource.ts +++ b/web/utils/modelSource.ts @@ -7,12 +7,19 @@ export const extractDescription = (text?: string) => { const normalizedText = removeYamlFrontMatter(text) const overviewPattern = /(?:##\s*Overview\s*\n)([\s\S]*?)(?=\n\s*##|$)/ const matches = normalizedText?.match(overviewPattern) - if (matches && matches[1]) { - return matches[1].trim() - } - return normalizedText?.slice(0, 500).trim() -} + let extractedText = + matches && matches[1] + ? matches[1].trim() + : normalizedText?.slice(0, 500).trim() + // Remove image markdown syntax ![alt text](image-url) + extractedText = extractedText?.replace(/!\[.*?\]\(.*?\)/g, '') + + // Remove HTML tags + extractedText = extractedText?.replace(/]*>/g, '') + + return extractedText +} /** * Remove YAML (HF metadata) front matter from content * @param content