Как создать блоки кода с вкладками в Mkdocs или Sphinx?

Есть ли способ создать блоки кода с вкладками, как в 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)
  • Нумерация строк
  • Основные моменты линии
Другие вопросы по тегам