Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)

Wiki プロセッサ

プロセッサは Trac Wiki エンジン が、 Wiki 以外のフォーマットを提供するために設計された WikiMacros です。プロセッサは ユーザが編集したテキストを処理するマクロ機能 と考えることができます。

Trac 内の全ての Wiki テキストにおいて、 Restructured Text, raw HTML および textile をプロセッサとして使用することができます。

プロセッサを使用する

テキストブロックでプロセッサを使うには、 Wiki のコードブロックを使用し、プロセッサの名前を (Unix 系 OS のスクリプトのように) shebang 行 (#!) に続いて指定します。

例1 (Wiki テキストに 生 HTML を挿入する):

{{{
#!html
<h1 style="color: orange">これは生 HTML です</h1>
}}}

結果、このように表示されます:

これは生 HTML です


例2 (Wiki テキストに ReStructured テキストを挿入する):

{{{
#!rst
見出し
------
脚注 [*]_ 付きの **text** です。

.. [*] ここは脚注。
}}}

結果、このように表示されます:

見出し
------
脚注 [*]_ 付きの **text** です。

.. [*] ここは脚注。

(訳注: ReStructuredText は国際化が甘いので、使えないかもしれません)


例3 (Wiki テキストに C 言語ソースコードブロックを挿入する):

{{{
#!c
int main(int argc, char *argv[])
{
  printf("Hello World\n");
  return 0;
}
}}}

結果、このように表示されます:

int main(int argc, char *argv[])
{
  printf("Hello World\n");
  return 0;
}

プロセッサ一覧

以下のプロセッサが Trac の配布に含まれています:

  • html -- Wiki ページにカスタム HTML を挿入する。 WikiHtml を参照してください。
  • rst -- Restructured テキスト を Trac で利用可能にする。 WikiRestructuredText を参照してください。
  • textile -- Textile をインストールすれば利用可能です。 a Textile reference を参照。

上記の Textile のリンクは切れています。 このサイト は動いていて、試しに使ってみることが可能です。

ソースコードの強調表示対応

Trac では、以下のプログラミング言語でのインライン シンタックスハイライト を行うプロセッサが組み込まれています。

  • c -- C
  • cpp -- C++
  • python -- Python
  • perl -- Perl
  • ruby -- Ruby
  • php -- PHP
  • asp --- ASP
  • sql -- SQL
  • xml -- XML

Note: Trac はシンタックスの色付けを、外部のソフトウェアパッケージに依存しています。詳しくは TracSyntaxColoring をご覧下さい。

プロセッサとして mime-type が指定されると、ソースコードをブラウズするときと同じく、対応されている言語であれば、シンタックスハイライトを行うことができます。例えば、以下のように書くと:

{{{
#!text/html
<h1>text</h1>
}}}

この結果はシンタックスハイライトされた HTML コードになります。対応している全ての mime-type でも、これは同じく有効です。

ユーザによるプロセッサマクロの開発やコントリビュート:

上級トピック: プロセッサマクロを開発する

プロセッサの開発は WikiMacros と違いはありません。事実、これらは同じような機能を持ち、シンタックスだけが異なります。詳しくは WikiMacros に記述します。

例: (Restructured テキストプロセッサ):

from docutils.core import publish_string

def execute(hdf, text, env):
    html = publish_string(text, writer_name = 'html')
    return html[html.find('<body>')+6:html.find('</body>')].strip()

See also: WikiMacros, WikiHtml, WikiRestructuredText, TracSyntaxColoring, WikiFormatting, TracGuide