wiki:WikiProcessors

Version 5 (modified by trac, 18 years ago) (diff)

--

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