Skip to content

Latest commit

 

History

History
109 lines (79 loc) · 3.52 KB

File metadata and controls

109 lines (79 loc) · 3.52 KB

Markdown 功能能力清单

本文档用于盘点 markview 当前已实现的 Markdown 相关能力,便于后续增强规划与回归验证。

1. 渲染能力

当前渲染主链路位于 frontend/src/components/MarkdownViewer.tsx

1.1 基础与扩展语法

  • GFM(表格、任务列表、删除线等)
  • 数学公式(KaTeX)
  • 换行增强
  • Emoji 短代码
  • 原始 HTML 渲染
  • 标题锚点自动生成
  • GitHub Alerts 风格提示块

1.2 代码与图表块

  • 代码高亮(Shiki,语言不支持时降级到纯文本)
  • Mermaid 渲染
    • 支持主题/布局参数
    • 支持全屏、缩放、平移、重置
    • 支持复制图像(PNG)
    • 渲染失败时按错误类型给出提示(语法/网络/超时/服务异常),并回退为代码块
  • PlantUML 渲染(通过 Kroki 服务)
    • 支持明暗主题预设注入
    • 支持全屏、缩放、平移
    • 渲染失败时按错误类型给出提示(语法/网络/超时/服务异常),并回退为代码块
    • 失败时提供一键重试入口
  • SVG Bob 渲染(bob-wasm
    • 支持主题适配
    • 支持全屏、缩放、平移
    • 渲染失败时按错误类型给出提示(语法/网络/超时/服务异常),并回退为代码块

1.3 元数据与 MDX 兼容

  • YAML 前置元数据(Frontmatter)解析与可折叠展示
  • .mdx 兼容阅读模式:
    • 去除 import / export
    • 转义 JSX 标签,避免被当作组件执行

1.4 自定义 Markdown 预处理

来自 frontend/src/utils/markdownEnhance.ts

  • Wiki Link([[...]])转换为标准链接
  • !!! note/warning/... 提示块语法转换为 GitHub Alerts

2. 链接与资源能力

  • 外链(http / mailto / tel)支持
  • 站内锚点(#...)支持
  • .md / .mdx 相对链接:点击后自动打开目标文件并加入会话
  • 相对链接打开失败时提供可见错误提示(避免静默失败)
  • 非 Markdown 资源:通过后端 raw 接口读取
  • 图片相对路径自动改写为后端可访问地址
  • 服务端对 raw 路径做目录边界限制,防止越界访问

3. 导航与阅读辅助

  • ToC 面板(按 H1-H6 标题导航)
  • 当前标题高亮与平滑滚动定位
  • 原文视图(Raw)与渲染视图切换
  • 全局全文搜索后可跳转到目标文档并定位命中内容

4. 结构化关系能力

来自 internal/server/graph.go

  • 文件间链接图(Graph)
  • 按 H1/H2 抽取的大纲结构图(Outline)
  • 反向链接(Backlinks)面板

5. 导出与复制

  • 单文档 PDF 导出
  • 分组合并 PDF 导出
  • 复制内容(Markdown / 文本 / HTML)
  • 代码块复制
  • Mermaid 图像复制

6. 当前边界

  1. 拖拽上传文件为内存态,不支持文件系统实时刷新。
  2. PlantUML 依赖外部渲染服务(Kroki),离线场景受限。
  3. .mdx 为兼容阅读模式,不执行组件逻辑。
  4. 图谱能力当前聚焦 Markdown 链接关系,不是全格式知识图谱。

7. 后续增强建议(建议优先级)

P0(优先)

  1. 前置元数据支持更多格式(如 ... 结束符、BOM 容错)
  2. 图片远程加载失败的占位与重试提示
  3. 外部图表服务多次失败时提供更明确的排障建议

P1(建议)

  1. 图片懒加载与错误占位样式增强
  2. 图表导出能力统一(Mermaid/PlantUML/SVG Bob)
  3. 搜索结果键盘导航与高亮体验提升

P2(可选)

  1. 增加可配置 Markdown 扩展开关
  2. 增加本地 PlantUML 渲染兜底方案
  3. 增强图谱维度(标签、引用类型、跨分组统计)