1

我一直在编写一些 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 是否支持这一点,或者您是否能够以其他方式使其工作?

4

1 回答 1

0

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

于 2020-04-13T12:15:37.153 回答