Как я могу использовать кодехилит и русалку вместе?

Мы генерируем документацию с помощью mkdocs с темой материала и до сих пор использовали расширение codehilite. Я добавил русалку, используя метод, описанный здесь: https://github.com/squidfunk/mkdocs-material/issues/693.

Во-первых, моя уценка:

# Examples

## Mermaid
```mermaid
graph LR
    a[Start] -- b[(Storage)]-->d[End]
```
## Code

```
#!/usr/bin/python
import tensorflow as tf
```

Мой mkdocs.yml:

# Project information
site_name: Test
site_description: 'Mermaid with CodeHiLite'

theme:
   name: material
   feature:
      tabs: false

extra_javascript:
   - 'custom_content/mermaid.min.js'

markdown_extensions:
   - codehilite

В этой конфигурации код русалки не отображается в виде диаграммы, но код выделен синтаксисом.

Codehilite

Если я расширю свой mkdocs.yml, чтобы добавить русалку вот так:

# Project information
site_name: Test
site_description: 'Mermaid with CodeHiLite'
theme:
   name: material
   feature:
      tabs: false

extra_javascript:
   - 'custom_content/mermaid.min.js'

markdown_extensions:
   - codehilite
   - pymdownx.superfences:
       custom_fences:
         - name: mermaid
           class: mermaid
           format: !!python/name:pymdownx.superfences.fence_div_format

тогда диаграммы русалок отображаются правильно, но код не выделяется синтаксисом.

Русалка

Если я изменю уценку, чтобы добавить язык в блок кода

``` python
#!/usr/bin/python
import tensorflow as tf
```

тогда и код, и диаграмма отображаются правильно. У меня проблема в том, что в существующей документации не указан язык, и до сих пор это работало.

Есть идеи, как заставить эти два расширения лучше работать вместе? Или мне просто нужно будет сказать разработчикам, чтобы они обновили свою уценку?


person Henry Rusted    schedule 11.06.2020    source источник


Ответы (1)


Для готового решения для интеграции диаграмм русалки в mkdocs теперь есть mkdocs-mermaid2 плагин, который я поддерживаю.

Для выделения кода он также содержит пример того, как заставить его работать с суперзаборами плагин.

Это может быть особенно полезно, если нужно передать аргументы к initialize() методу модуля рендеринга русалки, чтобы настроить внешний вид диаграмм.

person fralau    schedule 14.08.2020