ドキュメント書いておりますか?

ここのところ、 管理上の問題から OpenPNE 3.4 のチュートリアルをSphinx を利用するような形式に変更しようと思っている。

しかし、問題が発生。(小さいながらも)

Sphinxのコードハイライトの機能として

.. code-block: php

  <?php
  echo "hogehoge";

とやると、Pygments とやらがいろいろしてくれて
コードを見やすくしてくれるという洒落た機能がある。

しかしながら、<?php を省略してしまうとハイライトされない、という事実に気づき落胆した。

ってことで、Pythonのコードを久々に読んだ。
といっても僕はPythonは1週間くらいしか触ったことの無いPython入門者状態なので
ものすごく手探り。


TracのシンタックスハイライトでPHPのタグを省略可能にしてみた
http://d.hatena.ne.jp/pasela/20090421/trac_pygments

のような知恵も見つかり、

さらにはSphinxの優れたドキュメントで、拡張らへんの話しに辿りついたので、やってみた。

conf.py の一番下のほうに追加

import pygments
from pygments.lexers import get_lexer_by_name

def setup(app):
    app.add_lexer('php-inline', get_lexer_by_name('php', startinline=True))

これだけ。

あとは、<?php がなくてもハイライトさせたいコードの場合以下のようにやる

.. code-block: php-inline

  echo "hogehoge";

これで、できた!
正しい方法かは知らん!!!!!

(ちなに、自分の環境は Sphinx 0.6.5のようだ)

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>