MyST 实现架构#

本页描述了实现细节,以帮助你理解项目的结构。

1.  markdown-it 令牌(tokens)的渲染器#

从高层次来看,MyST 解析器是 Markdown-It-Py 项目的扩展。Markdown-It-Py 是结构良好的 Python 解析器,用于解析 CommonMark 文本。它还定义了扩展点,以便在解析的文件中包含更多语法。MyST 解析器使用此扩展点来定义其自己的语法选项(例如,用于 Sphinx 角色和指令)。

此解析器的结果是 markdown-it token 流。

2.  docutils 渲染器#

MyST 解析器还为 markdown-it 令牌流定义了 docutils 渲染器。能够将 MyST Markdown 文件的解析元素转换为 docutils。

3.  Sphinx 解析器#

最后,MyST 解析器为文档生成系统 Sphinx 提供了解析器。此解析器执行以下操作:

  • Parse markdown files with the markdown-it parser, including MyST specific plugins

  • 使用 MyST docutils 渲染器将这些文件转换为 docutils 对象

  • 将这些提供给 Sphinx,以便用于构建你的网站。