Как создать блоки кода с вкладками в Mkdocs или Sphinx?
3 ответа
Существует https://github.com/svx/sphinxcontrib-osexample, который пытается реализовать такую функцию, но она очень элементарна!
Для mkdocs у вас есть расширение pymdownx.tabbed.
Вы должны будете указать это в своем
mkdocs.yaml
файл:
markdown_extensions:
- pymdownx.tabbed
Тогда синтаксис в вашем файле уценки будет [взят из документации]:
=== "Tab 1"
Markdown **content**.
Multiple paragraphs.
=== "Tab 2"
More Markdown **content**.
- list item a
- list item b
Гарантированно хорошо сочетается с материальной темой (см. Страницу с примерами). Для других тем вам придется попробовать это на себе.
Существует расширение https://github.com/yacir/markdown-fenced-code-tabs. Я использую это с MkDocs
,
## Tabs
```curl
$ curl -O wget http://example.com/pk.zip
```
```wget
$ wget http://example.com/pk.zip
```
## Single block
```
$ ls -lisa
```
становится
А также https://github.com/mikecules/MarkdownBSCodeTabs для mkdocs, который делает то же самое, что и markdown-fenced-code-tabs
Существует проблема с ними обоими: если вы включите многократный кодовый блок с одним и тем же языком, все они будут отображаться с одинаковым именем, но вы не сможете переключаться между ними.
Кроме того, документация spark (написанная на Jekyll) имеет приятные вкладки кода.
См. https://github.com/apache/spark/blob/master/docs/quick-start.md например.
Существует расширение mkdocs -CodeHilite- которое использует другое расширение -SuperFences- которое творит чудеса для примеров кода на разных языках / в разных ситуациях. Это часть коллекции расширений PyMdown.
Кроме того, CodeHilite предоставляет:
- Подсветка синтаксиса для более чем 300 языков (тот, который поддерживается Pygments)
- Нумерация строк
- Основные моменты линии