Zend_Markup パーサー
Zend_Markup には現在 BBCode パーサーと Textile パーサー
という2つのパーサーが同梱されています。
パーサーの仕組み
Zend_Markup のパーサは、マークアップによる文をトークン木へと
変換するクラス群です。ここの例では BBCode パーサーを用いますが、
全てのパーサーにおいてトークン木の見解は変わりません。
例として BBCode のこの要素で始めます:
BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
[b]
foo
[i]
bar
baz
クローズタグは消えていることにお気づきになったでしょう、それらは木構造の
内容として出現しません。これは、クローズタグは実際の内容のものではないからです。
ですが、これは単にクローズタグを消失したことを意図するものではなく、
タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で
あるだけということに注意してください。実際の木構造は、タグの属性とその名について
より多くの情報を含んでいます。
BBCode パーサー
BBCode パーサーは BBCode をトークン木へ変換する
Zend_Markup パーサーです。 全ての BBCode タグの文法は:
有効な BBCode タグのいくつかの例は:
標準で、 '[/tagname]' フォーマットを用いて閉じられます.
Textile パーサー
Textile パーサーは、Textile からトークン木へと変換する Zend_Markup
パーサーです。 Textile はタグ構造を持っていないため、
以下は見本例のタグのリストです:
基本的な Textile タグのリスト
入力例
出力例
*foo*
foo]]>
_foo_
foo]]>
??foo??
foo]]>
-foo-
foo]]>
+foo+
foo]]>
^foo^
foo]]>
~foo~
foo]]>
%foo%
foo]]>
PHP(PHP Hypertext Preprocessor)
PHP]]>
"Zend Framework":http://framework.zend.com/
Zend Framework]]>
h1. foobar
foobar]]>
h6. foobar
foobar]]>
!http://framework.zend.com/images/logo.gif!
]]>
さらに、 Textile パーサーは全てのタグを段落へとラップします;
段落は2行の新しい行で終わり、よりタグがあった場合、新しい段落が加えられます。
リスト
Textile パーサーは2種類のリストをサポートします。"#"記号を用いた数値型と
"*"記号を用いた bullit リストです。両方のリストの例:
上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 bulleted 。
リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、
('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは
できません。