python语法高亮使用Pygments程序
Posted
技术标签:
【中文标题】python语法高亮使用Pygments程序【英文标题】:python syntax hilighting using Pygment program 【发布时间】:2014-06-12 17:56:22 【问题描述】:所以,我有这个测试mardown文档,我用python生成了这样的html文档:
python -m markdown -x codehilite mydoc.md > mydoc.html
然后,我使用 Pygment 生成了 CSS 文件,如下所示:
pygmentize -S default -f html > codehilite.css
然后,我将此 CSS 文件的链接添加到 mydoc.html 中,但是,生成的 HTML 文档仍然没有完全突出显示 python 代码。 "" 中嵌入的字符串是高亮的,而 import 和 print 函数则不是,如图:
这是我的 mardown 文件:(mydoc.md)
This is a test
import numpy
print ("Hello world!")
这是我的 HTML 文档:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="./codehilite.css">
</head>
<body>
<p>This is a test</p>
<div class="codehilite"><pre><span class="n">import</span> <span class="n">numpy</span>
<span class="n">print</span> <span class="p">(</span><span class="s">"Hello world!"</span><span class="p">)</span>
</pre></div>
</body>
</html>
并且 codehilite.css 包含:
.hll background-color: #ffffcc
.c color: #408080; font-style: italic /* Comment */
.err border: 1px solid #FF0000 /* Error */
.k color: #008000; font-weight: bold /* Keyword */
.o color: #666666 /* Operator */
.cm color: #408080; font-style: italic /* Comment.Multiline */
.cp color: #BC7A00 /* Comment.Preproc */
.c1 color: #408080; font-style: italic /* Comment.Single */
.cs color: #408080; font-style: italic /* Comment.Special */
.gd color: #A00000 /* Generic.Deleted */
.ge font-style: italic /* Generic.Emph */
.gr color: #FF0000 /* Generic.Error */
.gh color: #000080; font-weight: bold /* Generic.Heading */
.gi color: #00A000 /* Generic.Inserted */
.go color: #808080 /* Generic.Output */
.gp color: #000080; font-weight: bold /* Generic.Prompt */
.gs font-weight: bold /* Generic.Strong */
.gu color: #800080; font-weight: bold /* Generic.Subheading */
.gt color: #0040D0 /* Generic.Traceback */
.kc color: #008000; font-weight: bold /* Keyword.Constant */
.kd color: #008000; font-weight: bold /* Keyword.Declaration */
.kn color: #008000; font-weight: bold /* Keyword.Namespace */
.kp color: #008000 /* Keyword.Pseudo */
.kr color: #008000; font-weight: bold /* Keyword.Reserved */
.kt color: #B00040 /* Keyword.Type */
.m color: #666666 /* Literal.Number */
.s color: #BA2121 /* Literal.String */
.na color: #7D9029 /* Name.Attribute */
.nb color: #008000 /* Name.Builtin */
.nc color: #0000FF; font-weight: bold /* Name.Class */
.no color: #880000 /* Name.Constant */
.nd color: #AA22FF /* Name.Decorator */
.ni color: #999999; font-weight: bold /* Name.Entity */
.ne color: #D2413A; font-weight: bold /* Name.Exception */
.nf color: #0000FF /* Name.Function */
.nl color: #A0A000 /* Name.Label */
.nn color: #0000FF; font-weight: bold /* Name.Namespace */
.nt color: #008000; font-weight: bold /* Name.Tag */
.nv color: #19177C /* Name.Variable */
.ow color: #AA22FF; font-weight: bold /* Operator.Word */
.w color: #bbbbbb /* Text.Whitespace */
.mf color: #666666 /* Literal.Number.Float */
.mh color: #666666 /* Literal.Number.Hex */
.mi color: #666666 /* Literal.Number.Integer */
.mo color: #666666 /* Literal.Number.Oct */
.sb color: #BA2121 /* Literal.String.Backtick */
.sc color: #BA2121 /* Literal.String.Char */
.sd color: #BA2121; font-style: italic /* Literal.String.Doc */
.s2 color: #BA2121 /* Literal.String.Double */
.se color: #BB6622; font-weight: bold /* Literal.String.Escape */
.sh color: #BA2121 /* Literal.String.Heredoc */
.si color: #BB6688; font-weight: bold /* Literal.String.Interpol */
.sx color: #008000 /* Literal.String.Other */
.sr color: #BB6688 /* Literal.String.Regex */
.s1 color: #BA2121 /* Literal.String.Single */
.ss color: #19177C /* Literal.String.Symbol */
.bp color: #008000 /* Name.Builtin.Pseudo */
.vc color: #19177C /* Name.Variable.Class */
.vg color: #19177C /* Name.Variable.Global */
.vi color: #19177C /* Name.Variable.Instance */
.il color: #666666 /* Literal.Number.Integer.Long */
【问题讨论】:
codehilite.css
包含什么内容?
【参考方案1】:
我会明确添加语言,因为自动猜测并不总是可靠的,例如,
:::python
print("Hello, World")
a = 1 + 2
这应该可以解决您的问题;)
【讨论】:
以上是关于python语法高亮使用Pygments程序的主要内容,如果未能解决你的问题,请参考以下文章