我有一种类似Lisp的语言,我想在Sphinx代码段文档中使用Pygments进行突出显示。我的方法是扩展现有的CommonLispLexer以使用NameHighlightFilter添加内置名称。但是,它不起作用,因此我必须缺少明显的东西。我在conf.py中添加了以下内容:
def setup(app):
from sphinx.highlighting import lexers
from pygments.lexers import CommonLispLexer
from pygments.token import Name
from pygments.filters import NameHighlightFilter
tl_lexer = CommonLispLexer()
tl_lexer.add_filter(NameHighlightFilter(
names=['define-function', 'define-macro',
'define-variable', 'define-constant'],
tokentype=Name.Builtin,
))
app.add_lexer('tl', tl_lexer)
highlight_language = 'tl'
Run Code Online (Sandbox Code Playgroud)
但是NameHighlightFilter无效。代码块就像Lisp一样突出显示,但是我的新内置名称没有特殊突出显示。
我正在使用Pelican和pygments为我的MD文档生成语法高亮,但是,我在将缩进应用于缩进块时遇到了麻烦.
例如:
文字1
文字2
Code Here
Run Code Online (Sandbox Code Playgroud)文字3
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
Run Code Online (Sandbox Code Playgroud)
这样做成功为我生成了列表编号.
TLDR:我正在尝试在鹈鹕中进行CSS行编号,同时写下markdown.Pygsments是间接使用的,你不能将选项传递给它,所以我不能分隔这些行,并且没有"新行"的CSS选择器.
在Pelican中使用Markdown,我可以使用CodeHilite扩展生成代码块.如果你使用Markdown只有RST(而且......不能将所有内容转换为RST),Pelican不支持直接使用pygments.
所以,我尝试过:
MD_EXTENSIONS = [
'codehilite(css_class=highlight,linenums=False,guess_lang=True,use_pygments=True)',
'extra']
Run Code Online (Sandbox Code Playgroud)
和:
:::python
<div class="line">import __main__ as main</div>
Run Code Online (Sandbox Code Playgroud)
和:
PYGMENTS_RST_OPTIONS = {'classprefix': 'pgcss', 'linenos': 'table'}
Run Code Online (Sandbox Code Playgroud)
我可以获得行号吗?是.我能让他们继续下一个代码块吗?不.这就是为什么我想使用CSS线路编号......当编号开始和停止时,它更容易控制.
任何帮助将不胜感激,我已经搞乱了几个小时.
如果您将Jekyll与Pygments语法高亮包一起使用,则可以编写
{% highlight clojure %}
(def something :foobar)
{% endhighlight %}
Run Code Online (Sandbox Code Playgroud)
它产生一个<div>包含该行,根据Clojure语法突出显示语法.但有没有办法在段落中间突出语法?我希望能够写作
In Clojure, keywords like {% highlight clojure %}:foobar{% endhighlight %}
are prepended by colons.
Run Code Online (Sandbox Code Playgroud)
这里所需的行为是使用与第一个示例中的关键字相同的样式突出显示Clojure关键字.但是,当我尝试这样做时,它只会产生<div>类似的效果.(也许这是我正在使用的Kramdown markdown引擎特有的,但div标签本身是HTML转义的,因此您可以在生成的文本中看到"<div>".)
有没有办法让Jekyll/Pygments像这样做"内联"语法高亮?
我为pygments编写了一个新的词法分析器,并尝试使用它。因此我看这个页面
http://pygments.org/docs/lexerdevelopment/
描述安装过程的位置。他们说可以,make mapfiles但我不知道在哪里。
我查看了这两个目录,那里有他们谈论的other.py模块。
/usr/share/pyshared/pygments/lexers/
Run Code Online (Sandbox Code Playgroud)
和
/usr/share/pyshared/pygments/lexers/
Run Code Online (Sandbox Code Playgroud)
但是那里没有任何makefile。因此,我该怎么办?
我正在使用Pygments突出显示Jekyll中的代码片段.
我想知道如何使用Pygments荧光笔突出显示.cshtml/.aspx文件
用于语法突出显示的哪个Python库是最好的?我对支持的语言,易用性,pythonic设计,依赖性,开发状态等感兴趣.
当我运行jekyll --server时,它构建失败,并显示:
[2013-01-10 15:34:52]再生:1个文件已更改
Liquid Exception:无法获取标头.在2013-01-05-vim.markdown
C:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.7/lib/pygments/popen.rb:357:在get_header'中: /Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.7/lib/pygments/popen.rb:235: 在超时' C:/Ruby193/lib/ruby/gems/1.9.1 /gems/pygments.rb-0.3.7/lib/pygments/popen.rb:209: ...rescue in get_header' C:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.7/lib/pygments/popen.rb:338:
inblock in mentos'
C:/Ruby193/lib/ruby/1.9.1/timeout.rb:68:in
我使用pygments来突出我的代码..
帮我 !!
我想将pygments用于基本行编号,仅用于krb.conf,Asterisk的extensions.conf或pam-configuration等文件.
我通过Jekyll使用pygments.
{% highlight WHATOPUTHERE lineos %}
CODE CODE
{% endhighlight%}
Run Code Online (Sandbox Code Playgroud)
但是,我需要指定一些语言(否则不会产生任何语言).对于未知语言也是如此.
软件:*Jekyll 0.11.2*Pygments 1.6
如果我通过pygments运行python源文件,它会输出html代码,其元素类属于某些CSS文件pygments正在使用.样式属性是否可以包含在输出的html中,这样我就不必提供CSS文件了?
是否可以在PHP中使用Python(特别是Pygments)?目前,我有一个我正在开发的phpBB论坛,JS语法荧光笔只是没有为我工作.已经有一个GeSHI mod,但我想自己开发一些只是为了体验.
还有性能问题吗?
我正在使用安装了MiKTeX 2.8的TeXnicCenter 2.0 Alpha 3(版本1118)在Vista上使用LaTeX .我想使用的代码高亮Objective-C和阅读这里的铸造包是巨大的.我按照铸造文档中的说法安装了Python 2.7和pygmentize.我还在TeXnicCenter中设置了编译器选项-shell-escape.编译器找到pygmentize脚本但发生以下错误.
文件"C:\ Python27\Scripts\pygmentize.exe",第1行语法错误:第1行文件C:\ Python27\Scripts\pygmentize.exe中的非ASCII字符'\ x90',但未声明编码; 有关详细信息,请访问http://www.python.org/peps/pep-0263.html!LaTeX错误:找不到文件`Test.out.pyg'.键入X退出或继续,或输入新名称.(默认扩展名:out.pyg)输入文件名:!紧急停止.
我无法弄清楚如何解决问题.我尝试将tex文件保存为ANSI或UTF-8.我对tex文件的唯一补充是包含
\ usepackage {}铸造
这个简单的例子来自铸造文档.
\ mint {python} |导入此|