2012-03-21 9 views
6

ReStructured Textソースに対してコードブロックディレクティブを使用してrst2html.pyを実行すると、すべてのスパンとクラスがHTMLのコードのビットに追加されますが、実際にそれらのスパンをカラー化するCSSは存在しません。 RSTにCSSリンクを追加したり、CSSをHTMLファイルに埋め込んだりすることは可能ですか?rst2html.pyに構文の強調表示にCSSを含めるにはどうすればよいですか?

+0

私はあなたが求めているかを正確にわからない:あなたはあなたのHTML出力でシンタックスハイライトを取得したいですか、またはあなたがハイライト表示この構文を適用するためのCSSを持っていますが、組み込む方法がわからないんカスタムCSSスタイルをビルドプロセスに追加しますか? – Chris

+0

HTML出力で構文の強調表示が必要です。クラスの属性はすべてそこにあります(たとえば)。ただし、ビルドプロセスで付随するCSSはありません。 –

答えて

7

Docutils 0.9では、code directiveを使用できます。このページの例:

.. code:: python 

def my_function(): 
    "just a test" 
    print 8/2 

また、構文強調表示にPygmentsを使用することもできます。 Using Pygments in ReST documentsおよびthis SO答えを参照してください。

最後に、thisまたはthis blogpostのコードを使用することもできます。 Pygmentsが使用するスタイルファイルを取得する

更新コメントで述べたように、Pygments CSSスタイルファイルstyle.cssを生成するコマンド

pygmentize -S default -f html -a .highlight > style.css 

を使用しています。

+0

はい、追加されるすべてのスパンクラスにCSSスタイルはありません。 CSSを入手するにはどうすればいいですか? –

+0

私はまだ質問を正確に理解しているのか分かりません。 Pygmentsや 'code'ディレクティブを使用していますか?そうであれば 'pygmentize -S default -f html -a .highlight> style.css'というコマンドはPygmentsのCSSスタイルファイル' style.css'を生成します。このファイルは '--stylesheet'を使ってビルドプロセスで使用します。コマンド(またはそれに類するもの)または 'rst2html.py'。 – Chris

+0

それは、私が探していたpygentizeコマンドでした、ありがとう。 –

5

docutils 0.9と0.10では、コード、コードブロック、ソースコードのどちらを使用しても問題ありません。すべての指令はcode roleとみなされます。

このコマンドは、rst2html.pyによってhtmlに埋め込むことのできるCSSを生成します。

デフォルトで
rst2html.py --stylesheet=syntax.css in.txt > out.html 

rst2html.py出力はcommentnumberinteger、およびoperatorようなクラス名でまたがる:

pygmentize -S default -f html -a .code > syntax.css 

このコマンドは、HTMLを生成します。あなたがソースと同じディレクトリに、または/etc、または

[parsers] 
[restructuredtext parser] 
syntax_highlight=short 

~/.docutilsのいずれかdocutils.confを持っている場合は...その後、クラス名はcmmi、およびによって生成されたsyntax.cssと一致するoなりますpygmentize

See syntax-highlight in docutils documentation

関連する問題