突出显示降价列表的语法

时间:2014-01-23 18:30:53

标签: python syntax-highlighting markdown pygments pelican

我使用Pelican和pygments为我的MD文档生成语法高亮显示,但是,我在将缩进应用于缩进块时遇到了麻烦。

例如:

  1. 文字1

  2. 文字2

      Code Here
    
  3. 文字3

  4. 10空格法非常适合将代码作为列表的子元素放置,但是,我无法应用语法高亮,就像我通常会在列表之外那样

    ```蟒

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

    更新: 我现在已经弄明白了。对于那些在未来感到困惑的人,我的代码看起来如何。

    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
    

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

2 个答案:

答案 0 :(得分:7)

Pelican的documentation州:

  

对于Markdown,请在代码上方添加语言标识符   阻止,缩进标识符和代码:

     

一段文字。

    :::identifier
    <code goes here>
     

指定的标识符(例如python,ruby)应该是一个   出现在list of available lexers

当然,在列表中嵌套该代码块需要额外的缩进级别。 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是否默认给你这个,但没有它,即使它在那里也不会显示突出显示。

答案 1 :(得分:1)

Pelican似乎使用this library来支持Markdown。根据{{​​3}},您应该可以执行类似

的操作
:::python
import re
# ...

#!python
import re
# ...

在任何一种情况下,你都应该得到渲染

import re
# ...

没有第一行。

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

* Item 1
* Item 2

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

    import re
    # ...