2.0.0
Skip to content

XMarkdown 插件 ​

插件分两类。plugins 里带 transform(content) 的对象会在解析前改写 Markdown 字符串。公式、高亮、Mermaid 走 marked 扩展或 components 映射,和 React @ant-design/x-markdown@2.0.0 一样。

发布包里的子路径:

  • @ant-design-x-vue/x-markdown/plugins/Latex
  • @ant-design-x-vue/x-markdown/plugins/HighlightCode
  • @ant-design-x-vue/x-markdown/plugins/Mermaid

主入口也导出这三个名字。浏览器脚本包没有单独再打一份 dist/plugins/*.min.js,请用包入口或子路径。

字符串 transform ​

plugin

Ship the TODO before Friday.

字符串 transform

plugins 的 transform 在 marked 之前运行。

Latex ​

Latex(options?) 返回 marked extensions,传给 config.extensions。默认把 align* 换成 aligned。katexOptions 原样交给 KaTeX。

属性说明类型默认值
replaceAlignStart是否把 align* 换成 alignedbooleantrue
katexOptionsKaTeX 配置KatexOptions{ output: 'html', throwOnError: false }

Pythagoras: .

行内 $...$ 和块级 $$。

流式输出公式时逐步解析。

独立页:公式。

HighlightCode ​

围栏代码渲染成 <code class="language-*">。用 components.code 读 class,再交给 HighlightCode。行内代码保持普通 <code>。

属性说明类型默认值
lang语言名string-
children代码文本string-
header顶栏;null 时不渲染默认顶栏VNode | null默认顶栏
className根节点类名string-
classNamesroot / header / headerTitle / codeobject-
styles与 classNames 对应的内联样式object-

A fenced block picks up the language class:

ts
export const answer = 42;

Inline const x = 1 stays a plain code tag.

围栏代码走 HighlightCode。

流式输出代码块时逐步高亮。

独立页:高亮 Code。

Mermaid ​

components.code 在语言是 mermaid 时换成 Mermaid。图表库只在浏览器里初始化,服务端渲染先显示源码。

属性说明类型默认值
children图表源码string-
header顶栏;null 时不渲染默认工具栏VNode | null默认工具栏
className根节点类名string-
classNamesroot / header / graph / codeobject-
styles与 classNames 对应的内联样式object-
```mermaid
graph TD
  A[Start] --> B[Answer]
```

一段流程图。

Here are several Mermaid diagram examples

#### 1. Flowchart (Vertical)

``` mermaid
graph TD
    A[Start] --> B{Data Valid?}
    B -->|Yes| C[Process Data]
    B -->|No| D[Error Handling]
    C --> E[Generate Report]
    D --> E
    E --> F[End]
    style A fill:#2ecc71,stroke:#27ae60
    style F fill:#e74c3c,stroke:#c0392b
```

#### 2. Sequence Diagram

``` mermaid
sequenceDiagram
    participant Client
    participant Server
    participant Database

    Client->>Server: POST /api/data
    Server->>Database: INSERT record
    Database-->>Server: Success
    Server-->>Client: 201 Created
```

#### 3. Quadrant Chart

```mermaid
quadrantChart
    title Reach and engagement of campaigns
    x-axis Low Reach --> High Reach
    y-axis Low Engagement --> High Engagement
    quadrant-1 We should expand
    quadrant-2 Need to promote
    quadrant-3 Re-evaluate
    quadrant-4 May be improved
    Campaign A: [0.3, 0.6]
    Campaign B: [0.45, 0.23]
    Campaign C: [0.57, 0.69]
    Campaign D: [0.78, 0.34]
    Campaign E: [0.40, 0.34]
    Campaign F: [0.35, 0.78]
```

流式输出 Mermaid 围栏时逐步渲染。

独立页:Mermaid · GPT-VIS。

Think ​

自定义标签可以映射到对话组件。think 交给 Think,默认插槽就是标签里的文本。Sources / ThoughtChain 用同样的 components 写法,见 对话增强。

Check the constraint, then answer.

The answer is 42.

把 think 标签渲染成 Think。

主题和文案 ​

HighlightCode 和 Mermaid 的按钮文案来自 useLocale。用 XProvider 包一层即可替换。样式可用组件 styles / classNames,或跟随 ant-design-vue Design Token。详见 主题与文案。Markdown 正文主题类名见 主题。

自定义插件 ​

支持 marked extensions 或带 transform 的自定义插件,见 自定义插件。