reStructuredTextのソースコードをシンタックス・ハイライトする

2011/10/07

最近、簡単な記述で書けて、HTMLなどに変換できるreStructuredTextに興味を持ちはじめた。インストール方法やら、シンタックス・ハイライトする方法やらのメモ。

実験環境

  • Windows XP
  • Python 2.7

docutils、pygmentsをインストールする

> easy_install docutils
> easy_isntall pygments

docutils-0.8.1、pygments 1.4がインストールされた。

シンタックスハイライトするディレクティブをインストールする

pygmentsのサイトからダウンロードするページを探し、ここからbirkenfeld-pygments-main-1.4.zipをダウンロードした。解凍して、external/rst-directive.py を使う。

docutilsのディレクティブのフォルダ
C:\Python27\Lib\site-packages\docutils-0.8.1-py2.7.egg\docutils\parsers\rst\directives
に、上記で解凍した rst-directive.py をコピーする。

docutilsのディレクティブのフォルダにある __init__.py を修正する。

_directive_registry に 'sourcecode’: ('rst-directive’, 'Pygments’) を追加する。

_directive_registry = {
 'sourcecode': ('rst-directive', 'Pygments'), # <-- 追加
 'attention': ('admonitions', 'Attention'),
 .......

ハイライト用のCSSを作成する

> pygmentize -S colorful -f html -a .highlight > highlighting.css

シンタックスハイライトを試す

reStructuredTextのファイル test.rst を作る

=========================
test for syntax highlight
=========================

テストだよ
==========

.. sourcecode:: python

 import sys

 for i in range(10):
 print i

 sys.exit()

ハイライトされたHTMlファイルを作る

> rst2html.py --stylesheet=highlighting.css test.rst > test.html

できました

ブラウザで test.html を開くと、

参考にしたリンク

未分類

Posted by skw