|
@@ -0,0 +1,226 @@
|
|
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
+<!-- Reviewed: no -->
|
|
|
|
|
+<!-- EN-Revision: 19777 -->
|
|
|
|
|
+<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><![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><![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><![CDATA[
|
|
|
|
|
+# Item 1
|
|
|
|
|
+# Item 2
|
|
|
|
|
+
|
|
|
|
|
+* Item 1
|
|
|
|
|
+* Item 2
|
|
|
|
|
+]]></programlisting>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ 上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 <!-- TODO : to be translated -->bulleted 。
|
|
|
|
|
+ リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、
|
|
|
|
|
+ ('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは
|
|
|
|
|
+ できません。
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </sect3>
|
|
|
|
|
+ </sect2>
|
|
|
|
|
+</sect1>
|