4

我正在使用 Pelican 和 pygments 为我的 MD 文档生成语法突出显示,但是,我无法将突出显示应用于缩进块。

例如:

  1. 文本1

  2. 文本 2

      Code Here
    
  3. 正文 3

10 space 方法非常适合将代码作为列表的子元素放置,但是,我不能像通常在列表之外那样应用语法突出显示

```蟒蛇

有人可以解释我如何将代码作为带有语法突出显示的列表的子元素吗?

更新:我现在想通了。对于将来感到困惑的任何人,这就是我的代码的外观。

1. MD List El 1
2. MD List El 2
3. MD List El 3
(blank line)
(2 tabs):::python
        code here
(blank line)
4. MD List El 3

这样做成功地为我生成了列表编号。

4

2 回答 2

9

鹈鹕的文件指出:

对于 Markdown,在代码块上方包含语言标识符,缩进标识符和代码:

一段文字。

    :::identifier
    <code goes here>

指定的标识符(例如 python、ruby)应该是出现在可用词法分析器列表中的标识符。

当然,需要额外的缩进级别来将该代码块嵌套在列表中。Markdown 的缩进级别是 4 个空格,所以 4 个空格嵌套在列表中加上 4 个空格使其成为代码块 = 8 个缩进空格。

因此,这应该可以解决问题(出于说明目的,空格由“·”表示):

1. 文字 1

2. 文字 2

················· :::python
_#Code Here

3.文字3

您还可以使用选项卡(以“→”表示,用于说明目的):

1. 文字 1

2. 文字 2

→→ :::python
→→#Code Here

3.文字3

如果你仍然没有得到语法高亮,你确定你安装了所有的依赖项吗?代码高亮由Pygments完成,除了Python-Markdown之外还需要安装它。

您还需要确保已将 Pygments 兼容的 css 文件创建/复制到您的项目并从您的 html 模板链接到它们。我不确定 Pelican 是否默认为您提供此功能,但如果没有它,即使突出显示在那里也不会可见。

于 2014-01-24T01:03:33.397 回答
1

Pelican 似乎使用这个库来支持它的 Markdown。根据其文档,您应该能够执行类似的操作

:::python
import re
# ...

或者

#!python
import re
# ...

无论哪种情况,您都应该得到一个渲染的

import re
# ...

没有第一行。

如果这些都不起作用,您可以尝试这种 HTML 注释语法,许多 Markdown 解析器都支持这种语法,包括用于 Stack Overflow 的解析器:

* Item 1
* Item 2

<!-- language: lang-python -->

    import re
    # ...
于 2014-01-23T18:42:13.587 回答