wiki:WikiProcessors

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

--

Wiki プロセッサ

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

Trac 内の全ての Wiki テキストにおいて、 Wiki プロセッサを使用することができます。 例えば、以下に述べる様々な用途で使用することができます:

プロセッサを使用する

テキストブロック上に Wiki プロセッサを適用するには、 最初のデリミタとして Wiki の コードブロック を使用します:

{{{
これらの行は
処理されるでしょう...
}}}

{{{ のすぐ後または直後の行に, #! に続けて プロセッサ名 を追加します。.

{{{
#!プロセッサ名
これらの行は
処理されるでしょう...
}}}

これはほとんどの UNIX ユーザにはおなじみである "shebang" を用いた表記法です。

これらの内容に加えて、いくつかの Wiki プロセッサでは、 プロセッサ名に続けて同じ行に、 key=value のペアを書くことによって、 パラメータ を許容するものがあります。もし、 value にスペースが含まれるケースがたびたび起こるようであれば、 クオテーションで囲んだ文字列を使用することができます (key="スペースが含まれている文字列") 。

いくつかのプロセッサは Wiki のマークアップを処理することを意味するので、 プロセッサのブロックを ネスト させることができます。 可読性を向上させるためにネストしたブロックの内容をインデントさせたいと思うかもしれません。 この種のインデントは中身を処理する際に無視されます。

Wiki マークアップ 表示

例 1: HTML を挿入する

{{{
#!html
<h1 style="color: grey">HTML テスト</h1>
}}}

HTML テスト

例 2: <div> ブロック内のカスタマイズしたスタイルシートでハイライトした Python のコード

{{{#!div style="background: #ffd; border: 3px ridge"

これは 埋め込まれた "コード" ブロックの例です:

  {{{
  #!python
  def hello():
      return "world"
  }}}

}}}

これは 埋め込まれた "コード" ブロックの例です:

def hello():
    return "world"

例 3: Wiki ページでチケットのキーワード検索を行なう

{{{
#!html
<form action="/query" method="get"><div>
<input type="text" name="keywords" value="~" size="30"/>
<input type="submit" value="キーワードで検索"/>
<!-- To control what fields show up use hidden fields
<input type="hidden" name="col" value="id"/>
<input type="hidden" name="col" value="summary"/>
<input type="hidden" name="col" value="status"/>
<input type="hidden" name="col" value="milestone"/>
<input type="hidden" name="col" value="version"/>
<input type="hidden" name="col" value="owner"/>
<input type="hidden" name="col" value="priority"/>
<input type="hidden" name="col" value="component"/>
-->
</div></form>
}}}

プロセッサ一覧

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

#!default フォーマット済みのテキストブロック内でテキストを逐語的に表示する。これはプロセッサ名を指定 しない のと同じです (さらに #! を指定しないのと同じです)。
#!comment このセクション内のテキストを処理しません (つまり、このセクションの内容はプレインテキスト内にのみ存在します - レンダリングしたページには表示されません)。
HTML 関連
#!html Wiki ページにカスタムした HTML を挿入する。
#!htmlcomment Wiki ページに HTML のコメントを挿入する (0.12 以降) 。
#!html ブロックは 自己完結型 でなければなりません。つまり、1つ目のブロックである HTML 要素を開始し、後に記述する2つ目のブロックでその要素を閉じるということはできません。これに類似した効果を得るためには、下記に述べるプロセッサを使用して下さい。
#!div <div> 要素内の任意の Wiki の内容をラップする (0.11 以降) 。
#!span <span> 要素内の任意の Wiki の内容をラップする (0.11 以降) 。
#!td <td> 要素内の任意の Wiki の内容をラップする (0.12 以降) 。
#!th <th> 要素内の任意の Wiki の内容をラップする (0.12 以降) 。
#!tr #!td#!th ブロックをラッピングしたり、グルーピングした列を見やすくするために属性を指定する際、オプションとして使用することができます (0.12 以降) 。
これらのプロセッサについての詳細と使用例については、 WikiHtml を参照して下さい。
その他のプロセッサ
#!rst Trac における Restructured テキストのサポート。WikiRestructuredText 参照。
#!textile Textile がインストールされている場合のサポート。 a Textile リファレンス 参照。
コードのハイライトのサポート
#!c
#!cpp (C++)
#!python
#!perl
#!ruby
#!php
#!asp
#!java
#!js (Javascript)
#!sql
#!xml (XML or HTML)
#!sh (Bourne/Bash shell)
etc.
Trac は、さまざまなプログラミング言語のソースコードに対応するインラインのシンタックスハイライトを提供するプロセッサを同梱しています。

Trac では、シンタックスのカラーリングについて外部のソフトウェア (例えば Pygments) に依存しています。

サポートしている言語の情報と他の言語のサポートを有効にする方法については TracSyntaxColoring を参照してください。
MIME タイププロセッサ
プロセッサに MIME タイプを使用することによって、ソースコードをブラウズするとき、サポートしている言語に対してシンタックスハイライトを適用することが可能です。

例:

{{{
#!text/html
<h1>テキスト</h1>
}}}

この結果はシンタックスハイライトされた HTML コードになります:

<h1>テキスト</h1>

これは、すべての 対応している MIME タイプ に対して有効です。

{{{
#!diff
--- Version 55
+++ Version 56
@@ -115,8 +115,9 @@
     name='TracHelloWorld', version='1.0',
     packages=find_packages(exclude=['*.tests*']),
-    entry_points = """
-        [trac.plugins]
-        helloworld = myplugs.helloworld
-    """,
+    entry_points = {
+        'trac.plugins': [
+            'helloworld = myplugs.helloworld',
+        ],
+    },
 )
}}}

#!diff は細部までレンダリングします:

  • Version

     
    115115    name='TracHelloWorld', version='1.0', 
    116116    packages=find_packages(exclude=['*.tests*']), 
    117     entry_points = """ 
    118         [trac.plugins] 
    119         helloworld = myplugs.helloworld 
    120     """, 
     117    entry_points = { 
     118        'trac.plugins': [ 
     119            'helloworld = myplugs.helloworld', 
     120        ], 
     121    }, 
    121122) 

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

プロセッサは Wiki マクロを開発するのと変わりはありません。 実際、開発方法は同じであり、シンタックスの使用方法のみが異なります。 詳細情報については、 カスタムマクロを開発する を参照して下さい。


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