| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect1 id="zend.markup.parsers">
- <title>Zend_Markup Parsers</title>
- <para>
- <classname>Zend_Markup</classname> is currently shipped with one parser, a BBCode parser.
- </para>
- <sect2 id="zend.markup.parsers.theory">
- <title>Theory of Parsing</title>
- <para>
- The parsers of <classname>Zend_Markup</classname> are classes that convert text with
- markup to a token tree. Although we are using the BBCode parser as example here, the
- idea of the token tree remains the same across all parsers. We will start with this
- piece of BBCode for example:
- </para>
- <programlisting language="text"><![CDATA[
- [b]foo[i]bar[/i][/b]baz
- ]]></programlisting>
- <para>
- Then the BBCode parser will take that value, tear it apart and create the following
- tree:
- </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>
- You will notice that the closing tags are gone, they don't show up as content in the
- tree structure. This is because the closing tag isn't part of the actual content.
- Although, this does not mean that the closing tag is just lost, it is stored inside the
- tag information for the tag itself. Also, please note that this is just a simplified
- view of the tree itself. The actual tree contains a lot more information, like the tag's
- attributes and its name.
- </para>
- </sect2>
- <sect2 id="zend.markup.parsers.bbcode">
- <title>The BBCode parser</title>
- <para>
- The BBCode parser is a <classname>Zend_Markup</classname> parser that converts BBCode to
- a token tree. The syntax of all BBCode tags is:
- </para>
- <programlisting language="text"><![CDATA[
- [name(=(value|"value"))( attribute=(value|"value"))*]
- ]]></programlisting>
- <para>
- Some examples of valid BBCode tags are:
- </para>
- <programlisting language="text"><![CDATA[
- [b]
- [list=1]
- [code file=Zend/Markup.php]
- [url="http://framework.zend.com/" title="Zend Framework!"]
- ]]></programlisting>
- <para>
- By default, all tags are closed by using the format '[/tagname]'.
- </para>
- </sect2>
- </sect1>
|