1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20827 -->
4 <sect1 id="zend.markup.parsers">
5 <title>Zend_Markup パーサー</title>
8 <classname>Zend_Markup</classname> には現在 BBCode パーサーと Textile パーサー
12 <sect2 id="zend.markup.parsers.theory">
13 <title>パーサーの仕組み</title>
16 <classname>Zend_Markup</classname> のパーサは、マークアップによる文をトークン木へと
17 変換するクラス群です。ここの例では BBCode パーサーを用いますが、
18 全てのパーサーにおいてトークン木の見解は変わりません。
19 例として BBCode のこの要素で始めます:
22 <programlisting><![CDATA[
23 [b]foo[i]bar[/i][/b]baz
27 BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
57 クローズタグは消えていることにお気づきになったでしょう、それらは木構造の
58 内容として出現しません。これは、クローズタグは実際の内容のものではないからです。
59 ですが、これは単にクローズタグを消失したことを意図するものではなく、
60 タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で
61 あるだけということに注意してください。実際の木構造は、タグの属性とその名について
66 <sect2 id="zend.markup.parsers.bbcode">
67 <title>BBCode パーサー</title>
70 BBCode パーサーは BBCode をトークン木へ変換する
71 <classname>Zend_Markup</classname> パーサーです。 全ての BBCode タグの文法は:
74 <programlisting language="text"><![CDATA[
75 [name(=(value|"value"))( attribute=(value|"value"))*]
79 有効な BBCode タグのいくつかの例は:
82 <programlisting><![CDATA[
85 [code file=Zend/Markup.php]
86 [url="http://framework.zend.com/" title="Zend Framework!"]
90 標準で、 '[/tagname]' フォーマットを用いて閉じられます.
94 <sect2 id="zend.markup.parsers.textile">
95 <title>Textile パーサー</title>
98 Textile パーサーは、Textile からトークン木へと変換する <classname>Zend_Markup</classname>
99 パーサーです。 Textile はタグ構造を持っていないため、
103 <table id="zend.markup.parsers.textile.tags">
104 <title>基本的な Textile タグのリスト</title>
106 <tgroup cols="2" align="left" colsep="1" rowsep="1">
119 <entry><![CDATA[<strong>foo</strong>]]></entry>
125 <entry><![CDATA[<em>foo</em>]]></entry>
129 <entry>??foo??</entry>
131 <entry><![CDATA[<cite>foo</cite>]]></entry>
137 <entry><![CDATA[<del>foo</del>]]></entry>
143 <entry><![CDATA[<ins>foo</ins>]]></entry>
149 <entry><![CDATA[<sup>foo</sup>]]></entry>
155 <entry><![CDATA[<sub>foo</sub>]]></entry>
161 <entry><![CDATA[<span>foo</span>]]></entry>
165 <entry>PHP(PHP Hypertext Preprocessor)</entry>
168 <![CDATA[<acronym title="PHP Hypertext Preprocessor">PHP</acronym>]]>
173 <entry>"Zend Framework":http://framework.zend.com/</entry>
176 <![CDATA[<a href="http://framework.zend.com/">Zend Framework</a>]]>
181 <entry>h1. foobar</entry>
183 <entry><![CDATA[<h1>foobar</h1>]]></entry>
187 <entry>h6. foobar</entry>
189 <entry><![CDATA[<h6>foobar</h6>]]></entry>
193 <entry>!http://framework.zend.com/images/logo.gif!</entry>
196 <![CDATA[<img src="http://framework.zend.com/images/logo.gif" />]]>
204 さらに、 Textile パーサーは全てのタグを段落へとラップします;
205 段落は2行の新しい行で終わり、よりタグがあった場合、新しい段落が加えられます。
208 <sect3 id="zend.markup.parsers.textile.lists">
212 Textile パーサーは2種類のリストをサポートします。"#"記号を用いた数値型と
213 "*"記号を用いた <!-- TODO : to be translated -->bullit リストです。両方のリストの例:
216 <programlisting><![CDATA[
225 上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 <!-- TODO : to be translated -->bulleted 。
226 リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、
227 ('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは