Pages

Wednesday, 20 December 2017

Pygments语法高亮




这段时间都没有找什么新东西折腾, 今天才开始正式写回些东东. 因为写关于Excel的代码,但是Prism并不支持…而在Github中居然是支持VB的!!因此pygments可能会支持VB高亮.一查,果然支持vb.net..好吧..

本地安装pygments

  1. 使用PIP安装: 直接敲pip install Pygments,稍等即可.
  2. 使用python安装: 去pypi-pygments下载zip源文件.解压后去源码文件夹执行sudo python setup.py install 安装即可(先保证有python哦亲)

Jekyll/Github使用Pygments

和Prism要使用JS来解析语句不同,jekyll/Github自带的pygments解析器就可以进行解析, 所以不需要另外的JS,只需要设好css样式即可.
  • 启用Pygments: _config.yml 中设置 pygments: true. 有别的说法说需要highlighter: pygments 貌似默认就是,不用设置.
  • 使用Pygments标记代码块: \{\% highlight python \%\} 代码块 \{\% endhighlight \%\} (将\去掉). python指明是代码块语言, 代码块支持语言名可以参考语法分析器lexersshort name部分(或者使用首页的着色功能时选择语言名就可以知道应该对应用那个词).另外简单地看支持的语言可以看Languages部分,但语言名字不一定符合shortname要求.
  • 要是想使用行号,可以在语言种类后加入linenos highlight python linenos 来加入行号.
  • 在jekyll中,因为liquid模板具有优先权,优先于markdown,所以可以使用{highligh} 的方法来插入语法块,此时就不会像过往使用 ~~~ 时需要另开结构块!(即是,不用隔行就可以连接直接使用!)
  • 生成CSS: 使用命令: pygmentize -S default -f html > your/path/pygments.css 来生成相应的CSS.-f指明formatter, -S指明style. style有多种,可以python进入交互命令后输入:from pygments.styles import STYLE_MAP;STYLE_MAP.keys() 来查看返回的style样式. 包括: [‘monokai’, ‘manni’, ‘rrt’, ‘perldoc’, ‘borland’, ‘colorful’, ‘default’, ‘murphy’, ‘vs’, ‘trac’, ‘tango’, ‘fruity’, ‘autumn’, ‘bw’, ‘emacs’, ‘vim’, ‘pastie’, ‘friendly’, ‘native’]多种, 也可以去demo中右侧选style测试效果. 后续相应地,在你的layout或者博客文档加入相应的css就可以了,如<link rel="stylesheet" href="/css/pygments.css">
  • 更多使用和细节参考docs部分,包括语法解析器lexer,过滤器Filter,格式化器formatter, 样式style等等. 因为pygment不仅仅是支持html的!

更有兴趣的话还可以去研究另一种着色方案Google Code Prettify.

No comments:

Post a Comment