read-the-docs - readthedocs 是否支持 mkdocs 配置中的显式标记?
问题描述
我一直在编写一些 mkdocs 文档,其中包括我想保留在 markdown 文件中而不是变成图像并嵌入它们的美人鱼图
我在这里遇到了这个很棒的解决方案:https ://github.com/squidfunk/mkdocs-material/issues/693#issuecomment-411885426
它使用 pymdown-extensions 插件的超级围栏功能来创建一个自定义代码块,该代码块在代码块内呈现美人鱼图。
它适用于本地运行的 mkdocs,但是当我提交配置文件以读取文档时,它无法通过 yaml 验证
Your mkdocs.yml could not be loaded, possibly due to a syntax error (line 18, column 19)
mkdocs.yml 配置文件中的第 18 行是调用 superfences python 类的部分
format: !!python/name:pymdownx.superfences.fence_div_format
查看 yaml 规范https://yaml.org/spec/1.2/spec.html显示这!!
是针对显式标记的,并且它似乎已经成为规范的一部分很长一段时间(回到版本 1)。我尝试将值设为字符串,但这会导致 python 将其作为字符串读取
有谁知道 readthedocs 是否支持这一点,或者您是否能够以其他方式使其工作?
解决方案
ReadTheDocs 正在使用解析mkdocs.yaml
文件pyyaml
,但它似乎无法识别!!
.
例如:
>>> import yaml
>>> document = """
a: 1
b:
c: 3
d: !!4
"""
>>> print(yaml.dump(yaml.load(document)))
<stdin>:1: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/site-packages/yaml/__init__.py", line 114, in load
return loader.get_single_data()
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 51, in get_single_data
return self.construct_document(node)
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 60, in construct_document
for dummy in generator:
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 413, in construct_yaml_map
value = self.construct_mapping(node)
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 218, in construct_mapping
return super().construct_mapping(node, deep=deep)
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 143, in construct_mapping
value = self.construct_object(value_node, deep=deep)
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 100, in construct_object
data = constructor(self, node)
File "/usr/lib/python3.8/site-packages/yaml/constructor.py", line 427, in construct_undefined
raise ConstructorError(None, None,
yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:4'
in "<unicode string>", line 5, column 8:
d: !!4
^
>>>
见:https ://github.com/readthedocs/readthedocs.org/issues/6889
推荐阅读
- javascript - 正则表达式以不同方式匹配第一个单词
- php - json和php中的这段代码有什么问题... consol错误?
- angular - 为什么我的 Angular 应用程序中出现此错误?
- c++ - C++ 中的模板参数类型分配器
- html - HTML 和 CSS 表格在 Android Firefox 中显示完美,但在 Android Chrome 中不完美
- c# - 如何在给定区域随机生成对象?
- python - 将 microbit 连接到 microbit python 编辑器的问题
- r - R:从 for 循环中保存模型输出 - 列表为空白
- express - 调用两个异步函数
- kubernetes - Pod 不会安排到具有本地 PV 的节点。持久卷声明不会绑定到本地持久卷