Changes between Version 1 and Version 2 of WikiProcessors


Ignore:
Timestamp:
09/18/14 10:48:12 (5 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  
    91 === ソースコードの強調表示対応 === #CodeHighlightingSupport 
    92 Trac では、以下のプログラミング言語でのインライン [wiki:TracSyntaxColoring シンタックスハイライト] を行うプロセッサが組み込まれています。 
    93  * '''c''' -- C 
    94  * '''cpp''' -- C++ 
    95  * '''python''' -- Python 
    96  * '''perl''' -- Perl 
    97  * '''ruby''' -- Ruby 
    98  * '''php''' -- PHP 
    99  * '''asp''' -- ASP 
    100  * '''java''' -- Java 
    101  * '''js''' -- Javascript 
    102  * '''sql''' -- SQL 
    103  * '''xml''' -- XML 
    104  * '''sh''' -- Bourne/Bash shell 
    105  
    106 '''Note:''' ''Trac はシンタックスの色付けを、外部のソフトウェアパッケージに依存しています。詳しくは TracSyntaxColoring をご覧下さい。'' 
    107  
    108 プロセッサとして mime-type が指定されると、ソースコードをブラウズするときと同じく、対応されている言語であれば、シンタックスハイライトを行うことができます。例えば、以下のように書くと: 
    109 {{{ 
     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 {{{ 
    110183{{{ 
    111184#!text/html 
    112 <h1>text</h1> 
    113 }}} 
    114 }}} 
    115  
     185<h1>テキスト</h1> 
     186}}} 
     187 }}} 
     188}}} 
     189{{{#!td 
    116190この結果はシンタックスハイライトされた HTML コードになります: 
    117 {{{ 
     191 {{{ 
    118192#!text/html 
    119 <h1>text</h1> 
    120 }}} 
    121  
    122 対応している全ての mime-type でも、これは同じく有効です。 
    123  
     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}}} 
    124242 
    125243ユーザによるプロセッサマクロの開発やコントリビュート: 
     
    128246 * [http://trac-hacks.org/ Trac Hacks] コミュニティサイト 
    129247 
    130  
    131 == 上級トピック: プロセッサマクロを開発する == #AdvancedTopics:DevelopingProcessorMacros 
    132 プロセッサの開発は Wiki マクロと違いはありません。事実、これらは同じような機能を持ち、シンタックスだけが異なります。詳しくは WikiMacros を参照してください。 
     248プロセッサは Wiki マクロを開発するのと変わりはありません。 
     249実際、開発方法は同じであり、シンタックスの使用方法のみが異なります。 
     250詳細情報については、 [WikiMacros#DevelopingCustomMacros カスタムマクロを開発する] を参照して下さい。 
    133251 
    134252