配置#
MyST 解析可以在全局和单个文档级别进行配置,最具体的配置优先。
1. 全局配置#
通过在 Sphinx conf.py
文件中指定变量,可以在全局级别覆盖默认配置。所有 myst_parser
全局配置变量都以 myst_
为前缀,例如:
myst_enable_extensions = ["deflist"]
参见
Docutils 中的配置,请参阅 单页构建 部分。
名称 |
类型 |
描述 |
---|---|---|
|
|
使用严格的 CommonMark 解析器(默认: |
|
|
使用严格的 Github Flavoured Markdown 解析器(默认: |
|
|
启用语法扩展(默认: |
|
|
禁用 Commonmark 语法元素(默认: |
|
|
将所有链接解析为简单超链接(默认: |
|
|
在新标签页中打开所有外部链接(默认: |
|
|
转换为外部链接的 URI 方案(默认: |
|
|
用于搜索链接引用的 Sphinx 域名(默认: |
|
|
将特定语言名称的代码栏解释为指令。这对于像 dot 和 mermaid 这样的代码栏以及与其他 Markdown 渲染器的互操作性非常有用。(默认: |
|
|
为这些语言的代码块添加行号(默认: |
|
|
将 front-matter 中的 |
|
|
为 HTML 锚点分配的标题级别深度(默认: |
|
|
用于创建标题锚点的函数,或 Python 导入路径,例如 |
|
|
HTML meta tags (default: |
|
|
将所有脚注移动到文档末尾,并按引用顺序排序(默认: |
|
|
在排序后的脚注前放置 transition(默认: |
|
|
用于阅读速度计算(默认: |
1.1. 插件#
特定于语法插件的配置:
名称 |
类型 |
描述 |
---|---|---|
|
|
替换:替换映射(默认: |
|
|
替换:替换分隔符(默认: |
|
|
linkify:识别没有模式前缀的 URL(默认: |
|
|
dollarmath:解析 |
|
|
dollarmath:允许在 |
|
|
dollarmath:允许初始/最终数字 |
|
|
dollarmath:解析内联 |
|
|
dollarmath:更新 sphinx.ext.mathjax 配置以忽略 |
|
|
dollarmath:添加到数学 HTML 的 MathJax 类(默认: |
|
|
tasklist:启用复选框(默认: |
2. Frontmatter(局部)配置#
Frontmatter 允许您指定关于单个文档应如何行为或渲染的元数据和选项。它是文档开头的 YAML 块,例如在 jekyll 中使用。文档应以三个或更多 ---
标记开头,YAML 解析直到找到结束的 ---
标记:
---
key1: value
key2: [value1, value2]
key3:
subkey1: value
---
参见
前言还用于 替换语法扩展,并且可以用于存储博客发布的信息(参见 ablog 的 myst-parser 支持)。
以下配置变量可以在文档前言中设置。这些可以在文档 前言 中的 myst
键下设置,例如:
---
myst:
enable_extensions: ["deflist"]
---
名称 |
类型 |
描述 |
---|---|---|
|
|
使用严格的 CommonMark 解析器(默认: |
|
|
使用严格的 Github Flavoured Markdown 解析器(默认: |
|
|
启用语法扩展(默认: |
|
|
禁用 Commonmark 语法元素(默认: |
|
|
将所有链接解析为简单超链接(默认: |
|
|
在新标签页中打开所有外部链接(默认: |
|
|
转换为外部链接的 URI 方案(默认: |
|
|
用于搜索链接引用的 Sphinx 域名(默认: |
|
|
将特定语言名称的代码栏解释为指令。这对于像 dot 和 mermaid 这样的代码栏以及与其他 Markdown 渲染器的互操作性非常有用。(默认: |
|
|
为这些语言的代码块添加行号(默认: |
|
|
将 front-matter 中的 |
|
|
为 HTML 锚点分配的标题级别深度(默认: |
|
|
HTML meta tags (default: |
|
|
将所有脚注移动到文档末尾,并按引用顺序排序(默认: |
|
|
在排序后的脚注前放置 transition(默认: |
|
|
用于阅读速度计算(默认: |
2.1. Setting HTML Metadata#
front-matter 可以包含特殊键 html_meta
;字典,包含要添加到生成的 HTML 中的 <meta>
元素 数据。这等同于使用 meta 指令。
HTML 元数据也可以通过 myst_html_meta
变量在 conf.py
中全局添加,在这种情况下,它将添加到所有 MyST 文档中。对于每个文档,myst_html_meta
字典将由文档级别的前言 html_meta
更新,且前言优先。
language = "en"
myst_html_meta = {
"description lang=en": "metadata description",
"description lang=fr": "description des métadonnées",
"keywords": "Sphinx, MyST",
"property=og:locale": "en_US"
}
---
myst:
html_meta:
"description lang=en": "metadata description"
"description lang=fr": "description des métadonnées"
"keywords": "Sphinx, MyST"
"property=og:locale": "en_US"
---
.. meta::
:description lang=en: metadata description
:description lang=fr: description des métadonnées
:keywords: Sphinx, MyST
:property=og:locale: en_US
<html lang="en">
<head>
<meta content="metadata description" lang="en" name="description" xml:lang="en" />
<meta content="description des métadonnées" lang="fr" name="description" xml:lang="fr" />
<meta name="keywords" content="Sphinx, MyST">
<meta content="en_US" property="og:locale" />
2.2. 插件#
特定于语法插件的配置:
名称 |
类型 |
描述 |
---|---|---|
|
|
替换:替换映射(默认: |
|
|
替换:替换分隔符(默认: |
|
|
linkify:识别没有模式前缀的 URL(默认: |
|
|
dollarmath:解析 |
|
|
dollarmath:允许在 |
|
|
dollarmath:允许初始/最终数字 |
|
|
dollarmath:解析内联 |
|
|
tasklist:启用复选框(默认: |
3. List of syntax extensions#
全部细节见 语法插件 部分。
- amsmath
启用对 amsmath LaTeX 方程的直接解析。
- attrs_inline
启用内联属性解析,详见此处。
- colon_fence
启用使用
:::
分隔符的代码栏,详见此处。- deflist
启用定义列表,详见此处。
- dollarmath
启用对
$
和$$
封装数学的解析。- fieldlist
启用字段列表,详见此处。
- html_admonition
将
<div class="admonition">
元素转换为 sphinx 警告节点,详见 HTML 警告语法。- html_image
将 HTML
<img>
元素转换为 sphinx 图像节点,详见此处。- linkify
自动识别‘裸’网页 URL 并添加超链接。
- replacements
自动转换一些常见的排版文本。
- smartquotes
自动将标准引号转换为其开/关变体。
- strikethrough
启用删除线语法,详见此处。
- substitution
替换键,详见此处。
- tasklist
在列表项的开头添加复选框,详见此处。
4. 构建警告#
以下列出了在构建过程中可能发出的 MyST 特定警告。这些将附加到警告消息的末尾(另请参阅 show_warning_types
),例如:
WARNING: Non-consecutive header level increase; H1 to H3 [myst.header]
一般来说,如果您的构建日志中有任何警告,您应该修复它们,或者如果您认为警告是错误的,请 提出问题。
然而,在某些情况下,如果您希望抑制警告,可以使用 suppress_warnings
配置选项,例如:
suppress_warnings = ["myst.header"]
或者对于 docutils CLI 使用 --myst-suppress-warnings="myst.header"
。
myst.deprecated
:已弃用的用法。myst.not_supported
:docutils 中尚未支持的功能。myst.render
:渲染方法未实现。myst.topmatter
:读取前言时出现问题。myst.duplicate_def
: Duplicate Markdown reference definition.myst.duplicate_def
:重复的 Markdown 引用定义。myst.directive_parse
:解析指令时出现问题。myst.directive_option
:解析指令选项时出现问题。myst.directive_comments
:指令选项包含 # 注释,未来版本可能不支持。myst.directive_body
:解析指令主体时出现问题。myst.directive_unknown
:未知指令。myst.role_unknown
: 未知角色。myst.xref_ambiguous
: 交叉引用找到多个目标。myst.xref_missing
: 交叉引用未找到目标。myst.inv_retrieval
: 检索或加载库存失败。myst.iref_missing
: 库存引用未找到目标。myst.iref_ambiguous
: 库存引用找到多个目标。myst.domains
: 找到一个旧域,该域不支持resolve_any_xref
。myst.heading_slug
: 计算标题 slug 时出错。myst.strikethrough
: 删除线警告,因为仅在 HTML 中实现。myst.html
: HTML 无法解析。myst.attribute
: 无效的属性值。myst.substitution
: 替换无法解析。