如何在Mkdocs或Sphinx中创建选项卡式代码块?

时间:2016-06-03 05:03:24

标签: documentation markdown python-sphinx mkdocs

有没有办法在Mkdocs或Sphinx中创建标签代码块,如下所示?

enter image description here

5 个答案:

答案 0 :(得分:2)

sphinxcontrib-osexample,试图实现这样的功能,但它非常简陋!

他们的文档示例 f

答案 1 :(得分:1)

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
```

<强>变为

enter image description here

答案 2 :(得分:1)

对于与markdown-fenced-code-tabs相同的mkdocs,还有https://github.com/mikecules/MarkdownBSCodeTabs

两者都存在问题,如果您使用相同的语言包含多个代码块,它们将以相同的名称显示,但您无法在它们之间切换。

此外,spark文档(用Jekyll编写)有很好的代码选项卡。

例如,请参阅https://github.com/apache/spark/blob/master/docs/quick-start.md

答案 3 :(得分:1)

有一个mkdocs扩展名-CodeHilite-利用了另一个扩展名-SuperFences-,该扩展名为使用不同语言/环境的代码示例提供了奇迹。这是扩展PyMdown的一部分。

CodeHilite example

此外,CodeHilite还提供:

  • 突出显示300多种语言(Pygments支持的一种语言)
  • 行号
  • 亮点 List item

答案 4 :(得分:0)

对于mkdocs,您拥有pymdownx.tabbed extension

您必须在mkdocs.yaml文件中声明它:

markdown_extensions:
  - pymdownx.tabbed

然后,降价文件中的语法将[从文档中获取]:

=== "Tab 1"
    Markdown **content**.

    Multiple paragraphs.

=== "Tab 2"
    More Markdown **content**.

    - list item a
    - list item b

保证可以与material主题一起很好地工作(请参阅page with examples)。对于其他主题,您必须自己尝试。