Zend_Markup-Parsers.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24604 -->
  4. <sect1 id="zend.markup.parsers">
  5. <title>Zend_Markup パーサー</title>
  6. <para>
  7. <classname>Zend_Markup</classname> には現在 BBCode パーサーと Textile パーサー
  8. という2つのパーサーが同梱されています。
  9. </para>
  10. <sect2 id="zend.markup.parsers.theory">
  11. <title>パーサーの仕組み</title>
  12. <para>
  13. <classname>Zend_Markup</classname> のパーサは、マークアップによる文をトークン木へと
  14. 変換するクラス群です。ここの例では BBCode パーサーを用いますが、
  15. 全てのパーサーにおいてトークン木の見解は変わりません。
  16. 例として BBCode のこの要素で始めます:
  17. </para>
  18. <programlisting language="text"><![CDATA[
  19. [b]foo[i]bar[/i][/b]baz
  20. ]]></programlisting>
  21. <para>
  22. BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
  23. </para>
  24. <itemizedlist>
  25. <listitem>
  26. <para>[b]</para>
  27. <itemizedlist>
  28. <listitem>
  29. <para>foo</para>
  30. </listitem>
  31. <listitem>
  32. <para>[i]</para>
  33. <itemizedlist>
  34. <listitem>
  35. <para>bar</para>
  36. </listitem>
  37. </itemizedlist>
  38. </listitem>
  39. </itemizedlist>
  40. </listitem>
  41. <listitem>
  42. <para>baz</para>
  43. </listitem>
  44. </itemizedlist>
  45. <para>
  46. クローズタグは消えていることにお気づきになったでしょう、それらは木構造の
  47. 内容として出現しません。これは、クローズタグは実際の内容のものではないからです。
  48. ですが、これは単にクローズタグを消失したことを意図するものではなく、
  49. タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で
  50. あるだけということに注意してください。実際の木構造は、タグの属性とその名について
  51. より多くの情報を含んでいます。
  52. </para>
  53. </sect2>
  54. <sect2 id="zend.markup.parsers.bbcode">
  55. <title>BBCode パーサー</title>
  56. <para>
  57. BBCode パーサーは BBCode をトークン木へ変換する
  58. <classname>Zend_Markup</classname> パーサーです。 全ての BBCode タグの文法は:
  59. </para>
  60. <programlisting language="text"><![CDATA[
  61. [name(=(value|"value"))( attribute=(value|"value"))*]
  62. ]]></programlisting>
  63. <para>
  64. 有効な BBCode タグのいくつかの例は:
  65. </para>
  66. <programlisting language="text"><![CDATA[
  67. [b]
  68. [list=1]
  69. [code file=Zend/Markup.php]
  70. [url="http://framework.zend.com/" title="Zend Framework!"]
  71. ]]></programlisting>
  72. <para>
  73. 標準で、 '[/tagname]' フォーマットを用いて閉じられます.
  74. </para>
  75. </sect2>
  76. <sect2 id="zend.markup.parsers.textile">
  77. <title>Textile パーサー</title>
  78. <para>
  79. Textile パーサーは、Textile からトークン木へと変換する <classname>Zend_Markup</classname>
  80. パーサーです。 Textile はタグ構造を持っていないため、
  81. 以下は見本例のタグのリストです:
  82. </para>
  83. <table id="zend.markup.parsers.textile.tags">
  84. <title>基本的な Textile タグのリスト</title>
  85. <tgroup cols="2" align="left" colsep="1" rowsep="1">
  86. <thead>
  87. <row>
  88. <entry>入力例</entry>
  89. <entry>出力例</entry>
  90. </row>
  91. </thead>
  92. <tbody>
  93. <row>
  94. <entry>*foo*</entry>
  95. <entry><![CDATA[<strong>foo</strong>]]></entry>
  96. </row>
  97. <row>
  98. <entry>_foo_</entry>
  99. <entry><![CDATA[<em>foo</em>]]></entry>
  100. </row>
  101. <row>
  102. <entry>??foo??</entry>
  103. <entry><![CDATA[<cite>foo</cite>]]></entry>
  104. </row>
  105. <row>
  106. <entry>-foo-</entry>
  107. <entry><![CDATA[<del>foo</del>]]></entry>
  108. </row>
  109. <row>
  110. <entry>+foo+</entry>
  111. <entry><![CDATA[<ins>foo</ins>]]></entry>
  112. </row>
  113. <row>
  114. <entry>^foo^</entry>
  115. <entry><![CDATA[<sup>foo</sup>]]></entry>
  116. </row>
  117. <row>
  118. <entry>~foo~</entry>
  119. <entry><![CDATA[<sub>foo</sub>]]></entry>
  120. </row>
  121. <row>
  122. <entry>%foo%</entry>
  123. <entry><![CDATA[<span>foo</span>]]></entry>
  124. </row>
  125. <row>
  126. <entry>PHP(PHP Hypertext Preprocessor)</entry>
  127. <entry>
  128. <![CDATA[<acronym title="PHP Hypertext Preprocessor">PHP</acronym>]]>
  129. </entry>
  130. </row>
  131. <row>
  132. <entry>"Zend Framework":http://framework.zend.com/</entry>
  133. <entry>
  134. <![CDATA[<a href="http://framework.zend.com/">Zend Framework</a>]]>
  135. </entry>
  136. </row>
  137. <row>
  138. <entry>h1. foobar</entry>
  139. <entry><![CDATA[<h1>foobar</h1>]]></entry>
  140. </row>
  141. <row>
  142. <entry>h6. foobar</entry>
  143. <entry><![CDATA[<h6>foobar</h6>]]></entry>
  144. </row>
  145. <row>
  146. <entry>!http://framework.zend.com/images/logo.gif!</entry>
  147. <entry>
  148. <![CDATA[<img src="http://framework.zend.com/images/logo.gif" />]]>
  149. </entry>
  150. </row>
  151. </tbody>
  152. </tgroup>
  153. </table>
  154. <para>
  155. さらに、 Textile パーサーは全てのタグを段落へとラップします;
  156. 段落は2行の新しい行で終わり、よりタグがあった場合、新しい段落が加えられます。
  157. </para>
  158. <sect3 id="zend.markup.parsers.textile.lists">
  159. <title>リスト</title>
  160. <para>
  161. Textile パーサーは2種類のリストをサポートします。"#"記号を用いた数値型と
  162. "*"記号を用いた <!-- TODO : to be translated -->bullit リストです。両方のリストの例:
  163. </para>
  164. <programlisting language="text"><![CDATA[
  165. # Item 1
  166. # Item 2
  167. * Item 1
  168. * Item 2
  169. ]]></programlisting>
  170. <para>
  171. 上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 <!-- TODO : to be translated -->bulleted 。
  172. リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、
  173. ('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは
  174. できません。
  175. </para>
  176. </sect3>
  177. </sect2>
  178. </sect1>