配置#
MyST-NB 可以在三个级别进行配置:全局、每个文件和每个笔记本单元格,最具体的配置优先。
全局配置#
在全局级别覆盖默认配置是通过在 Sphinx conf.py
文件中指定变量来实现的。所有 myst_nb
配置变量都以 nb_
为前缀,例如:
nb_execution_timeout = 60
阅读#
控制文件的读取方式。
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
自定义读取笔记本的格式;后缀 -> 读取器 |
执行#
此配置用于控制在构建时如何执行 Jupyter Notebooks。
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
内核名称正则表达式到替换内核名称的映射(在执行前应用) |
|
|
|
匹配 eval 表达式允许值的正则表达式 |
|
|
|
笔记本的执行模式 |
|
|
|
缓存笔记本的文件夹路径(默认: |
|
|
|
排除笔记本的 (POSIX) 通配符模式 |
|
|
|
执行超时(秒) |
|
|
|
使用临时文件夹作为执行当前工作目录 |
|
|
|
允许执行期间发生错误 |
|
|
|
触发异常而不是发出警告 |
|
|
|
打印执行错误的跟踪信息到 stderr |
阅读#
这些配置选项影响了笔记本的解析和输出呈现的外观。
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
合并 stdout/stderr 执行输出流 |
|
|
|
执行输出渲染类的入口点(在组 |
|
|
|
移除代码单元格源 |
|
|
|
移除代码单元格输出 |
|
|
|
提示展开隐藏的代码单元格 {content|source|outputs} |
|
|
|
提示折叠隐藏的代码单元格 {content|source|outputs} |
|
|
|
为代码单元格源行编号 |
|
|
|
覆盖 MIME 类型的基本渲染优先级:(构建器名称, MIME 类型, 优先级) 列表 |
|
|
|
标准错误输出的行为 |
|
|
|
应用于标准输出/标准错误和文本/纯文本输出的 Pygments 词法分析器 |
|
|
|
应用于错误/回溯输出的 Pygments 词法分析器 |
|
|
|
图像输出的选项(class|alt|height|width|scale|align) |
|
|
|
图表输出的选项(类|名称|标题|标题在前) |
|
|
|
用于 text/markdown 渲染的格式 |
|
|
|
包含 ipywidgets 的页面上要加载的 Javascript |
文件级别配置#
在文件级别覆盖默认配置是通过在文件的元数据中指定变量来实现的,这些变量位于 mystnb
键下。
在 Jupyter 笔记本中,这被添加到笔记本级别的元数据中,例如:
{
"metadata": {
"mystnb": {
"execution_timeout": 60
}
}
}
在基于文本的笔记本中,这被添加到 YAML 顶部内容中,例如:
---
file_format: mystnb
mystnb:
execution_timeout: 60
---
执行#
此配置用于控制在构建时如何执行 Jupyter Notebooks。
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
匹配 eval 表达式允许值的正则表达式 |
|
|
|
笔记本的执行模式 |
|
|
|
缓存笔记本的文件夹路径(默认: |
|
|
|
执行超时(秒) |
|
|
|
使用临时文件夹作为执行当前工作目录 |
|
|
|
允许执行期间发生错误 |
|
|
|
触发异常而不是发出警告 |
|
|
|
打印执行错误的跟踪信息到 stderr |
阅读#
这些配置选项影响了笔记本的解析和输出呈现的外观。
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
合并 stdout/stderr 执行输出流 |
|
|
|
执行输出渲染类的入口点(在组 |
|
|
|
移除代码单元格源 |
|
|
|
移除代码单元格输出 |
|
|
|
提示展开隐藏的代码单元格 {content|source|outputs} |
|
|
|
提示折叠隐藏的代码单元格 {content|source|outputs} |
|
|
|
为代码单元格源行编号 |
|
|
|
覆盖 MIME 类型的基本渲染优先级:(构建器名称, MIME 类型, 优先级) 列表 |
|
|
|
标准错误输出的行为 |
|
|
|
应用于标准输出/标准错误和文本/纯文本输出的 Pygments 词法分析器 |
|
|
|
应用于错误/回溯输出的 Pygments 词法分析器 |
|
|
|
图像输出的选项(class|alt|height|width|scale|align) |
|
|
|
图表输出的选项(类|名称|标题|标题在前) |
|
|
|
用于 text/markdown 渲染的格式 |
单元格级别配置#
在单元格级别覆盖默认配置是通过在单元格的元数据中指定变量来实现的,这些变量位于 mystnb
键下。
在 Jupyter 笔记本中,这被添加到单元格级别的元数据中,例如:
{
"cell_type": "code",
"source": ["print('hello world')"],
"metadata": {
"mystnb": {
"number_source_lines": true
}
}
}
在基于文本的笔记本中,这被添加到代码单元格的 YAML 中,例如:
```{code-cell} ipython3
---
mystnb:
number_source_lines: true
---
print('hello world')
```
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
合并 stdout/stderr 执行输出流 |
|
|
|
移除代码单元格源 |
|
|
|
移除代码单元格输出 |
|
|
|
提示展开隐藏的代码单元格 {content|source|outputs} |
|
|
|
提示折叠隐藏的代码单元格 {content|source|outputs} |
|
|
|
为代码单元格源行编号 |
|
|
|
标准错误输出的行为 |
|
|
|
应用于标准输出/标准错误和文本/纯文本输出的 Pygments 词法分析器 |
|
|
|
应用于错误/回溯输出的 Pygments 词法分析器 |
|
|
|
图像输出的选项(class|alt|height|width|scale|align) |
|
|
|
图表输出的选项(类|名称|标题|标题在前) |
|
|
|
用于 text/markdown 渲染的格式 |
Markdown 解析配置#
MyST-NB 解析器源自 基础 MyST 解析器,因此所有相同的配置选项都可用。如 MyST 配置选项 中所述,完整的全局选项集为:
名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
使用严格的 CommonMark 解析器 |
|
|
|
使用严格的 GitHub 风格 Markdown 解析器 |
|
|
|
启用语法插件 |
|
|
|
禁用 Commonmark 语法元素 |
|
|
|
将所有链接解析为简单超链接 |
|
|
|
在新标签页中打开所有外部链接 |
|
|
|
转换为外部链接的 URI 方案 |
|
|
|
用于搜索链接引用的 Sphinx 域名 |
|
|
|
将代码块解释为指令,适用于某些语言名称。这对于像 dot 和 mermaid 这样的代码块以及与其他 Markdown 渲染器的互操作性非常有用。 |
|
|
|
为这些语言的代码块添加行号 |
|
|
|
Convert a |
|
|
|
Heading level depth to assign HTML anchors |
|
|
|
Function for creating heading anchors, or a python import path e.g. |
|
|
|
HTML meta tags |
|
|
|
Move all footnotes to the end of the document, and sort by reference order |
|
|
|
Place a transition before sorted footnotes |
|
|
|
For reading speed calculations |
|
|
|
Substitutions mapping |
|
|
|
Substitution delimiters |
|
|
|
Recognise URLs without schema prefixes |
|
|
|
Parse |
|
|
|
Allow initial/final spaces in |
|
|
|
Allow initial/final digits |
|
|
|
Parse inline |
|
|
|
Update sphinx.ext.mathjax configuration to ignore |
|
|
|
MathJax classes to add to math HTML |
|
|
|
Enable checkboxes |
|
|
|
A list of warning types to suppress warning messages |
|
|
|
Syntax highlight code blocks with pygments |
|
|
|
Mapping of key to (url, inv file), for intra-project referencing |
警告抑制#
当 Sphinx 遇到错误或引发警告时,它将打印生成该错误的文本的位置和源文件。根据您使用的是 Markdown 文件还是 Jupyter Notebook 文件,其工作方式略有不同。
对于 Markdown (.md
) 文件,Sphinx 将正确报告与错误或警告相关的行号:
source/path:4: (WARNING/2) Unknown mime type: 'xyz' [mystnb.unknown_mime_type]
对于 Jupyter Notebook (.ipynb
) 文件,这些错误也对应于单元格索引。为了允许这一点,使用一种特殊的行号格式,对应于:<CELL_INDEX> * 10000 + LINE_NUMBER
。
例如,以下错误对应于单元格 1,第 4 行:
source/path:10004: (WARNING/2) Unknown mime type: 'xyz' [mystnb.unknown_mime_type]
一般来说,如果您的构建记录了任何警告,您应该修复它们,或者如果您认为警告是错误的,请提出 Issue。但是,在某些情况下,如果您希望抑制警告,可以使用 Sphinx suppress_warnings
配置选项。所有 myst-nb 警告都以它们的类型为前缀,可以通过例如以下方式抑制:
suppress_warnings = ["mystnb.unknown_mime_type"]