diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 5b7efc4..4fc471c 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -30,6 +30,8 @@ "react-dom": "19.2.8", "react-icons": "5.7.0", "react-markdown": "^10.1.0", + "remark-cjk-friendly": "^2.3.1", + "remark-cjk-friendly-gfm-strikethrough": "^2.3.1", "remark-gfm": "^4.0.1", "shadow-plugin": "2.1.0", "shiki": "^1.29.2", diff --git a/apps/desktop/src/renderer/src/components/Markdown.tsx b/apps/desktop/src/renderer/src/components/Markdown.tsx index 6337fbd..9272275 100644 --- a/apps/desktop/src/renderer/src/components/Markdown.tsx +++ b/apps/desktop/src/renderer/src/components/Markdown.tsx @@ -1,6 +1,8 @@ import { memo, useEffect, useState, type ReactNode } from 'react' import ReactMarkdown, { type Components } from 'react-markdown' import remarkGfm from 'remark-gfm' +import remarkCjkFriendly from 'remark-cjk-friendly' +import remarkCjkFriendlyGfmStrikethrough from 'remark-cjk-friendly-gfm-strikethrough' import { useLLMOutput, type BlockMatch, @@ -96,41 +98,41 @@ const LANG_ALIAS: Record = { const mdComponents: Components = { p({ children }) { - return

{children}

+ return

{children}

}, h1({ children }) { - return

{children}

+ return

{children}

}, h2({ children }) { - return

{children}

+ return

{children}

}, h3({ children }) { - return
{children}
+ return
{children}
}, h4({ children }) { - return
{children}
+ return
{children}
}, - h5: ({ children }) =>
{children}
, - h6: ({ children }) =>
{children}
, + h5: ({ children }) =>
{children}
, + h6: ({ children }) =>
{children}
, ul({ children }) { - return + return }, ol({ children }) { - return
    {children}
+ return
    {children}
}, li({ children }) { return
  • {children}
  • }, blockquote({ children }) { return ( -
    +
    {children}
    ) }, table({ children }) { return ( -
    +
    {children}
    ) @@ -169,7 +171,7 @@ const mdComponents: Components = { }, pre({ children }) { return ( -
    {children}
    +
    {children}
    ) }, a({ children, href }) { @@ -191,16 +193,22 @@ const mdComponents: Components = { return {children} }, img({ src, alt }) { - return {alt} + return {alt} }, hr() { - return
    + return
    } } const MarkdownComponent: LLMOutputComponent = ({ blockMatch }) => (
    - + {/* remark-cjk-friendly:CommonMark 的 flanking 规则不认 CJK——`**` 紧邻 + * 汉字与全角标点(如 出自**《书名》**)时无法开合加粗,解析层修复; + * 删除线同理(GFM ~~ 的伴随插件) */} + {blockMatch.output}