我正在尝试通过 mkdocs(带有材料)从 markdown 文件生成文档以在 gitlab 上发布。我的文件包括代码块和美人鱼图表,它们声明相同(在语言中有所不同)。我想使用 CodeHilite 美化代码块,但美人鱼块也将被它作为代码块处理,而不是被 mermaid-mkdocs 插件忽略。有没有办法,我可以从 codeHilite 或任何其他更改中排除某些块以同时使用两者?
2 回答
我遇到了完全相同的问题,并通过使用pymdownx
扩展找到了以下解决方案(与 mkdocs 材料主题捆绑在一起,请参阅https://squidfunk.github.io/mkdocs-material/extensions/pymdown/):
将以下内容包含到您的mkdocs.yml
:
markdown_extensions:
- codehilite
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_div_format
extra_javascript:
- https://unpkg.com/mermaid@8.5.1/dist/mermaid.min.js
我不为美人鱼使用任何额外的 mkdocs 插件,例如mermaid2
.
此解决方案基于https://github.com/squidfunk/mkdocs-material/issues/693#issuecomment-411885426
如果您使用mermaid2插件,则自述文件包含有关同时使用 Mermaid 和代码高亮的部分。
您将不得不以这种方式使用超级围栏:
markdown_extensions:
- pymdownx.superfences:
# make exceptions to highlighting of code:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:mermaid2.fence_mermaid
注意: @streuspeicher 说你不必使用 mermaid2 插件来利用美人鱼图是正确的,如果你对mkdocs、javascript 库等有一定的了解的话。
我在设计 mermaid2 [公开] 时考虑了两种类型的用户:
对 css、javascript 等以及 mermaid 的基本需求知之甚少的初学者。他们只需要
mermaid2
在他们的插件列表下声明,它就会开箱即用。在另一个极端,高级用户真的想通过主题、回调等来调整他们对美人鱼的使用,并希望有一个可靠的框架来做到这一点。
如果您处于最佳状态(对美人鱼图有基本需求,并且您对扩展、css、javascript 等有信心),您可以愉快地不使用 mermaid2。