Changes between Version 1 and Version 2 of WikiProcessors


Ignore:
Timestamp:
Aug 13, 2014, 12:08:18 AM (10 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiProcessors

    v1 v2  
    33プロセッサは [WikiMacros Wiki マクロ] の一種です。 [TracWiki Trac Wiki エンジン] 以外のマークアップフォーマットを使用するために設計されています。プロセッサは ''ユーザが編集したテキストを処理するマクロ機能'' と考えることができます。
    44
    5 Trac 内の全ての Wiki テキストにおいて、 Wiki エンジンにプロセッサを使わせることによって [wiki:WikiRestructuredText Restructured Text], [wiki:WikiHtml raw HTML] および [http://www.textism.com/tools/textile/ textile] を使用することができます。
     5Trac 内の全ての Wiki テキストにおいて、 Wiki プロセッサを使用することができます。
     6例えば、以下に述べる様々な用途で使用することができます:
     7 - [#CodeHighlightingSupport シンタックスハイライト] またはテキストを逐語的にレンダリングする
     8 -  <div> ブロックや <span> や <td>, <th> のテーブルのセルの内容など
     9   [#HTMLrelated コンテキスト内の Wiki のマークアップ] をレンダリングする
     10 - [wiki:WikiHtml HTML] や
     11   [wiki:WikiRestructuredText Restructured テキスト]
     12   または [http://www.textism.com/tools/textile/ textile] のシンタックスをマークアップの代替手段として使用する
    613
    714
    815== プロセッサを使用する == #UsingProcessors
    916
    10 テキストブロックでプロセッサを使うには、 Wiki のコードブロックを使用し、プロセッサの名前を (Unix 系 OS のスクリプトのように) ''shebang 行'' (#!) に続いて指定します。
    11 
    12 '''例1''' (''Wiki テキストに raw HTML を挿入する''):
    13 
     17テキストブロック上に Wiki プロセッサを適用するには、
     18最初のデリミタとして Wiki の ''コードブロック'' を使用します:
     19{{{
     20{{{
     21これらの行は
     22処理されるでしょう...
     23}}}
     24}}}
     25
     26`{{{` のすぐ後または直後の行に,
     27`#!` に続けて ''プロセッサ名'' を追加します。
     28
     29{{{
     30{{{
     31#!プロセッサ名
     32これらの行は
     33処理されるでしょう...
     34}}}
     35}}}
     36
     37これはほとんどの UNIX ユーザにはおなじみである "shebang" を用いた表記法です。
     38
     39これらの内容に加えて、いくつかの Wiki プロセッサでは、
     40プロセッサ名に続けて同じ行に、 `key=value` のペアを書くことによって、
     41''パラメータ'' を許容するものがあります。もし、 `value` にスペースが含まれるケースがたびたび起こるようであれば、
     42クオテーションで囲んだ文字列を使用することができます (`key="スペースが含まれている文字列"`) 。
     43
     44いくつかのプロセッサは Wiki のマークアップを処理することを意味するので、
     45プロセッサのブロックを ''ネスト'' させることができます。
     46可読性を向上させるためにネストしたブロックの内容をインデントさせたいと思うかもしれません。
     47この種のインデントは中身を処理する際に無視されます。
     48
     49
     50== 例 ==
     51
     52||= Wiki マークアップ =||= 表示 =||
     53{{{#!td colspan=2 align=center style="border: none"
     54
     55                __例 1__: HTML を挿入する
     56}}}
     57|-----------------------------------------------------------------
     58{{{#!td style="border: none"
     59{{{
    1460{{{
    1561#!html
    16 <pre class="wiki">{{{
     62<h1 style="color: grey">HTML テスト</h1>
     63}}}
     64}}}
     65}}}
     66{{{#!td valign=top style="border: none; padding-left: 2em"
     67{{{
    1768#!html
    18 &lt;h1 style="color: orange"&gt;これは raw HTML です&lt;/h1&gt;
    19 }}}</pre>
    20 }}}
    21 
    22 '''結果、このように表示されます:'''
    23 {{{
    24 #!html
    25 <h1 style="color: orange">これは raw HTML です</h1>
    26 }}}
    27 
    28 Note that since 0.11, such blocks of HTML have to be self-contained, i.e. you can't start an HTML element in one block and close it later in a second block. Use div or span processors for achieving similar effect (see WikiHtml).
    29 
    30 ----
    31 
    32 '''例2''' (''Wiki テキストに !ReStructured テキストを挿入する''):
    33 
    34 {{{
    35 #!html
    36 <pre class="wiki">{{{
    37 #!rst
    38 見出し
    39 ------
    40 脚注 [*]_ 付きの **text** です。
    41 
    42 .. [*] ここは脚注。
    43 }}}</pre>
    44 }}}
    45 
    46 '''結果、このように表示されます:'''
    47 {{{
    48 #!rst
    49 見出し
    50 ------
    51 脚注 [*]_ 付きの **text** です。
    52 
    53 .. [*] ここは脚注。
    54 }}}
    55 ----
    56 '''例3''' (''Wiki テキストに C 言語ソースコードブロックを挿入する''):
    57 
    58 {{{
    59 #!html
    60 <pre class="wiki">{{{
    61 #!c
    62 int main(int argc, char *argv[])
    63 {
    64   printf("Hello World\n");
    65   return 0;
    66 }
    67 }}}</pre>
    68 }}}
    69 
    70 '''結果、このように表示されます:'''
    71 {{{
    72 #!c
    73 int main(int argc, char *argv[])
    74 {
    75   printf("Hello World\n");
    76   return 0;
    77 }
    78 }}}
    79 
    80 ----
    81 
     69<h1 style="color: grey">HTML テスト</h1>
     70}}}
     71}}}
     72|-----------------------------------------------------------------
     73{{{#!td colspan=2 align=center style="border: none"
     74
     75     __例 2__: <div> ブロック内のカスタマイズしたスタイルシートでハイライトした Python のコード
     76}}}
     77|-----------------------------------------------------------------
     78{{{#!td style="border: none"
     79  {{{
     80  {{{#!div style="background: #ffd; border: 3px ridge"
     81
     82  これは 埋め込まれた "コード" ブロックの例です:
     83
     84    {{{
     85    #!python
     86    def hello():
     87        return "world"
     88    }}}
     89
     90  }}}
     91  }}}
     92}}}
     93{{{#!td valign=top style="border: none; padding: 1em"
     94  {{{#!div style="background: #ffd; border: 3px ridge"
     95
     96  これは 埋め込まれた "コード" ブロックの例です:
     97
     98    {{{
     99    #!python
     100    def hello():
     101        return "world"
     102    }}}
     103
     104  }}}
     105}}}
     106|-----------------------------------------------------------------
     107{{{#!td colspan=2 align=center style="border: none"
     108
     109     __例 3__: Wiki ページでチケットのキーワード検索を行なう
     110}}}
     111|-----------------------------------------------------------------
     112{{{#!td style="border: none"
     113  {{{
     114  {{{
     115  #!html
     116  <form action="/query" method="get"><div>
     117  <input type="text" name="keywords" value="~" size="30"/>
     118  <input type="submit" value="キーワードで検索"/>
     119  <!-- To control what fields show up use hidden fields
     120  <input type="hidden" name="col" value="id"/>
     121  <input type="hidden" name="col" value="summary"/>
     122  <input type="hidden" name="col" value="status"/>
     123  <input type="hidden" name="col" value="milestone"/>
     124  <input type="hidden" name="col" value="version"/>
     125  <input type="hidden" name="col" value="owner"/>
     126  <input type="hidden" name="col" value="priority"/>
     127  <input type="hidden" name="col" value="component"/>
     128  -->
     129  </div></form>
     130  }}}
     131  }}}
     132}}}
     133{{{#!td valign=top style="border: none; padding: 1em"
     134  {{{
     135  #!html
     136  <form action="/query" method="get"><div>
     137  <input type="text" name="keywords" value="~" size="30"/>
     138  <input type="submit" value="キーワードで検索"/>
     139  <!-- To control what fields show up use hidden fields
     140  <input type="hidden" name="col" value="id"/>
     141  <input type="hidden" name="col" value="summary"/>
     142  <input type="hidden" name="col" value="status"/>
     143  <input type="hidden" name="col" value="milestone"/>
     144  <input type="hidden" name="col" value="version"/>
     145  <input type="hidden" name="col" value="owner"/>
     146  <input type="hidden" name="col" value="priority"/>
     147  <input type="hidden" name="col" value="component"/>
     148  -->
     149  </div></form>
     150  }}}
     151}}}
    82152== プロセッサ一覧 == #AvailableProcessors
     153
    83154以下のプロセッサが Trac の配布に含まれています:
    84  * '''html''' -- Wiki ページにカスタム HTML を挿入する。 WikiHtml を参照してください。
    85  * '''div''' -- Wiki ページの内容を任意の <div> 要素でラップする (''0.11 以降'')。 WikiHtml を参照してください。
    86  * '''span''' -- Wiki ページの内容を任意の <span> 要素でラップする (''0.11 以降'')。 WikiHtml を参照してください。
    87  * '''rst''' -- Restructured テキスト を Trac で利用可能にする。 WikiRestructuredText を参照してください。
    88  * '''textile''' -- [http://cheeseshop.python.org/pypi/textile Textile] をインストールすれば利用可能です。 [http://www.textism.com/tools/textile/ Textile リファレンス] を参照してください。
    89  * '''comment''' -- セクション内のテキストを処理しません。(セクションの内容はレンダリングされた Wiki ページには出力されず、プレーンテキストにのみ保持されます。)
    90  * '''diff''' -- patch や diff を整形表示する。
    91 
    92 === ソースコードの強調表示対応 === #CodeHighlightingSupport
    93 Trac では、以下のプログラミング言語でのインライン [wiki:TracSyntaxColoring シンタックスハイライト] を行うプロセッサが組み込まれています。
    94  * '''c''' -- C
    95  * '''cpp''' -- C++
    96  * '''csharp''' --- C# (''#!text/x-csharp を使用してください'')
    97  * '''python''' -- Python
    98  * '''perl''' -- Perl
    99  * '''ruby''' -- Ruby
    100  * '''php''' -- PHP
    101  * '''asp''' -- ASP
    102  * '''java''' -- Java
    103  * '''js''' -- Javascript
    104  * '''sql''' -- SQL
    105  * '''xml''' -- XML
    106  * '''sh''' -- Bourne/Bash shell
    107 
    108 '''Note:''' ''Trac はシンタックスの色付けを、外部のソフトウェアパッケージに依存しています。詳しくは TracSyntaxColoring をご覧下さい。''
    109 
    110 プロセッサとして mime-type が指定されると、ソースコードをブラウズするときと同じく、対応されている言語であれば、シンタックスハイライトを行うことができます。例えば、以下のように書くと:
    111 {{{
     155
     156|| '''`#!default`''' || フォーマット済みのテキストブロック内でテキストを逐語的に表示する。これはプロセッサ名を指定 ''しない'' のと同じです (さらに `#!` を指定しないのと同じです)。 ||
     157|| '''`#!comment`''' || このセクション内のテキストを処理しません (つまり、このセクションの内容はプレインテキスト内にのみ存在します - レンダリングしたページには表示されません)。 ||
     158|||| ||
     159||||= '''HTML 関連''' =||
     160|| '''`#!html`''' || Wiki ページにカスタムした HTML を挿入する。 ||
     161|| '''`#!htmlcomment`''' || Wiki ページに HTML のコメントを挿入する (''0.12 以降'') 。 ||
     162|| || `#!html` ブロックは ''自己完結型'' でなければなりません。つまり、1つ目のブロックである HTML 要素を開始し、後に記述する2つ目のブロックでその要素を閉じるということはできません。これに類似した効果を得るためには、下記に述べるプロセッサを使用して下さい。  ||
     163|| '''`#!div`''' || <div> 要素内の任意の Wiki の内容をラップする (''0.11 以降'') 。 ||
     164|| '''`#!span`''' || <span> 要素内の任意の Wiki の内容をラップする (''0.11 以降'') 。 ||
     165|| '''`#!td`''' || <td> 要素内の任意の Wiki の内容をラップする (''0.12 以降'') 。 ||
     166|| '''`#!th`''' || <th> 要素内の任意の Wiki の内容をラップする (''0.12 以降'') 。 ||
     167|| '''`#!tr`''' || `#!td` や `#!th` ブロックをラッピングしたり、グルーピングした列を見やすくするために属性を指定する際、オプションとして使用することができます (''0.12 以降'') 。 ||
     168|| || これらのプロセッサについての詳細と使用例については、 WikiHtml を参照して下さい。 ||
     169|||| ||
     170||||= '''その他のプロセッサ''' =||
     171|| '''`#!rst`''' || Trac における Restructured テキストのサポート。WikiRestructuredText 参照。 ||
     172|| '''`#!textile`''' || [http://cheeseshop.python.org/pypi/textile Textile] がインストールされている場合のサポート。 [http://www.textism.com/tools/textile/ a Textile リファレンス] 参照。 ||
     173|||| ||
     174||||= '''コードのハイライトのサポート''' =||
     175|| '''`#!c`''' [[BR]] '''`#!cpp`''' (C++) [[BR]] '''`#!python`''' [[BR]] '''`#!perl`''' [[BR]] '''`#!ruby`''' [[BR]] '''`#!php`''' [[BR]] '''`#!asp`''' [[BR]] '''`#!java`''' [[BR]] '''`#!js`''' (Javascript) [[BR]] '''`#!sql`''' [[BR]] '''`#!xml`''' (XML or HTML) [[BR]] '''`#!sh`''' (!Bourne/Bash shell) [[BR]] '''etc.''' [[BR]] || Trac は、さまざまなプログラミング言語のソースコードに対応するインラインのシンタックスハイライトを提供するプロセッサを同梱しています。[[BR]] [[BR]] Trac では、シンタックスのカラーリングについて外部のソフトウェア (例えば [http://pygments.org Pygments]) に依存しています。[[BR]] [[BR]] サポートしている言語の情報と他の言語のサポートを有効にする方法については TracSyntaxColoring を参照してください。 ||
     176|||| ||
     177||||= '''MIME タイププロセッサ''' =||
     178|||| プロセッサに MIME タイプを使用することによって、ソースコードをブラウズするとき、サポートしている言語に対してシンタックスハイライトを適用することが可能です。 ||
     179{{{#!tr
     180{{{#!td
     181:
     182 {{{
    112183{{{
    113184#!text/html
    114 <h1>text</h1>
    115 }}}
    116 }}}
    117 
     185<h1>テキスト</h1>
     186}}}
     187 }}}
     188}}}
     189{{{#!td
    118190この結果はシンタックスハイライトされた HTML コードになります:
    119 {{{
     191 {{{
    120192#!text/html
    121 <h1>text</h1>
    122 }}}
    123 
    124 対応している全ての mime-type でも、これは同じく有効です。
    125 
     193<h1>テキスト</h1>
     194 }}}
     195
     196これは、すべての [TracSyntaxColoring#SyntaxColoringSupport 対応している MIME タイプ] に対して有効です。
     197}}}
     198}}}
     199{{{#!td
     200 {{{
     201{{{
     202#!diff
     203--- Version 55
     204+++ Version 56
     205@@ -115,8 +115,9 @@
     206     name='TracHelloWorld', version='1.0',
     207     packages=find_packages(exclude=['*.tests*']),
     208-    entry_points = """
     209-        [trac.plugins]
     210-        helloworld = myplugs.helloworld
     211-    """,
     212+    entry_points = {
     213+        'trac.plugins': [
     214+            'helloworld = myplugs.helloworld',
     215+        ],
     216+    },
     217 )
     218}}}
     219 }}}
     220}}}
     221{{{#!td
     222'''`#!diff`''' は細部までレンダリングします:
     223 {{{
     224#!diff
     225--- Version 55
     226+++ Version 56
     227@@ -115,8 +115,9 @@
     228     name='TracHelloWorld', version='1.0',
     229     packages=find_packages(exclude=['*.tests*']),
     230-    entry_points = """
     231-        [trac.plugins]
     232-        helloworld = myplugs.helloworld
     233-    """,
     234+    entry_points = {
     235+        'trac.plugins': [
     236+            'helloworld = myplugs.helloworld',
     237+        ],
     238+    },
     239 )
     240 }}}
     241}}}
    126242
    127243ユーザによるプロセッサマクロの開発やコントリビュート:
    128  * [http://trac.edgewall.org/wiki/ProcessorBazaar ProcessorBazaar]
    129  * [http://trac.edgewall.org/wiki/MacroBazaar MacroBazaar]
     244 * [trac:ProcessorBazaar]
     245 * [trac:MacroBazaar]
    130246 * [http://trac-hacks.org/ Trac Hacks] コミュニティサイト
    131247
    132 
    133 == 上級トピック: プロセッサマクロを開発する == #AdvancedTopics:DevelopingProcessorMacros
    134 プロセッサの開発は Wiki マクロと違いはありません。事実、これらは同じような機能を持ち、シンタックスだけが異なります。詳しくは WikiMacros を参照してください。
     248プロセッサは Wiki マクロを開発するのと変わりはありません。
     249実際、開発方法は同じであり、シンタックスの使用方法のみが異なります。
     250詳細情報については、 [WikiMacros#DevelopingCustomMacros カスタムマクロを開発する] を参照して下さい。
    135251
    136252