Zend_Markup-Parsers.xml 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.markup.parsers">
  5. <title>Zend_Markup Parser</title>
  6. <para>
  7. <classname>Zend_Markup</classname> wird aktuell mit BBCode Parser.
  8. </para>
  9. <sect2 id="zend.markup.parsers.theory">
  10. <title>Theorie des Parsens</title>
  11. <para>
  12. Die Parser von <classname>Zend_Markup</classname> sind Klasse die Text mit Markup in
  13. einen Token Baum konvertieren. Auch wenn wir hier den BBCode Parser als Beispiel
  14. verwenden ist die Idee des Token Baums die gleiche bei allen Parsern. Wir beginnen mit
  15. diesem Teil von BBCode als Beispiel:
  16. </para>
  17. <programlisting><![CDATA[
  18. [b]foo[i]bar[/i][/b]baz
  19. ]]></programlisting>
  20. <para>
  21. Der BBCode Parser nimmt diesen Wert, teilt Ihn auf und erzeugt den folgenden Baum:
  22. </para>
  23. <itemizedlist>
  24. <listitem>
  25. <para>[b]</para>
  26. <itemizedlist>
  27. <listitem>
  28. <para>foo</para>
  29. </listitem>
  30. <listitem>
  31. <para>[i]</para>
  32. <itemizedlist>
  33. <listitem>
  34. <para>bar</para>
  35. </listitem>
  36. </itemizedlist>
  37. </listitem>
  38. </itemizedlist>
  39. </listitem>
  40. <listitem>
  41. <para>baz</para>
  42. </listitem>
  43. </itemizedlist>
  44. <para>
  45. Wie man sieht sind die schließenden Tags weg. Sie werden nicht als Inhalt der
  46. Baumstruktur angezeigt. Das ist deswegen der Fall, da schließende Tags kein Teil des
  47. aktuellen Inhalts sind. Das bedeutet aber nicht das die schließenden Tags einfach
  48. verloren sind. Sie sind in der Tag Information für das Tag selbst gespeichert. Es ist
  49. auch zu beachten das dies nur eine vereinfachte Darstelliung des Baumes selbst ist. Der
  50. aktuelle Baum enthält viel mehr Information, wie die Attribute der Tags und deren Namen.
  51. </para>
  52. </sect2>
  53. <sect2 id="zend.markup.parsers.bbcode">
  54. <title>Der BBCode Parser</title>
  55. <para>
  56. Der BBCode Parser ist ein <classname>Zend_Markup</classname> Parser der BBCode in einen
  57. Token Baum konvertiert. Die Syntax alle BBCode Tags ist:
  58. </para>
  59. <programlisting language="text"><![CDATA[
  60. [name(=(value|"value"))( attribute=(value|"value"))*]
  61. ]]></programlisting>
  62. <para>
  63. Einige Beispiel von gültigen BBCode Tags sind:
  64. </para>
  65. <programlisting><![CDATA[
  66. [b]
  67. [list=1]
  68. [code file=Zend/Markup.php]
  69. [url="http://framework.zend.com/" title="Zend Framework!"]
  70. ]]></programlisting>
  71. <para>
  72. Standardmäßig werden alle Tags durch Verwendung des Formats '[/tagname]' geschlossen.
  73. </para>
  74. </sect2>
  75. </sect1>