The documentation is a work in progress, and English edition is just an empty shell for now. I will translate it when Chinese edition has done.
v-no 用于渲染 Markdown 的 API 有三个,它们分别对应三种不同的场景,最后都会将数据交由 markdown-it 的 render
函数渲染(重写了部分核心语法的渲染规则)。
vno.markdown.renderMD
这个函数最接近 markdown-it 的 render
函数,它基本上只是预处理了文件切片和内容目录这两个语法标记,下面两个函数最后也是通过调用它来取得渲染数据。
如果你只是想简单渲染一个 Markdown 字符串,它最适合不过了。
vno.articleSelf.renderMD
它是 v-no 最核心的渲染函数,渲染结果会直接展示在页面上,你可以调用它来用指定字符串渲染页面。
这里简单描述一下它的渲染逻辑:
graph TD
classDef key fill:#f96;
classDef key2 fill:#f69;
A[执行行内脚本]:::key --> B{是否为空}
B --> |是| C[渲染 Markdown]:::key2
D --> |是| E[重定向页面]
B --> |否| D{是否为重定向}
D --> |否| F[预处理异步语法标记]
F --> G[渲染 Markdown]:::key2
G --> H[拼接嵌入文件]:::key
H --> I{是否为空}
I --> |是| C
I --> |否| J[更新生成列表]:::key
J --> K{是否为空}
K --> |是| C
K --> |否| L{是否为搜索页}
L --> |否| C
L --> |是| M[预处理搜索页语法标记]
M --> C
vno.renderMD
它是上面那个函数的逻辑简化版,只保留了必要的处理,可以脱离页面得到渲染数据。
这里简单描述一下它的渲染逻辑:
graph TD
classDef key fill:#f96;
classDef key2 fill:#f69;
A[trim 数据] --> B{是否为空}
B --> |是| C[返回数据]
B --> |否| D[执行行内脚本]:::key
D --> E{是否为空}
E --> |是| C
E --> |否| F[拼接嵌入文件]:::key
F --> G{是否为空}
G --> |是| C
G --> |否| H[更新生成列表]:::key
H --> I{是否为空}
I --> |是| C
I --> |否| J[渲染 Markdown]:::key2
J --> C
- 流程图由 Mermaid 绘制。
- This page is open source, improve it