| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24604 -->
- <sect1 id="zend.markup.parsers">
- <title>Zend_Markup パーサー</title>
- <para>
- <classname>Zend_Markup</classname> には現在 BBCode パーサーと Textile パーサー
- という2つのパーサーが同梱されています。
- </para>
- <sect2 id="zend.markup.parsers.theory">
- <title>パーサーの仕組み</title>
- <para>
- <classname>Zend_Markup</classname> のパーサは、マークアップによる文をトークン木へと
- 変換するクラス群です。ここの例では BBCode パーサーを用いますが、
- 全てのパーサーにおいてトークン木の見解は変わりません。
- 例として BBCode のこの要素で始めます:
- </para>
- <programlisting language="text"><![CDATA[
- [b]foo[i]bar[/i][/b]baz
- ]]></programlisting>
- <para>
- BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
- </para>
- <itemizedlist>
- <listitem>
- <para>[b]</para>
- <itemizedlist>
- <listitem>
- <para>foo</para>
- </listitem>
- <listitem>
- <para>[i]</para>
- <itemizedlist>
- <listitem>
- <para>bar</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>baz</para>
- </listitem>
- </itemizedlist>
- <para>
- クローズタグは消えていることにお気づきになったでしょう、それらは木構造の
- 内容として出現しません。これは、クローズタグは実際の内容のものではないからです。
- ですが、これは単にクローズタグを消失したことを意図するものではなく、
- タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で
- あるだけということに注意してください。実際の木構造は、タグの属性とその名について
- より多くの情報を含んでいます。
- </para>
- </sect2>
- <sect2 id="zend.markup.parsers.bbcode">
- <title>BBCode パーサー</title>
- <para>
- BBCode パーサーは BBCode をトークン木へ変換する
- <classname>Zend_Markup</classname> パーサーです。 全ての BBCode タグの文法は:
- </para>
- <programlisting language="text"><![CDATA[
- [name(=(value|"value"))( attribute=(value|"value"))*]
- ]]></programlisting>
- <para>
- 有効な BBCode タグのいくつかの例は:
- </para>
- <programlisting language="text"><![CDATA[
- [b]
- [list=1]
- [code file=Zend/Markup.php]
- [url="http://framework.zend.com/" title="Zend Framework!"]
- ]]></programlisting>
- <para>
- 標準で、 '[/tagname]' フォーマットを用いて閉じられます.
- </para>
- </sect2>
- <sect2 id="zend.markup.parsers.textile">
- <title>Textile パーサー</title>
- <para>
- Textile パーサーは、Textile からトークン木へと変換する <classname>Zend_Markup</classname>
- パーサーです。 Textile はタグ構造を持っていないため、
- 以下は見本例のタグのリストです:
- </para>
- <table id="zend.markup.parsers.textile.tags">
- <title>基本的な Textile タグのリスト</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>入力例</entry>
- <entry>出力例</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>*foo*</entry>
- <entry><![CDATA[<strong>foo</strong>]]></entry>
- </row>
- <row>
- <entry>_foo_</entry>
- <entry><![CDATA[<em>foo</em>]]></entry>
- </row>
- <row>
- <entry>??foo??</entry>
- <entry><![CDATA[<cite>foo</cite>]]></entry>
- </row>
- <row>
- <entry>-foo-</entry>
- <entry><![CDATA[<del>foo</del>]]></entry>
- </row>
- <row>
- <entry>+foo+</entry>
- <entry><![CDATA[<ins>foo</ins>]]></entry>
- </row>
- <row>
- <entry>^foo^</entry>
- <entry><![CDATA[<sup>foo</sup>]]></entry>
- </row>
- <row>
- <entry>~foo~</entry>
- <entry><![CDATA[<sub>foo</sub>]]></entry>
- </row>
- <row>
- <entry>%foo%</entry>
- <entry><![CDATA[<span>foo</span>]]></entry>
- </row>
- <row>
- <entry>PHP(PHP Hypertext Preprocessor)</entry>
- <entry>
- <![CDATA[<acronym title="PHP Hypertext Preprocessor">PHP</acronym>]]>
- </entry>
- </row>
- <row>
- <entry>"Zend Framework":http://framework.zend.com/</entry>
- <entry>
- <![CDATA[<a href="http://framework.zend.com/">Zend Framework</a>]]>
- </entry>
- </row>
- <row>
- <entry>h1. foobar</entry>
- <entry><![CDATA[<h1>foobar</h1>]]></entry>
- </row>
- <row>
- <entry>h6. foobar</entry>
- <entry><![CDATA[<h6>foobar</h6>]]></entry>
- </row>
- <row>
- <entry>!http://framework.zend.com/images/logo.gif!</entry>
- <entry>
- <![CDATA[<img src="http://framework.zend.com/images/logo.gif" />]]>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- さらに、 Textile パーサーは全てのタグを段落へとラップします;
- 段落は2行の新しい行で終わり、よりタグがあった場合、新しい段落が加えられます。
- </para>
- <sect3 id="zend.markup.parsers.textile.lists">
- <title>リスト</title>
- <para>
- Textile パーサーは2種類のリストをサポートします。"#"記号を用いた数値型と
- "*"記号を用いた <!-- TODO : to be translated -->bullit リストです。両方のリストの例:
- </para>
- <programlisting language="text"><![CDATA[
- # Item 1
- # Item 2
- * Item 1
- * Item 2
- ]]></programlisting>
- <para>
- 上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 <!-- TODO : to be translated -->bulleted 。
- リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、
- ('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは
- できません。
- </para>
- </sect3>
- </sect2>
- </sect1>
|