[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Markup-Parsers.xml
blob634c951b0bfaf3237516be809cdb88d7c61ff114
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20827 -->
3 <!-- Reviewed: no -->
4 <sect1 id="zend.markup.parsers">
5     <title>Analyseurs Zend_Markup (parsers)</title>
7     <para>
8         <classname>Zend_Markup</classname> est fourni avec deux analyseurs, BBCode et
9         Textile.
10     </para>
12     <sect2 id="zend.markup.parsers.theory">
13         <title>Theorie de l'analyse</title>
15         <para>
16             Les analyseurs syntaxiques de <classname>Zend_Markup</classname> sont des classes
17             qui convertissent du texte balisé en un arbre d'identifiants d'analyses, appelées 'tokens'.
18             Même si nous utilisons par la suite l'analyseur BBCode, le principe de l'arbre à
19             tokens est le même pour tous les analyseurs syntaxiques. Essayons avec un morceau
20             de BBCode par exemple:
21         </para>
23         <programlisting><![CDATA[
24 [b]foo[i]bar[/i][/b]baz
25 ]]></programlisting>
27         <para>
28             L'analyseur BBCode va analyser syntaxiquement ce code et en déduire l'arbre suivant:
29         </para>
31         <itemizedlist>
32             <listitem>
33                 <para>[b]</para>
35                 <itemizedlist>
36                     <listitem>
37                         <para>foo</para>
38                     </listitem>
40                     <listitem>
41                         <para>[i]</para>
43                         <itemizedlist>
44                             <listitem>
45                                 <para>bar</para>
46                             </listitem>
47                         </itemizedlist>
48                     </listitem>
49                 </itemizedlist>
50             </listitem>
52             <listitem>
53                 <para>baz</para>
54             </listitem>
55         </itemizedlist>
57         <para>
58             Notez que les tags de fermeture n'existent plus dans l'arbre généré. Ceci car ils
59             n'ont pas de valeur particulière pour la sémantique, ils ne sont pas perdus mais stockés
60             grâce au seul tag d'ouverture. Notez aussi que ceci n'est qu'une vue simplifiée de l'arbre
61             réel qui contient en réalité bien plus d'informations comme les attributs éventuels du tag
62             et son nom.
63         </para>
64     </sect2>
66     <sect2 id="zend.markup.parsers.bbcode">
67         <title>L'analyseur BBCode</title>
69         <para>
70             L'analyseur BBCode est un analyseur de <classname>Zend_Markup</classname> qui
71             transforme un code BBCode en arbres à tokens. La syntaxe des tags BBCode est:
72         </para>
74         <programlisting language="text"><![CDATA[
75 [name(=(value|"value"))( attribute=(value|"value"))*]
76 ]]></programlisting>
78         <para>
79             Des exemples de tags BBCode valides:
80         </para>
82         <programlisting><![CDATA[
83 [b]
84 [list=1]
85 [code file=Zend/Markup.php]
86 [url="http://framework.zend.com/" title="Zend Framework!"]
87 ]]></programlisting>
89         <para>
90             Par défaut, tous les tags sont fermés avec la syntaxe '[/tagname]'.
91         </para>
92     </sect2>
94     <sect2 id="zend.markup.parsers.textile">
95         <title>L'analyseur Textile</title>
97         <para>
98             L'analyseur Textile de <classname>Zend_Markup</classname> convertit du texte au format Textile
99             en un arbre à tokens. Textile n'ayant pas de structure à base de tags, la liste suivante est un
100             exemple de tags:
101         </para>
103         <table id="zend.markup.parsers.textile.tags">
104             <title>Liste de tags Textile basiques</title>
106             <tgroup cols="2" align="left" colsep="1" rowsep="1">
107                 <thead>
108                     <row>
109                         <entry>Entrée</entry>
111                         <entry>Sortie</entry>
112                     </row>
113                 </thead>
115                 <tbody>
116                     <row>
117                         <entry>*foo*</entry>
119                         <entry><![CDATA[<strong>foo</strong>]]></entry>
120                     </row>
122                     <row>
123                         <entry>_foo_</entry>
125                         <entry><![CDATA[<em>foo</em>]]></entry>
126                     </row>
128                     <row>
129                         <entry>??foo??</entry>
131                         <entry><![CDATA[<cite>foo</cite>]]></entry>
132                     </row>
134                     <row>
135                         <entry>-foo-</entry>
137                         <entry><![CDATA[<del>foo</del>]]></entry>
138                     </row>
140                     <row>
141                         <entry>+foo+</entry>
143                         <entry><![CDATA[<ins>foo</ins>]]></entry>
144                     </row>
146                     <row>
147                         <entry>^foo^</entry>
149                         <entry><![CDATA[<sup>foo</sup>]]></entry>
150                     </row>
152                     <row>
153                         <entry>~foo~</entry>
155                         <entry><![CDATA[<sub>foo</sub>]]></entry>
156                     </row>
158                     <row>
159                         <entry>%foo%</entry>
161                         <entry><![CDATA[<span>foo</span>]]></entry>
162                     </row>
164                     <row>
165                         <entry>PHP(PHP Hypertext Preprocessor)</entry>
167                         <entry><![CDATA[<acronym title="PHP Hypertext Preprocessor">PHP</acronym>]]></entry>
168                     </row>
170                     <row>
171                         <entry>"Zend Framework":http://framework.zend.com/</entry>
173                         <entry><![CDATA[<a href="http://framework.zend.com/">Zend Framework</a>]]></entry>
174                     </row>
176                     <row>
177                         <entry>h1. foobar</entry>
179                         <entry><![CDATA[<h1>foobar</h1>]]></entry>
180                     </row>
182                     <row>
183                         <entry>h6. foobar</entry>
185                         <entry><![CDATA[<h6>foobar</h6>]]></entry>
186                     </row>
188                     <row>
189                         <entry>!http://framework.zend.com/images/logo.gif!</entry>
191                         <entry><![CDATA[<img src="http://framework.zend.com/images/logo.gif" />]]></entry>
192                     </row>
193                 </tbody>
194             </tgroup>
195         </table>
197         <para>
198             L'analyseur Textile encapsule tous les tags dans des paragraphes; un paragraphe se termine par
199             deux nouvelles lignes, et s'il y a des tags supplémentaires, un nouveau paragraphe sera ajouté.
200         </para>
202         <sect3 id="zend.markup.parsers.textile.lists">
203             <title>Listes</title>
205             <para>
206                 L'analyseur Textile supporte aussi deux types de listes. Le type numérique, utilisant
207                 le caractère "#" et le type anonyme qui utilise lui l'étoile "*".
208                 Exemple des deux listes:
209             </para>
211             <programlisting><![CDATA[
212 # Item 1
213 # Item 2
215 * Item 1
216 * Item 2
217 ]]></programlisting>
219             <para>
220                 Le code ci-dessus génèrera deux listes, la première, numérique; et la seconde, anonyme.
221                 Dans les éléments des listes, vous pouvez utiliser des tags classiques comme le gras
222                 (*), et l'emphase(italique) (_). Les tags ayant besoin de créer une nouvelle ligne
223                 (comme 'h1' etc.) ne peuvent être utilisés au sein des listes.
224             </para>
225         </sect3>
226     </sect2>
227 </sect1>