Pelican 使用带有CodeHilite扩展的Python-Markdown将代码块传递给 Pygments。请注意,代码块不包括内联代码片段。事实上,我不知道任何支持突出显示内联代码的 Markdown 解析器。通常,内联代码片段太短而无法有效突出显示,并且几乎总是太短而无法利用 Pygments 的语言猜测算法。
我看到您已尝试使用属性列表扩展通知 Markdown 该语言。但是,所做的只是将一个类添加到<code>
包装代码片段的 HTML 标记中。由于 CodeHilite 扩展只适用于块,它甚至从不查看它,当然也不会将它传递给 Pygments。
您有几个不同的选项可用(每个选项都在增加所需的工作量):
您可以编写自己的 CSS 来更改背景和文本颜色,以便它们与块匹配。您不会获得语法高亮显示,但内联代码片段至少会匹配您的主题。无需在这里定义语言。
您可以使用 JavaScript 代码突出显示库来突出显示基于您使用属性列表扩展定义的语言的所有代码片段。但是,这可能需要您重新定义 JS 库的 CSS,使其与 Pygments 的输出相匹配。
您可以编写自己的 Python-Markdown 扩展(或者可能是 fork CodeHilite),除了块之外,它还突出显示内联代码片段。
就个人而言,我会推荐上面的(1)。实际上,查看您的页面,代码块似乎定义了以下内容:
.highlight pre, .highlighttable pre {
background: #272822;
color: #f8f8f2;
}
也就是说,<pre>
父元素分配了“highlight”类(或“highlighttable”类)将以这些颜色显示。由于您希望将相同的颜色分配给内联代码,请添加以下规则:
code {
background: #272822;
color: #f8f8f2;
}
只需确保在 Pelican 主题定义的样式之后定义它(似乎在http://vfxware.com/theme/css/bootstrap.slate.min.css中)。
当然,您可以更改现有的 CSS,但是如果您以后决定更新到新版本的主题或完全更改主题,您可能必须重新定义自己的规则。因此,我喜欢在一个单独的文件中定义我自己的一组覆盖,我总是确保它是最后一个加载的。