1

我正在为我在 mkdocs 中的一个项目创建一个指令列表,我相信它使用 python-markdown 作为它的降价引擎。但是当我尝试在列表中的数字之间放置一个围栏代码块时,它会导致编号错误。

一个让我失望的例子(我还尝试在每个反引号围栏和实际单词之间添加换行符,但它仍然会弄乱编号):


1. Click this
```
some code
```
2. Click that

呈现如下内容:


1. Click this

some code

1. Click that

然后,当我尝试缩进它时,它只会弄乱渲染:


1. Click this
    ```
    some code
    ```
2. Click that


1. Click this ``` some code ```
2. Click that

是的,选项卡有效,但如果我想用 ```language. 有没有办法保留围栏代码块,但也维护列表编号。

4

1 回答 1

5

Pyhton-Markdown 的文档特别指出(在红色警告框中):

警告:防护代码块仅在文档根级别受支持。因此,它们不能嵌套在列表或块引用中。

因此,您必须使用缩进的代码块。当然,要将其保留为代码块并使其嵌套,您需要将其缩进两次:

1. Click this

        some code

2. Click that

如果要为代码块定义语言,则需要使用配置文件中的markdown_extensions配置选项启用CodeHilite扩展:mkdocs.yml

markdown_extensions:
    codehilite:
        use_pygments: False

通过将use_pygments选项设置为False,CodeHilite 将输出与围栏代码块相同的 HTML,然后由 MkDocs 主题提供的 JS 库突出显示。

然后你需要使用CodeHilite的语法来定义一种语言:

1. Click this

        :::language    
        some code

2. Click that
于 2019-08-16T13:48:02.080 回答