0

我正在尝试通过 mkdocs(带有材料)从 markdown 文件生成文档以在 gitlab 上发布。我的文件包括代码块和美人鱼图表,它们声明相同(在语言中有所不同)。我想使用 CodeHilite 美化代码块,但美人鱼块也将被它作为代码块处理,而不是被 mermaid-mkdocs 插件忽略。有没有办法,我可以从 codeHilite 或任何其他更改中排除某些块以同时使用两者?

4

2 回答 2

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

于 2020-05-19T10:16:09.310 回答
2

如果您使用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 [公开] 时考虑了两种类型的用户:

  1. 对 css、javascript 等以及 mermaid 的基本需求知之甚少的初学者。他们只需要mermaid2在他们的插件列表下声明,它就会开箱即用。

  2. 在另一个极端,高级用户真的想通过主题、回调等来调整他们对美人鱼的使用,并希望有一个可靠的框架来做到这一点。

如果您处于最佳状态(对美人鱼图有基本需求,并且您对扩展、css、javascript 等有信心),您可以愉快地不使用 mermaid2。

于 2020-12-01T15:02:16.170 回答