PageRenderTime 75ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/doc/French/userguide-fr/userguide-fr.t2t

http://txt2tags.googlecode.com/
Unknown | 2108 lines | 1563 code | 545 blank | 0 comment | 0 complexity | 7df9a50643c4870801dd2b348d46127f MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, WTFPL
  1. Txt2tags User Guide - French Translation
  2. Aurélio Marinho Jargas v2.2 (Dez 2004)
  3. Translated by Claude Hiebel (Mar 2005)
  4. %!target: html
  5. %!encoding: UTF-8
  6. %%% htmldoc does TOC
  7. %!options(html): --no-toc --no-css-sugar -o userguide-pdf.html
  8. %%% Images are in the same dir
  9. %!preproc: IMGPATH .
  10. %%% Remove separator lines and strong lines
  11. %!preproc(html): '^ *[-=]{10,} *$' ''
  12. %%% Little clean up for less large tables
  13. %!postproc: /pessoal/sourceforge.net ''
  14. %%% All images with border
  15. %!postproc: '(<IMG [^>]*BORDER)="0"' '\1="1"'
  16. %%% removing first header, htmldoc ignores all until next <H1> (cool!)
  17. %!postproc(html): '<H1>Txt2tags User Guide .*</H1>' ''
  18. % normalizing common text
  19. %!preproc: CONFAREA Zone CONFIGURATION
  20. %!preproc: HEADAREA Zone ENTETE
  21. %!preproc: BODYAREA Zone CORPS
  22. %!preproc: MARKPROP **Propriétés :**
  23. %!preproc: MARKCONT **Contenu :**
  24. %!preproc: MARKDESC **Description :**
  25. %!preproc: MARKSYN **Syntaxe :**
  26. %!preproc: MARKDET **Détails :**
  27. %!preproc: NOMARKS Les marques ne sont pas interprétées
  28. %!preproc: NOMACRO Les macros ne sont pas interprétées
  29. %!preproc: URLMARKUP http://txt2tags.org/fr/marques.html
  30. % 15/Mar/2005: translated to french by Claude Hiebel
  31. % 22/Jun/2006: translation revised by Nicolas Dumoulin
  32. ========================================================================
  33. = Première partie - Introduction =[intro]
  34. == Les premières questions que vous vous posez ==[1st-questions]
  35. Ce chapitre est un aperçu de txt2tags, qui présente son utilisation et ses
  36. caractéristiques.
  37. ------------------------------------------------------------------------
  38. === Qu'est-ce que c'est ? ===
  39. Txt2tags est un outil de mise au format de texte et de conversion.
  40. Txt2tags convertit un fichier texte brut avec des petites marques en de
  41. multiples formats cibles :
  42. - Document HTML
  43. - Document XHTML
  44. - Document SGML
  45. - Document DocBook
  46. - Document LaTeX
  47. - Document Lout
  48. - Page de man UNIX
  49. - Présentation MagicPoint
  50. - Document Creole 1.0
  51. - Page Wikipedia (MediaWiki)
  52. - Page Google Wiki
  53. - Page PmWiki
  54. - Page DokuWiki
  55. - Page MoinMoin
  56. - Document PageMaker 6.0
  57. - Document AsciiDoc
  58. - Texte ASCII Art
  59. - Texte brut (sans marques)
  60. ------------------------------------------------------------------------
  61. === Pourquoi dois-je l'utiliser ? ===
  62. Vous allez trouver txt2tags très pratique si :
  63. - vous avez besoin de publier des documents sous divers formats,
  64. - maintenir des documents à jour sous divers formats,
  65. - écrire des documents techniques ou des manuels,
  66. - vous ne savez pas comment écrire un document dans un format
  67. particulier,
  68. - vous n'avez pas un éditeur spécifique pour un certain format,
  69. - vous voulez utiliser un éditeur simple pour faire les mises à jour.
  70. Et la motivation principale est :
  71. - gagner du temps : écrire le **contenu** et ne pas vous soucier de la
  72. **mise en forme**.
  73. ------------------------------------------------------------------------
  74. === Pourquoi est-ce un bon choix par rapport à d'autres outils ? ===
  75. Txt2tags est en très forte croissance, suivant des
  76. concepts de base.
  77. En voici les points forts :
  78. | //Fichiers source lisibles// | les marques Txt2tags sont très simples, presque naturelles.
  79. | //Document de sortie lisible// | Comme le fichier source, le fichier résultat est lisible, avec des indentations et des lignes courtes.
  80. | //Des marques compatibles// | les marques txt2tags sont suffisamment spécifiques pour aller dans n'importe quel document et ne peuvent pas être confondues avec le contenu.
  81. | //Des règles simples// | Comme les marques, les règles qui s'appliquent sont liées les unes aux autres. Il n'y a pas de "cas spéciaux" ni "d'exception".
  82. | //Structures simples// | Toute la mise en forme supportée est **simple** sans autre option ni modificateur compliqué. Juste une marque sans aucune option.
  83. | //facile à apprendre// | Avec des marques simples et un source lisible, l'apprentissage de txt2tags est ``user friendly``.
  84. | //De jolis exemples// | Les **fichiers d'exemple** inclus dans le package donnent des exemples réels simples ou "sur"-compliqués écrits avec txt2tags.
  85. | //Des outils précieux// | Les **fichiers de syntaxe** inclus dans le logiciel (pour les éditeurs vim, emacs, nano et kate) vous aidant à écrire des documents sans erreur de syntaxe.
  86. | //trois interfaces utilisateur// | Il y a **l'interface graphique Tk**, très facile à utiliser, une **interface Web** qui peut être utilisée à distance et une **interface en ligne de commande** pour les connaisseurs des langages de script.
  87. | //langage script// | Avec le mode ligne de commande comportant toutes les options, un utilisateur expérimenté peut **automatiser** les tâches et faire de la **post-édition** sur les fichiers convertis.
  88. | //Chargez et lancez / Multi-platforme// | Txt2tags est un simple **script Python**. Il n'y a pas besoin de compilateur ni de charger des modules supplémentaires. Ainsi il tourne sans problème sur *NIX, Linux, Windows et Macintosh.
  89. | //Mises à jour fréquentes// | Le programme possède une liste de diffusion très active avec des utilisateurs qui proposent des corrections et des améliorations. L'auteur lui-même est un utilisateur intensif à la maison et au travail, donc le développement n'est pas prêt de s'arrêter.
  90. ------------------------------------------------------------------------
  91. === Ai-je à payer? ===
  92. || Absolument PAS ! |
  93. C'est un logiciel libre, GPL, open source et du domaine public.
  94. //<mettez-votre-mot-favori-ici>//.
  95. Vous pouvez le copier, l'utiliser, le modifier, le vendre et faire des
  96. mises à jour comme s'il vous appartenait. La politique de copyright du
  97. logiciel n'est pas un des soucis principaux de l'auteur.
  98. ------------------------------------------------------------------------
  99. == Structures de mise au format supportées==[structures]
  100. Voici la liste de toutes les structures supportées par txt2tags.
  101. - entête (titre du document, nom de l'auteur, date)
  102. - titre de section (numéroté ou non)
  103. - paragraphes
  104. - modificateurs de fontes
  105. - gras
  106. - italique
  107. - souligné
  108. - fonte non proportionnelle (verbatim)
  109. - dans un paragraphe en fonte non proportionnelle
  110. - ligne en fonte non proportionnelle
  111. - zone en fonte non proportionnelle
  112. - citations
  113. - liens
  114. - URL/liens Internet,
  115. - liens e-mail,
  116. - liens locaux,
  117. - liens nommés.
  118. - listes
  119. - liste pointée
  120. - liste numérotée
  121. - liste de définition
  122. - lignes de séparation horizontales
  123. - image avec un joli alignement
  124. - table (avec ou sans bordures, alignement dans la cellule)
  125. - marques spéciales pour du texte brut (sans traitement)
  126. - macro spéciale pour la date courante (avec une mise en forme souple)
  127. - commentaires (pour des notes, TODO, FIXME)
  128. ------------------------------------------------------------------------
  129. == Cibles supportées ==[targets]
  130. : **HTML**
  131. Tout le monde sait ce qu'est l'HTML. (Internet)
  132. Txt2tags génère des documents HTML propres, qui sont jolis et dont le
  133. source est lisible. Il N'UTILISE PAS javascript, des fenêtres ou autre
  134. technique futile, qui ne sont pas nécessaires pour des documents simples
  135. ou techniques. Mais un fichier CSS peut être utilisé si demandé. Txt2tags
  136. génère du code "//HTML 4.0 Transitional//".
  137. Depuis la version 2.0, le code HTML généré est approuvé 100% par
  138. le [w3c validator http://validator.w3.org/].
  139. : **XHTML**
  140. C'est la nouvelle génération de HTML, avec des règles plus strictes aussi
  141. près des marques que vous ouvrez. Cela rend le code plus facile à
  142. traiter et à comprendre. Pour les cas généraux, considérez que c'est
  143. du HTML. Txt2tags génère du code "//XHTML 1.0 Transitional//".
  144. Depuis la version 2.0, le code XHTML généré est approuvé 100% par
  145. le [w3c validator http://validator.w3.org/].
  146. : **SGML**
  147. C'est un format courant de document qui a de puissants
  148. [outils de conversion http://www.sgmltools.org].
  149. A partir d'un fichier sgml vous pouvez générer des documents html, pdf,
  150. ps, info, latex, lyx, rtf. Les outils sgml2* font aussi une table des
  151. matières automatique et sépart les sections en pages distinctes (sgml2html).
  152. Txt2tags génère des fichiers SGML dans le système de fichiers linuxdoc
  153. prêt à être convertis avec les outils sgml2* sans fichier catalogue
  154. supplémentaire et sans besoin ennuyeux du SGML
  155. : **LATEX**
  156. Le format académique préféré, bien plus puissant que vous pouvez
  157. le rêver. Des livres complets, des formules compliquées et tout texte
  158. complexe peuvent être écrits en LaTeX. Mais si vous voulez écrire les
  159. marques à la main, préparez vous à vous arracher les cheveux ...
  160. Txt2tags génère des fichiers LaTeX prêts à l'usage, faisant
  161. tout le travail complexe de mise en forme avec ses exceptions.
  162. L'utilisateur n'a à s'occuper que du texte.
  163. : **LOUT**
  164. Très semblable à LaTeX en puissance, mais avec une syntaxe plus facile,
  165. utilisant des "@" à la place des "\" et évitant l'utilisation des
  166. accolades dans les cas classiques. Son approche tout-est-objet rend
  167. le marquage plus sain.
  168. Txt2tags génère des fichiers Lout prêts à l'usage, qui peuvent être
  169. convertis en PS ou PDF en utilisant la commande "lout".
  170. : **MAN**
  171. Les page de manuel UNIX résistent au temps. Les formats de documents
  172. passent et elles sont toujours , inamovibles.
  173. Il y a d'autres outils pour générer des pages de man, mais txt2tags a un
  174. avantage : une source de multiples cibles. Ainsi la même page de man peut
  175. être convertie en page HTML, présentation Magic Point, etc.
  176. : **MGP**
  177. [Magic Point http://www.mew.org/mgp] est un outil de présentation très
  178. pratique (genre : Microsoft PowerPoint), qui utilise un langage de
  179. marques pour définir tous les écrans. Vous pouvez faire des
  180. présentations complexes avec vi/emacs/notepad.
  181. Txt2tags génère des fichiers .mgp prêts à l'usage, définissant toutes
  182. les entêtes pour les fontes et pour les définitions de la présentation,
  183. ainsi que le support des accents en encodage ISO-8859 avec le support des accents.
  184. **POINT FORT 1 :** txt2tags crée les fichiers .mgp en utilisant les
  185. fontes XFree86 Type1. Ainsi vous n'avez pas à joindre les fichiers
  186. de fontes TrueType à votre présentation.
  187. **POINT FORT 2 :** les définitions de couleurs des fontes sont
  188. propres, même sur un système avec une palette de couleurs réduite
  189. (même lancé avec la commande ``startx -- -bpp 8``) la présentation sera
  190. correcte.
  191. Les mots clés sont : convertir et utiliser. Aucun autre besoin ou
  192. arrangement nécessaire.
  193. : **MOIN**
  194. Vous ne savez pas ce qu'est [MoinMoin http://moin.sourceforge.net] ?
  195. C'est [WikiWiki http://www.c2.com/cgi/wiki]!
  196. La syntaxe du Moin est un tantinet ennuyeuse quand vous devez mettre
  197. ``{{{'''''des apostrophes et des accolades'''''}}}``, txt2tags vient
  198. avec ses marques simples et sa solution unifiée : un source des cibles
  199. multiples.
  200. : **PM6**
  201. J'espère que vous ne le savez pas, mais Adobe PageMaker 6.0 a son
  202. propre langage de balises. Les styles, les couleurs de table, les
  203. modificateurs de caractères et la majorité des possibilités à la souris
  204. sont également disponibles dans son langage de marques. Vous avez juste
  205. besoin d'accéder au menu "Import tagged text". Juste pour information,
  206. c'est un langage de marques <comme HTML>.
  207. Txt2tags génère toutes les marques et définit déjà une entête
  208. complète et fonctionnelle, réglant la mise au format et les styles de
  209. paragraphe. C'est le morceau le plus difficile.
  210. **ATTENTION:** Pas de coupure de ligne. Un paragraphe doit être sur une
  211. seule ligne.
  212. Note de l'auteur :
  213. //Mon livre entier en portugais [regular expression's book http://guia-er.sf.net]//
  214. //a été écrit avec VI, convertit en PageMaker avec txt2tags et envoyé
  215. //sous presse.//
  216. : **TXT**
  217. TXT est le texte. Le seul vrai type de mise au format.
  218. Quoique les marques de txt2tags soient intuitives et discrètes, vous
  219. pouvez les enlever en convertissant le fichier en texte pur.
  220. Les titres sont soulignés. Et le texte est laissé comme dans le fichier
  221. source.
  222. ------------------------------------------------------------------------
  223. == Statuts des structures supportées par cible ==[struct-support]
  224. || Structure | html | xhtml | sgml | tex | lout | man | mgp | moin | pm6 | txt |
  225. | entêtes | O | O | O | O | O | O | O | N | N | O |
  226. | entête de section | O | O | O | O | O | O | O | O | O | O |
  227. | paragraphes | O | O | O | O | O | O | O | O | O | O |
  228. | gras | O | O | O | O | O | O | O | O | O | - |
  229. | italique | O | O | O | O | O | O | O | O | O | - |
  230. | souligné | O | O | - | O | O | - | O | O | O | - |
  231. | fonte non proportionnelle | O | O | O | O | O | - | O | O | O | - |
  232. | ligne verbatim | O | O | O | O | O | O | O | O | O | - |
  233. | zone verbatim | O | O | O | O | O | O | O | O | O | - |
  234. | zone de citation | O | O | O | O | O | O | O | O | O | O |
  235. | liens internet | O | O | O | - | - | - | - | O | - | - |
  236. | liens e-mail | O | O | O | - | - | - | - | O | - | - |
  237. | liens locaux | O | O | O | N | N | - | - | O | - | - |
  238. | liens nommés | O | O | O | - | - | - | - | O | - | - |
  239. | liste pointée | O | O | O | O | O | O | O | O | O | O |
  240. | liste numérotée | O | O | O | O | O | O | O | O | O | O |
  241. | liste de definition | O | O | O | O | O | O | N | N | N | O |
  242. | ligne horizontale | O | O | - | O | O | - | O | O | N | O |
  243. | image | O | O | O | O | O | - | O | O | N | - |
  244. | table | O | O | O | O | N | O | N | O | N | N |
  245. || Extras | html | xhtml | sgml | tex | lout | man | mgp | moin | pm6 | txt |
  246. | alignement d'image | O | O | N | N | O | - | O | N | N | - |
  247. | alignement cellule table | O | O | O | O | N | O | N | O | N | N |
  248. || | Légende
  249. | **O** | //supporté//
  250. | **N** | //non supporté (peut-être dans une révision future)//
  251. | **-** | //non supporté (ne peut pas l'être dans cette cible)//
  252. % | **?** | //non supporté (pas sûr que cela puisse être fait)//
  253. ------------------------------------------------------------------------
  254. == Les trois interfaces utilisateur : GUI, internet et ligne de commande==[interfaces]
  255. Comme les utilisateurs ont des besoins différents et des environnements
  256. divers, txt2tags est très souple dans son utilisation.
  257. Il y a trois interfaces utilisateur pour le programme, chacune avec ses
  258. particularités et fonctionnalités.
  259. - **GUI**: écrite en Tk, apporte le fenêtrage et le clic de souris à txt2tags
  260. - **Web**: écrite en PHP, permet de lancer txt2tags sur un butineur, ne
  261. nécessitant aucune installation côté client.
  262. - **ligne de commande**: écrite en Python, c'est le coeur du programme.
  263. Toutes les options sont disponibles en option.
  264. ------------------------------------------------------------------------
  265. === Interface graphique Tk ===[gui]
  266. Depuis la version 1.0, il y a une jolie interface graphique, qui
  267. fonctionne sur Linux, Windows, Mac et autres.
  268. Le programme détecte automatiquement si votre système peut afficher
  269. l'interface, et est lancé sans argument. On peut
  270. forcer l'interface graphique avec l'option ``--gui``. S'il manque une
  271. ressource, le programme le dira.
  272. **Note:** Le module Tkinter est nécessaire. Comme il est
  273. disponible dans la distribution standard de Python, vous devez
  274. certainement l'avoir.
  275. L'interface est simple et intuitive.
  276. [IMGPATH/gui.png]
  277. + Vous localisez le fichier .t2t sur le disque et les options sont
  278. chargées.
  279. + Si aucune cible n'est définie, vous devez en choisir une
  280. + Ensuite vous pouvez choisir quelques options, mais aucune n'est
  281. nécessaire
  282. + A la fin vous appuyez sur le bouton "convertir"
  283. Un option pratique est "//visualisation à l'écran//". Vous pouvez voir le
  284. code généré dans une autre fenêtre , aucun fichier n'est sauvegardé.
  285. Quand le code est correct, vous enlevez l'option et la conversion
  286. s'effectuera normalement.
  287. Les couleurs par défaut peuvent être changées dans le fichier
  288. ``~/.txt2tagsrc``, en utilisant les réglages ``%!guicolors``. Par
  289. exemple :
  290. ```
  291. % choisir mes couleurs pour l'interface graphique (bg1, fg1, bg2, fg2)
  292. %!guicolors: blue white brown yellow
  293. ```
  294. ------------------------------------------------------------------------
  295. === Interface Web ===
  296. L'interface Web est disponible à l'adresse
  297. http://txt2tags.org/online.php. Vous pouvez tester et utiliser le
  298. programme avant de le charger.
  299. [IMGPATH/web.png]
  300. On peut aussi installer cette interface sur le réseau local. Cela évite
  301. d'avoir à l'installer sur toutes les machines.
  302. ------------------------------------------------------------------------
  303. === Interface ligne de commande===[cmdline]
  304. Pour les utilisateurs en ligne de commande l'option ``--help`` doit suffire.
  305. ```
  306. Utilisation : txt2tags [OPTIONS] [entrée.t2t ...]
  307. -t, --target indiquez le type de document de sortie supporté :
  308. html, xhtml, sgml, tex, lout, man, mgp, moin, pm6, txt
  309. -i, --infile=ENTREE choisissez le fichier d'entrée ('-' pour STDIN)
  310. -o, --outfile=SORTIE choississez le fichier de sortie ('-' pour STDOUT)
  311. -n, --enum-title numéroter les titres en : 1, 1.1, 1.1.1, etc
  312. -H, --no-headers supprimer les entêtes, les titres et les pieds de page
  313. --headers montrer les entêtes, les titres et les pieds de page (par défaut)
  314. --encoding=ENC choisir l'encodage de sortie (utf-8, iso8859-1, etc)
  315. --style=FILE utiliser FILE comme feuille de style (comme HTML CSS)
  316. --css-sugar insère des étiquettes CSS pour des sorties HTML et XHTML
  317. --css-sugar insèrer le contenu du fichier CSS pour des sorties HTML et XHTML
  318. --mask-email cacher l'email des robots spammeurs x@y.z devient x (a) y z
  319. --toc ajouter la table des matières à la sortie
  320. --toc-only imprime la table des matières et sort
  321. --toc-level=N limiter la profondeur de la table des matières à N
  322. --rc lire le fichier de configuration ~/.txt2tagsrc (option par défaut)
  323. --gui appeler l'interface graphique Tk
  324. -q, --quiet mode silencieux, plus de sortie (sauf les erreurs)
  325. -v, --verbose imprimer des messages d'information pendant la conversion
  326. -h, --help imprimer cette aide et sortir
  327. -V, --version imprimer la version et sortir
  328. --dump-config imprimer toute la configuration trouvée et sortir
  329. Désactive les options (OFF)
  330. --no-outfile, --no-infile, --no-style, --no-encoding, --no-headers
  331. --no-toc, --no-toc-only, --no-mask-email, --no-enum-title, --no-rc
  332. --no-css-sugar, --no-css-inside, --no-quiet
  333. Exemple :
  334. txt2tags -t html --toc myfile.t2t
  335. Par défaut, la sortie convertie est sauvée dans 'entrée.<type>'
  336. Utilisez --outfile pour imposer un fichier de sortie
  337. Si le fichier d'entrée est '-', la lecture est à partir de STDIN
  338. Si le fichier de sortie est '-', la sortie est sur STDOUT
  339. ```
  340. ==== Exemples ====
  341. Si vous avez créé un fichier marqué ``file.t2t``, voici quelques
  342. exemples :
  343. | **Convertir en HTML** | ``$ txt2tags -t html file.t2t``
  344. | **Le même avec redirection** | ``$ txt2tags -t html -o - file.t2t > file.html`` | | .
  345. | **Avec une table des matières** | ``$ txt2tags -t html --toc file.t2t``
  346. | **Et aussi avec les titres numérotés** | ``$ txt2tags -t html --toc --enum-title file.t2t`` | |
  347. | **vue rapide de la table des matières** | ``$ txt2tags --toc-only file.t2t``
  348. | **la même numérotée** | ``$ txt2tags --toc-only --enum-title file.t2t`` | | .
  349. | **coder une ligne à partir de STDIN** | ``$ echo -e "\n**bold**" | txt2tags -t html --no-headers -``
  350. | **Tester l'option masquer les emails** | ``$ echo -e "\njohn.wayne@farwest.com" | txt2tags -t txt --mask-email --no-headers -``
  351. | **Édition post-conversion** | ``$ txt2tags -t html -o- file.t2t | sed "s/<BODY .*/<BODY BGCOLOR=green>/" > file.html``
  352. : //Note//
  353. Depuis la version 1.6 vous pouvez faire du traitement avant et après
  354. conversion avec les filtres ``%!preproc`` et ``%!postproc``.
  355. ========================================================================
  356. = Deuxième partie - OK je le veux, que faire maintenant ?=[install]
  357. Téléchargez le programme et lancez le sur votre machine.
  358. == Charger et installer Python ==[download-python]
  359. Avant tout, vous devez charger et installer l'interpréteur
  360. Python sur votre système. Si vous l'avez déjà, sautez ce
  361. paragraphe.
  362. Python est un bon programme, il fonctionne sur Windows,
  363. Linux, UNIX, Macintosh et autres et peut être téléchargé à
  364. partir du [site web Python http://www.python.org]. Les
  365. instructions d'installation sont disponibles sur le site
  366. web. Txt2tags marche mieux avec une version de Python 1.5 ou
  367. supérieure.
  368. Si vous n'êtes pas sûr d'avoir Python, ouvrez une console
  369. (tty, xterm ou MSDOS) et tapez ``python``. Si ce n'est pas
  370. installé, votre système vous le dira.
  371. == Charger txt2tags ==[download-txt2tags]
  372. Le site officiel de la distribution txt2tags est
  373. http://txt2tags.org/src.
  374. Tous les fichiers sont des archives compressées (fichiers .tgz), qui peuvent être
  375. décompressés par la plupart des utilitaires (Winzip inclus).
  376. Prenez la **dernière** version (la plus récente ou le numéro de version le
  377. plus élevé). Les versions précédentes restent pour des raisons
  378. historiques.
  379. == Installer txt2tags ==[install-txt2tags]
  380. Comme tous les scripts Python, txt2tags ne nécessite aucune
  381. installation.
  382. Le seul fichier nécessaire pour le programme est le script txt2tags. Les
  383. autres fichiers de l'archive compressée sont de la documentation, des outils et des
  384. fichiers d'exemple.
  385. Le moyen le plus sur de lancer txt2tags est de l'appeler par Python.
  386. ``` prompt$ python txt2tags
  387. Si vous voulez installer txt2tags sur le système comme programme, copiez
  388. (ou faites un lien) sur le fichier script txt2tags dans un répertoire
  389. référencé par la variable PATH et assurez vous que le système peut le
  390. lancer.
  391. : **UNIX/Linux**
  392. Rendez le script exécutable (``chmod +x txt2tags``) et copiez le dans un
  393. répertoire référencé par la variable PATH (``cp txt2tags /usr/local/bin``).
  394. : **Windows**
  395. Renommez le fichier script en ajoutant l'extension .py
  396. (``ren txt2tags txt2tags.py``) et copiez le dans un répertoire de la
  397. variable PATH (``copy txt2tags.py C:\WINNT``).
  398. Après cela, vous pouvez créer un icône pour votre bureau, si vous voulez
  399. utiliser l'interface graphique.
  400. === Paquets spéciaux pour les utilisateurs Windows ===
  401. Il y a aussi deux distributions .EXE pour txt2tags, chacune installe le
  402. programme sur les machines Window avec quelques clics :
  403. - Le script txt2tags pour ceux qui ont l'interpréteur Python déjà
  404. installé
  405. - La version complète, qui n'a pas besoin de l'interpréteur Python (il
  406. y a une version légère de Python incluse).
  407. Visitez le site //Txt2tags-Win// pour charger les paquets :
  408. http://txt2tags-win.sf.net
  409. == Installer les colorateurs syntaxiques pour les éditeurs ==[editor-syntax]
  410. Txt2tags est livré avec des fichiers de colorateurs syntaxiques utilisables
  411. avec les éditeurs suivants :
  412. - Vim (www.vim.org)
  413. - Emacs (www.emacs.org)
  414. - Nano (www.nano-editor.org)
  415. - Kate (http://kate.kde.org)
  416. Ces fichiers de coloration syntaxique connaissent toutes les règles et les
  417. marques de txt2tags, aidant l'utilisateur à écrire des documents sans
  418. faute de syntaxe. Visualisant les marques en couleur, vous voyez en
  419. direct si vous écrivez correctement.
  420. | [IMGPATH/vim.png] |
  421. | Exemple de fichier ouvert avec l'éditeur Vim
  422. Chaque éditeur a une procédure d'installation spécifique, lire
  423. l'entête du ficher de syntaxe et la documentation de l'éditeur.
  424. ========================================================================
  425. = Troisième partie - Écrire et convertir son premier document =[your-1st-doc]
  426. == Tester les outils ==
  427. Pour faire votre première conversion, vous avez besoin de trois choses :
  428. txt2tags, un éditeur de texte et un butineur.
  429. + Vérifiez que txt2tags fonctionne sur votre machine.
  430. - **Interface en ligne de commande :** Appelez "txt2tags" sur une ligne
  431. de commande et le programme va vous donner le message "Missing
  432. input file" ou similaire. Si cela ne marche pas essayez "python /chemin/vers/txt2tags"
  433. ou "/chemin/vers/python /chemin/vers/txt2tags" si Python n'est pas dans
  434. votre PATH.
  435. - **Interface Gui :** Cliquez sur l'icône du programme pour lancer
  436. l'interface graphique.
  437. + Ouvrez un éditeur de texte que vous connaissez bien. cela peut être
  438. **n'importe lequel**, de vi jusqu'à MS Word ou Open Office. Créez un
  439. nouveau document marqué qui sera votre premier document txt2tags.
  440. + Lancez votre butineur préféré pour voir les résultats de la conversion
  441. dans une page HTML.
  442. ------------------------------------------------------------------------
  443. == Écrire l'entête du document ==
  444. + Allez dans l'éditeur de texte et tapez sur la **première** ligne du
  445. document //Mon premier doument//
  446. + Sur la deuxième ligne faire un sous titre avec le texte //test txt2tags//
  447. + Puis sur la troisième ligne mettre une information de date //Lundi 2029//
  448. Si tout c'est bien passé vous avez un document avec le contenu suivant :
  449. ```
  450. Mon premier document
  451. test txt2tags
  452. Lundi 32 Janvier 2029
  453. ```
  454. Ceci n'est qu'une partie du document, mais vous pouvez le convertir et
  455. tester le résultat.
  456. Maintenant sauvegardez le résultat avec le nom ``test.txt``. Notez
  457. dans quel dossier vous sauvez le fichier, vous en aurez besoin
  458. plus tard.
  459. ------------------------------------------------------------------------
  460. == La première conversion - l'interface graphique ==
  461. Si vous utilisez l'interface en ligne de commande passez au paragraphe
  462. suivant.
  463. Si vous utilisez l'interface graphique procédez comme suit:
  464. [IMGPATH/firstdoc.png]
  465. + Appuyez sur le bouton "choisir" et choisir le fichier ``test.txt``
  466. que vous venez de sauver (souvenez vous du dossier !)
  467. + De retour à la première image, choisir "page HTML" pour "Choisissez le type du document de sortie"
  468. + Appuyez sur le bouton "convertir"
  469. [IMGPATH/firstdoc-done.png]
  470. Une boite de dialogue apparaît, qui vous informe que le fichier a été
  471. converti avec succès. Notez que le fichier HTML généré a été sauvé dans
  472. le même dossier que le fichier texte avec l'extension "html".
  473. ------------------------------------------------------------------------
  474. == La première conversion - interface ligne de commande ==
  475. Si vous utilisez l'interface graphique allez au paragraphe précédent.
  476. Si vous êtes dans l'interface ligne de commande allez dans le dossier où
  477. a été sauvé votre fichier et tapez la commande :
  478. ``` txt2tags --target html test.txt
  479. Notez qu'il y a des espaces entres les parties de la commande mais pas
  480. dans la chaîne "--target", c'est une option. Cette option est suivie de
  481. la chaîne "html", qui dit au programme dans quel format votre fichier
  482. texte doit être converti. Le dernier argument est le nom du fichier.
  483. Si la conversion se réalise, le résultat est sauvé dans le fichier
  484. ``test.html`` et le programme affichera le message
  485. "//txt2tags écrit test.html//" Sinon il vous indiquera l'erreur que
  486. vous avez faite en tapant la ligne de commande. Vérifiez
  487. attentivement.
  488. Voici un exemple de ce que vous verrez à l'écran :
  489. ```
  490. prompt$ txt2tags --target html test.txt
  491. txt2tags écrit test.html
  492. prompt$
  493. ```
  494. ------------------------------------------------------------------------
  495. == Tester le résultat ==
  496. Ouvrez le fichier ``test.html`` avec le butineur pour vérifier que tout
  497. est bon.
  498. [IMGPATH/firstdoc-html.png]
  499. On y arrive ! Vous avez juste tapé trois lignes simples de texte et
  500. txt2tags a fait tout le travail pour configurer l'entête de la page HTML.
  501. L'alignement du texte, les tailles, les espacements et l'apparence.
  502. Voyez que le titre principal est également dans l'onglet du butineur.
  503. || Vous écrivez du texte, txt2tags fait le reste :) |
  504. Astuce : Vous pouvez également utiliser des CSS sur les pages HTML
  505. générées par txt2tags, ainsi l'apparence de la page est configurable à
  506. 100%.
  507. ------------------------------------------------------------------------
  508. == Écrire le corps du document ==
  509. Retournons à l'éditeur de texte, l'étape suivante est d'écrire le corps
  510. du document. Vous pouvez écrire du texte brut comme vous le faites pour
  511. les emails. Vous voyez que txt2tags reconnaît les paragraphes et les
  512. listes d'items automatiquement, vous n'avez pas besoin de les "marquer".
  513. Sauvez à nouveau, convertissez et testez le résultat. C'est le cycle de
  514. développement avec txt2tags. Vous ne vous intéressez qu'au contenu du
  515. document, terminant les documents plus rapidement qu'avec les autres
  516. éditeurs. Pas de cliquage de souris, pas de menus, de fenêtre ni de
  517. distraction.
  518. Regardez le contenu du fichier suivant ``test.txt``, qui n'est que du
  519. texte brut et comparez le avec la page HTML générée :
  520. ```
  521. Mon premier document
  522. test txt2tags
  523. Lundi 32 Janvier 2029
  524. Essayons donc ce truc qui s'appelle txt2tags.
  525. Ce que je met c'est juste pour noircir l'écran.
  526. C'est pas un temps à aller dehors chercher :
  527. - des mouches
  528. - des souris
  529. - des canards
  530. - des éléphants
  531. - des baleines
  532. ```
  533. [IMGPATH/firstdoc-fullhtml.png]
  534. Vous pouvez écrire une page complète sans aucune connaissance de HTML.
  535. Vous n'avez pas besoin d'insérer des marques. En plus le même fichier
  536. texte peut être converti dans tous les autres formats cibles supportés par
  537. txt2tags.
  538. A côté du texte brut, txt2tags a quelques marques très simples, que vous
  539. utilisez quand vous avez besoin d'autres mises au format ou structures
  540. comme le gras, l'italique, les titres, les images, les tables et autres.
  541. Un exemple rapide :
  542. ``**commencez en gras**`` et ``== les signes == pour le titre ==``.
  543. Vous pouvez apprendre les marques grâce au fichier
  544. [Txt2tags Markup Demo http://txt2tags.org/markup.html].
  545. =======================================================================
  546. = Quatrième partie - maîtriser les concepts de txt2tags =[concepts]
  547. == Les zones d'un document .t2t ==[areas]
  548. Les fichiers marques txt2tags sont divisés en 3 zones. Chacune a ses
  549. propres règles et usage. Ce sont :
  550. : //ENTETE//
  551. La zone pour le titre du document, l'auteur, la version et la date
  552. (ceci est optionnel)
  553. : //CONFIGURATION//
  554. La zone pour la configuration générale du document et le comportement
  555. de la conversion(ceci est optionnel).
  556. : //CORPS//
  557. La place du contenu du document (obligatoire)
  558. Comme vu au dessus, les deux premières zones sont optionnelles, seul le
  559. //CORPS// est obligatoire.
  560. Les zones sont délimitées par des règles spéciales, qui seront vues en
  561. détail dans le chapitre suivant. La représentation graphique des zones du document
  562. est la suivante :
  563. ```
  564. _____________
  565. | |
  566. | ENTETE | 1. En premier, l'entête
  567. | |
  568. |CONFIGURATION| 2. Puis la configuration
  569. | |
  570. | CORPS | 3. Enfin le corps du document,
  571. | |
  572. | ... | jusqu'à la fin.
  573. | ... |
  574. |_____________|
  575. ```
  576. En bref, les zones sont définies de la façon suivante :
  577. | **Entête** | Les 3 premières lignes du fichier ou la première ligne vide
  578. | **Configuration** | Commence après l'entête (4e ou 2e ligne) et termine lorsque le corps commence
  579. | **Corps** | La première ligne de texte valide (pas un commentaire ou une configuration après l'//ENTETE//
  580. === Exemple complet===
  581. ```
  582. Mon joli titre de document
  583. Mr. John Doe
  584. Dernière mise à jour: %%mtime(%c)
  585. %! Target : html
  586. %! Style : fancy.css
  587. %! Encoding: iso-8859-1
  588. %! Options : --toc --enum-title
  589. Salut ! Ceci est mon premier essai de document.
  590. Son contenu se termine ici.
  591. ```
  592. ------------------------------------------------------------------------
  593. == ENTETE ==[headers-area]
  594. Localisation:
  595. - position fixe : **les 3 premières lignes** du fichier. C'est tout.
  596. - position fixe : **la première ligne** du fichier si elle est blanche.
  597. Cela signifie une entête vide.
  598. L'ENTETE est la seule zone qui a une position fixe, et est orientée
  599. ligne. Elle est localisée dans les trois premières lignes du fichier
  600. source.
  601. Ces lignes sont libres, aucune information statique de type est
  602. demandée, mais le contenu suivant est recommandé :
  603. - //ligne 1//: titre du document
  604. - //ligne 2//: nom de l'auteur et/ou email
  605. - //ligne 3//: date du document et/ou version
  606. (un lieu privilégié pour ``%%date``)
  607. Gardez en mémoire que les trois premières lignes du document source
  608. seront les trois premières lignes du document cible, séparées et
  609. contrastées par rapport au corps du document (grandes lettres en gras).
  610. Si la pagination est autorisée, l'entête sera seule et centrée sur la
  611. première page.
  612. ==== Plus (ou pas) de lignes d'entête ====
  613. Quelquefois l'utilisateur désire spécifier moins de trois lignes pour
  614. l'entête, ne donnant que le titre et/ou la date.
  615. Il n'y a qu'à laisser la deuxième et/ou la troisième ligne vide et cela
  616. ne sera pas inclus dans le document final. Mais gardez en mémoire que
  617. même vides, ces lignes font partie de l'entête et que le corps du
  618. document **doit** commencer après cette troisième ligne.
  619. Le titre est le seul élément demandé de l'entête, mais si vous le
  620. laissez vide, vous dites que votre document n'aura **pas d'entête**. le
  621. corps du document commencera juste après à la deuxième ligne.
  622. Ne pas mettre d'entête est souvent utile si vous voulez spécifier votre
  623. propre entête personnalisée après conversion. L'option de ligne de
  624. commande ``--no-headers`` est nécessaire pour cette opération.
  625. ==== En deux mots ====
  626. || En résumé : "les entêtes sont des __positions__ pas des contenus." |
  627. Placez un texte sur la première ligne et il apparaîtra sur la première ligne
  628. du fichier résultat. Idem pour les deuxième et troisième lignes de
  629. l'entête.
  630. ------------------------------------------------------------------------
  631. == CONFIGURATION ==[config-area]
  632. Localisation:
  633. - Commence juste après l'ENTETE
  634. - Commence à la **quatrième ligne** du fichier si des **entêtes** sont spécifiées.
  635. - Commence à la **deuxième ligne** du fichier si **aucune entête** n'est spécifiée.
  636. - Se termine lorsque le CORPS commence.
  637. - Se termine par une ligne vide, une ligne qui n'est pas un réglage, ou une ligne
  638. de commentaire
  639. La zone de CONFIGURATION est optionnelle. Un utilisateur moyen peut écrire un
  640. tas de fichiers txt2tags sans savoir que cela existe, mais les
  641. utilisateurs expérimentés apprécieront la puissance et le contrôle que
  642. cela procure.
  643. La zone de CONFIGURATION est utilisée pour ranger les réglages du document,
  644. vous n'aurez pas à taper les options dans la ligne de commande au
  645. moment de la conversion. Par exemple vous pouvez définir le format de la
  646. cible et l'encodage.
  647. Lire la section [réglages #settings-overview] pour plus
  648. d'informations.
  649. ----------------------------------------------------------------
  650. == CORPS ==[body-area]
  651. Localisation:
  652. - Commence à la première ligne valide de texte du fichier.
  653. - Les entêtes, les réglages et les commentaires ne sont **pas**
  654. des lignes de texte valides.
  655. - Se termine à la fin du fichier (EOF).
  656. Le CORPS est tout ce qui n'est pas ENTETE ou CONFIGURATION.
  657. Le CORPS est constitué du contenu du document et de toutes les
  658. structures et mises en forme que txt2tags peut reconnaître. Dans le
  659. corps vous pouvez inclure des commentaires pour les //TODO// et les
  660. //notes personnelles//.
  661. Vous pouvez utiliser l'option en ligne de commande ``--no-headers`` pour
  662. convertir le corps du document, en supprimant les entêtes. C'est
  663. pratique pour fabriquer vos entêtes dans un fichier séparé, que vous
  664. concaténez ensuite.
  665. ----------------------------------------------------------------
  666. == Réglages ==[settings-overview]
  667. Les réglages sont des lignes de commande placées dans la CONFIGURATION
  668. et qui modifient la conversion. Leur syntaxe est :
  669. || %! clé : valeur |
  670. Liste des clés valides :
  671. || clé | Description |
  672. | Target | définit la cible par défaut dans laquelle le document sera converti
  673. | Options | Définit les options par défaut qui seront utilisées à la conversion. Le format est le même que dans la ligne de commande.
  674. | Style | Définit le style du document. Utilisé pour définir un fichier CSS pour HTML/XHTML et pour charger un package LaTeX.
  675. | Encoding | Choisit le jeu de caractères. Utilisé si le document contient des caractères accentués ou des caractères non ASCII
  676. | PreProc | Filtre d'entrée. Définit les règles "trouve et remplace" qui seront appliquées au document source.
  677. | PostProc | filtre de sortie. Définit les règles "trouve et remplace" qui seront appliquées au document de sortie.
  678. Exemple:
  679. ```
  680. %! Target : html
  681. %! Options : --toc --toc-level 3
  682. %! Style : fancy.css
  683. %! Encoding: iso-8859-1
  684. %! PreProc : "AMJ" "Aurelio Marinho Jargas"
  685. %! PostProc: '<BODY.*?>' '<BODY bgcolor="yellow">'
  686. ```
  687. -----------------------------------------------------------------------
  688. == Option en ligne de commande ==[options]
  689. Le moyen le plus rapide de changer le comportement par défaut est
  690. d'utiliser les options de la ligne de commande. Cela n'est disponible
  691. que sur l'interface en ligne de commande pas sur l'interface GUI ou
  692. Web.
  693. Comme les autres programmes système, le programme accepte un jeu
  694. d'options prédéfinies. Une option est un tiret suivi par une lettre ou
  695. deux tirets suivis d'un ou plusieurs mots comme ``-t`` ou ``--target``. A
  696. propos de l'option "target", c'est la seule obligatoire, toutes les
  697. autres sont optionnelles.
  698. Les options généralement utilisées sont ``--outfile`` pour définir un
  699. fichier de sortie particulier, ``--toc`` pour activer la génération
  700. automatique de la table des matières et ``--encoding`` pour choisir le
  701. jeu de caractères. La plupart des options peuvent être désactivées en la
  702. précédant de "no-" devant, par exemple :``-no-encoding`` et
  703. ``--no-toc``.
  704. Vous pouvez enregistrer les options désirées dans le fichier source dans
  705. la CONFIGURATION, en utilisant le réglage ``%!option``. Par ce
  706. moyen, vous n'avez plus à les retaper dans la ligne de commande.
  707. Exemple: ``%!options: --toc -o mydoc.html``. L'exception est la
  708. spécification de la cible qui a sa propre syntaxe : ``%!target: html``.
  709. Utilisez l'option ``--help`` pour avoir la liste complète des options
  710. disponibles dans txt2tags.
  711. -----------------------------------------------------------------------
  712. == Fichier de configuration utilisateur (fichier RC) ==[rc]
  713. Le fichier de configuration utilisateur (appelé aussi fichier RC) est le
  714. lieu de stockage des réglages qui vont être gérés pour **tous**
  715. les fichiers convertis. Si vous insérez les mêmes réglages pour tous
  716. les fichiers .t2t que vous écrivez, déplacez les dans le fichier RC, ils
  717. seront utilisés globalement pour les fichiers existants et à venir.
  718. L'emplacement par défaut de ce fichier dépend de votre système. Il peut
  719. aussi être spécifié par l'utilisateur, en utilisant une variable
  720. d'environnement.
  721. || | localisation du fichier RC |
  722. | Windows : | ``%HOMEPATH%\_t2trc``
  723. | Linux et autres : | ``$HOME/.txt2tagsrc``
  724. | défini par l'utilisateur : | variable d'environnement ``T2TCONFIG``
  725. Le format des réglages est exactement le même que celui utilisé dans
  726. la zone CONFIGURATION des fichiers .t2t. Il y a un exemple de fichier RC
  727. dans l'archive compressée à l'emplacement ``doc/txt2tagsrc``. Exemple:
  728. ```
  729. % ma config
  730. %%% utiliser un fichier CSS pour le HTML
  731. %!options(html): --css-sugar
  732. %%% changer la profondeur de la table des matières à 4 pour toutes les cibles
  733. %!options: --toc-level 4
  734. %%% encodage par défaut pour tous les documents
  735. %!options: --encoding iso-8859-1
  736. ```
  737. Toute ligne non vide, un commentaire ou une ligne de configuration valide
  738. va générer une erreur à l'exécution de txt2tags. Donc soyez attentif
  739. quand vous éditez ce fichier.
  740. Txt2tags applique automatiquement le fichier RC à tout fichier qu'il
  741. convertit. Si vous voulez désactiver ce comportement pour un fichier
  742. spécifique, utilisez l'option ``--no-rc`` en option dans la ligne de
  743. commande.
  744. == Ordre de chargement des configuration et précédence ==[config-loading]
  745. Il y a trois moyens pour préciser à txt2tags les options et les
  746. réglages à utiliser. Ceci est l'ordre dans lequel ils sont lus et
  747. appliqués :
  748. + Le fichier de configuration utilisateur (RC)
  749. + La zone CONFIGURATION dans le document source
  750. + Les options de la ligne de commande
  751. En premier txt2tags lit le contenu du fichier RC s'il existe et applique
  752. contenu sur le fichier source. Puis il scrute la zone CONFIGURATION du
  753. fichier source courant si elle existe et l'applique en surchargeant les
  754. règles du fichier RC en cas de conflit. En dernier, il applique les
  755. options de la ligne de commande qui ont toujours priorité.
  756. Ainsi, si l'encodage est défini dans les trois sources, ce sera l'option
  757. de la ligne de commande qui sera utilisée.
  758. -----------------------------------------------------------------------
  759. == commande %!include ==[include]
  760. La commande ``include`` est utilisée pour inclure un fichier externe
  761. dans le corps du document source courant. Ce n'est pas une
  762. configuration mais une commande qui est valide dans le CORPS du document.
  763. La commande ``include`` est pratique pour découper un gros document en
  764. d'autres plus petits (comme les chapitres d'un livre) ou pour inclure le
  765. contenu complet d'un fichier externe dans le document source. Exemple :
  766. ```
  767. Mon premier livre
  768. Dr. John Doe
  769. 1ere Édition
  770. %!include: intro.t2t
  771. %!include: chapter1.t2t
  772. %!include: chapter2.t2t
  773. ...
  774. %!include: chapter9.t2t
  775. %!include: ending.t2t
  776. ```
  777. Indiquez juste le nom du fichier après la chaîne ``%!include``. Les
  778. spécification optionnelles de la cible sont supportées. La commande suivante est valide :
  779. ``` %!include(html): file.t2t
  780. Notez que la commande include insère le CORPS dans le fichier source du
  781. document. Les zones ENTETE et CONFIGURATION sont ignorées. Cela permet
  782. de convertir le fichier inclus séparément ou avec le document principal.
  783. Il y a 3 variantes de la commande include :
  784. - inclusion Verbatim
  785. - inclusion tel-quel (brut)
  786. - inclusion marquée
  787. Le type **verbatim** inclut le fichier texte en préservant le format et
  788. les espaces du fichier original comme s'il était marqué par VERB(```).
  789. Pour cela encadrer le nom de fichier avec des apostrophes inverses :
  790. ``` %!include: ``/etc/fstab``
  791. Le type **tel-quel** inclut un fichier texte tel quel, ne cherchant pas les
  792. marques txt2tags et **ne les interprétant pas**, comme s'il était marqué par
  793. RAW ("""). Pour cela encadrer le nom de fichier par des apostrophes
  794. doubles comme :
  795. ``` %!include: ""nice_text.txt""
  796. Le type **marqué** est envoyé directement dans le fichier résultat, sans
  797. aucun traitement effectué par txt2tags. Par ce moyen vous pouvez inclure
  798. des parties marquées ou du code avec des marques de sortie plus complexes
  799. non supportées par txt2tags :
  800. ``` %!include(html): ''footer.html''
  801. Notez que le fichier est encadré par des apostrophes, et comme le texte
  802. est inclus déjà marqué vous devez spécifier la cible pour
  803. éviter les erreurs.
  804. -----------------------------------------------------------------------
  805. == commande %!includeconf ==[includeconf]
  806. La commande ``includeconf`` est utilisée pour inclure la configuration
  807. d'un fichier externe dans le fichier courant. Cette commande n'est
  808. valide que dans la zone CONFIGURATION.
  809. C'est pratique pour avoir la même configuration pour de multiples
  810. fichiers, vous pouvez en centraliser la gestion. Dans le fichier où vous
  811. voulez inclure cette configuration globale, mettez un appel
  812. ``includeconf``. Par exemple :
  813. ```
  814. Mon premier Document
  815. John Doe
  816. Juillet 2004
  817. %!includeconf: config.t2t
  818. Hi, ceci est mon premier document
  819. ```
  820. Le format dans le fichier inclus est le même que dans le
  821. [fichier RC #rc].
  822. =======================================================================
  823. = Cinquième partie - maîtriser les marques =[marks]
  824. Synthèse de toutes les marques txt2tags :
  825. || Basic | ``...............`` | modificateurs | ``...............`` |
  826. | //Entête// | 3 premières lignes | //gras// | ""**mots**""
  827. | //Titre// | = mots = | //Italique// | ""//mots//""
  828. | //2cwtitre numéroté// | + mots + | //souligné// | ""__mots""
  829. | //Paragraphe// | mots | //fonte non proportionnelle// | ""``mots``""
  830. || blocs de texte | ``...............`` | autre | ``...............`` |
  831. | //Quote// | <TAB>mots | //ligne de séparation// | ------------...
  832. | //Liste// | - mots | //ligne épaisse// | ============...
  833. | //liste numérotée// | + mots | //liens// | ""[label url]""
  834. | //liste de définition// | : mots | //Image// | ""[filename.jpg]""
  835. | //ligne Verbatim// | ``` mots | //Commentaire// | % commentaire
  836. | //zone Verbatim// | ""```\n lignes \n```"" | //texte brut// | """"mots""""
  837. | //ligne tel-quel(raw)// | """"""" mots | //Table// | ""| cell1 | cell2 | cell3...""
  838. | //zone tel-quel (Raw)// | """""""\n lignes \n""""""" | //Ancre// | = titre =[ancre]
  839. Règles générales :
  840. - **Entêtes** Ce sont les 3 premières lignes du document, les marques ne sont pas interprétées.
  841. - **Titres** ce sont des caractères "=" ou "+" équilibrés autour du
  842. texte du titre. Plus il y a de caractères, plus le niveau du titre est
  843. important.
  844. - les **modificateurs** n'acceptent pas d'espace entre les marques et leur
  845. contenu.
  846. - les marques de **commentaire** "%" doivent être au début de la ligne
  847. (première colonne).
  848. - les fichiers **Image** doivent se terminer par GIF, JPG, PNG ou
  849. similaire.
  850. - Les seules marques **multiligne** sont les marques des zones Verbatim
  851. et tel-quel (brut).
  852. - **Aucune marque n'est interprétée** dans les zones Verbatim et
  853. tel-quel (brut).
  854. - Les **lignes séparatrices** doivent avoir au moins 20 caractères.
  855. - La profondeur des citations et les listes est définie par
  856. **l'indentation**.
  857. - Les **titres de table** sont définis par deux "||" au début de la
  858. ligne.
  859. ------------------------------------------------------------------------
  860. %- MARKPROP Multiline, FreeSpaces, Align, Nesting
  861. %- MARKCONT Macros, Beautifiers, Quote, Lists, Table, Verbatim, Raw, Bars, Links, Image, Comment
  862. %-----------------------------------------------------------------------
  863. == Entête ==[mark-headers]
  864. - MARKDESC Identifie l'entête du document
  865. - MARKPROP Multiline, FreeSpaces, !Align, !Nesting
  866. - MARKCONT Macros
  867. - MARKSYN
  868. - Les 3 premières lignes du fichier source.
  869. - Pour ne pas spécifier d'entête laisser la première ligne vide
  870. Pratique pour les entêtes particulières et les spécialistes
  871. "oneliners" en ligne de commande
  872. - Laisser les deuxième et troisième lignes vides pour éliminer les
  873. autres parties de l'entête.
  874. - MARKDET
  875. - NOMARKS
  876. - les 3 lignes doivent être les trois premières du document final,
  877. elles vont être mises en valeur par rapport au corps du document
  878. et isolées sur la première page (si la pagination est autorisée).
  879. - Le contenu des entêtes est quelconque, sans aucune obligation de
  880. format, mais le contenu recommandé pour la plupart des documents est :
  881. - Ligne 1: Titre du document
  882. - Ligne 2: Nom de l'auteur et/ou email
  883. - Ligne 3: Date du document et/ou version (le bon endroit pour ""%%mtime"")
  884. ------------------------------------------------------------------------
  885. == Titre, titre numéroté ==[mark-title]
  886. - MARKDESC Identifie un titre de section (numéroté ou non)
  887. - MARKPROP !Multiline, FreeSpaces, !Align, !Nesting
  888. - MARKCONT Raw
  889. - MARKSYN
  890. - Pour des titres numérotés changez "=" par "+" sur les règles
  891. suivantes
  892. - des signes équilibrés autour ``=comme ceci=``
  893. - Plus il y a de signes, plus le niveau est élevé : ``=titre=``,
  894. ``==soustitre==``,
  895. ``===soussoustitre===``, ...
  896. - Il y a a un maximum de 5 niveaux ``===== comme ceci =====``
  897. - Des signes non équilibrés ne font pas un titre , ``=comme ceci===``
  898. - Des espaces libres dans les marques ne sont pas
  899. autorisés ``= comme ceci =``
  900. - Les titres peuvent avoir des ancres ``=comme ceci=[ancre]``. Pour
  901. créer une ancre créez un ``[lien local#ancre]``
  902. - MARKDET
  903. - NOMARKS
  904. - NOMACRO
  905. ------------------------------------------------------------------------
  906. == Paragraphe ==[mark-paragraph]
  907. - MARKDESC Identifie un paragraphe de texte
  908. - MARKPROP Multiline, FreeSpaces, !Align, !Nesting
  909. - MARKCONT Macros, Beautifiers, Raw, Links, Image, Comment
  910. - MARKSYN
  911. - Les paragraphes sont des groupes de lignes délimités par des lignes
  912. vides
  913. - D'autres blocs comme les listes, les citations, les tables et les
  914. zones verbatim terminent aussi un paragraphe.
  915. ------------------------------------------------------------------------
  916. == Commentaire ==[mark-comment]
  917. - MARKDESC Utilisé pour insérer du texte qui n'apparaîtra pas dans le
  918. document cible
  919. - MARKPROP !Multiline, !<FreeSpaces, !Align, !Nesting
  920. - MARKCONT -
  921. - MARKSYN
  922. - Un ligne avec le caractère "%" en première colonne ``% comme ceci``
  923. - PAS d'espace devant
  924. - MARKDET
  925. - Comme les commentaires, ils ne sont pas montrés dans le texte
  926. converti
  927. - Ce n'est pas un bloc : chaque ligne de commentaire doit commencer
  928. par "%"
  929. - Pratiques pour les TODO, rappels FIXME et les notes de l'éditeur
  930. ------------------------------------------------------------------------
  931. == Gras, italique et souligné ==[mark-beautifiers]
  932. - MARKDESC Utilisé pour insérer du texte gras/italique/souligné dans un
  933. paragraphe, une table, une liste ou une citation
  934. - MARKPROP !Multiline, !FreeSpaces, !Align, Nesting
  935. - MARKCONT Macros, Beautifiers, Raw, Links, Image
  936. - MARKSYN
  937. - Deux étoiles autour pour le gras ``**comme ceci**``
  938. - Deux barres autour pour l'italique ``//comme ceci//``
  939. - Deux signes soulignés pour le souligné ``__comme ceci__``
  940. - Les marques doivent collées au contenu (pas d'espace) ``** ceci ** est invalide``
  941. - MARKDET
  942. - Tous les modificateurs de texte doivent être sur une seule ligne du
  943. fichier source, il ne doit pas y avoir de coupure de ligne
  944. - Les macros dont autorisées à l'intérieur : ``**%%date**``
  945. - Vous pouvez mixer les modificateurs à l'intérieur ``""**__comme__ //ceci//**""``
  946. ------------------------------------------------------------------------
  947. == fonte non proportionnelle ==[mark-monospaced]
  948. - MARKDESC Utilisé pour mettre un texte en fonte non proportionnelle
  949. dans un paragraphe, un table, une liste ou une citation.
  950. - MARKPROP !Multiline, !FreeSpaces, !Align, !Nesting
  951. - MARKCONT -
  952. - MARKSYN
  953. - Deux apostrophes inverses ````comme ceci````
  954. - Les marques doivent être collées au contenu (pas d'espace)
  955. ```` ceci `` est invalide``
  956. - MARKDET
  957. - NOMARKS
  958. - NOMACRO
  959. - Tout le texte en fonte non proportionnelle doit être sur une seule ligne, pas de
  960. coupure de ligne dans le contenu
  961. - Dans quelques cibles les espaces internes sont maintenus, dans
  962. d'autres les espaces multiples sont remplacés par un seul.
  963. - Vous pouvez créer un texte gras en fonte non proportionnelle en l'insérant dans
  964. les marques de gras :
  965. ``""**``gras non proportionnel``**""``. La même chose pour les autres modificateurs
  966. comme ``""//``italique``//""`` et ``""__``souligné``__""``.
  967. ---------------------------------------------------------------------
  968. == ligne et zone Verbatim ==[mark-verbatim]
  969. - MARKDESC Utilisé pour insérer du code programme ou autre texte
  970. pré-formatté, préservant les espaces et les sauts de ligne et en
  971. utilisant une fonte non proportionnelle
  972. - MARKPROP Multiline, !FreeSpaces, !Align, !Nesting
  973. - MARKCONT -
  974. - MARKSYN **ligne Verbatim :**
  975. - Une ligne commençant avec exactement 3 apostrophes inverses suivis d'un espace,
  976. et suivi du texte ``""```"" comme ceci``
  977. - Les apostrophes inverses doivent être en première colonne, sans
  978. espace devant
  979. - MARKSYN **Zone Verbatim :**
  980. - Une ligne commençant avec exactement 3 apostrophes inverses
  981. ``````` suivie par les lignes de texte, suivis d'une autre ligne
  982. avec exactement 3 apostrophes inverses ```````
  983. - **AUCUN** espace n'est autorisé avant et après les marques
  984. - MARKDET
  985. - NOMARKS
  986. - NOMACRO
  987. - Si on atteint la fin du fichier (EOF), la zone verbatim est
  988. terminée
  989. ---------------------------------------------------------------------
  990. == Ligne de séparation, ligne épaisse ==[mark-separator]
  991. - MARKDESC identifie une ligne de séparation ou une ligne épaisse
  992. - MARKPROP !Multiline, FreeSpaces, !Align, !Nesting
  993. - MARKCONT -
  994. - MARKSYN
  995. - La ligne de séparation peut être composée de tirets "-" ou
  996. de caractères soulignés "_"
  997. - La ligne épaisse est composée par des signes égal "="
  998. - Il faut au moins 20 tirets/soulignés/égal
  999. - Des espaces optionnels peuvent être mis en début ou en fin de ligne
  1000. - Tout autre caractère sur la ligne invalide la marque
  1001. - MARKDET
  1002. - Si la cible n'admet pas de ligne de séparation, une ligne de
  1003. commentaire la remplace
  1004. - La ligne épaisse peut avoir une traduction différente sur certaines
  1005. cibles :
  1006. - Une ligne de séparation plus épaisse
  1007. - Une pause dans les formats de présentation comme Magic Point
  1008. - Une coupure de page pour les cibles avec pagination comme LaTeX
  1009. ---------------------------------------------------------------------
  1010. == Liens, liens nommés ==[mark-link]
  1011. - MARKDESC identifie une lien distant (internet) ou local
  1012. - MARKPROP !Multiline, !FreeSpaces, !Align, !Nesting
  1013. - MARKCONT Macros, Raw, Image
  1014. - MARKSYN
  1015. - Toute adresse internet valide URL, ftp, news ou adresse email est
  1016. détectée et une adresse est convertie automatiquement
  1017. - Le protocole (http, https, ftp) est optionnel ``www.comme-ceci.com``
  1018. - Un nom peut être utilisé pour un lien : ``[cliquer ici www.url.com]``
  1019. - Une image peut pointer sur un lien : ``[[image.jpg] www.url.com]``
  1020. - Les macros sont autorisées dans les adresses de lien : ``[voir source %%infile]``
  1021. - Les macros sont autorisées dans le nom du lien : ``[mirror of %%outfile www.url.com]``
  1022. % - Beautifiers are allowed on the link name: ``[**click** here www.url.com]``
  1023. - Le lien doit être spécifié sur une seule ligne, sans
  1024. coupure de ligne
  1025. - MARKDET
  1026. - Si la cible n'a pas de support de liens elle sera soulignée
  1027. ---------------------------------------------------------------------
  1028. == Quote ==[mark-quote]
  1029. - MARKDESC identifie une ligne citation indentée
  1030. - MARKPROP Multiline, !FreeSpaces, !Align, Nesting
  1031. - MARKCONT Macros, Beautifiers, Quote, Raw, Bars, Links, Image, Comment
  1032. - MARKSYN
  1033. - Une ligne qui commence par une tabulation (TAB)
  1034. - Plus il y a de tabulation plus la profondeur est grande
  1035. - Les citations ne sont pas autorisées dans les listes et les tables
  1036. - MARKDET
  1037. - Si la fin du fichier est atteinte (EOF), la citation ouverte est
  1038. terminée
  1039. - Certaines cibles ne supportent pas différents niveaux de citation, alors les
  1040. "sous-citations" sont transformées au niveau supérieur
  1041. - Il n'y a pas de limitation pour la profondeur. Mais certaines cibles
  1042. peuvent avoir des restrictions, les sous-citations sont mises au
  1043. niveau supérieur
  1044. --------------------------------------------------------------------
  1045. == Listes, listes numérotées, listes de définition ==[mark-lists]
  1046. - MARKDESC identifie le début d'une liste d'items
  1047. - MARKPROP Multiline, !FreeSpaces, !Align, Nesting
  1048. - MARKCONT Macros, Beautifiers, Lists, Table, Verbatim, Raw, Bars, Links, Image, Comment
  1049. - MARKSYN
  1050. - Une ligne commence par un tiret/plus/deux points suivi d'un seul
  1051. espace
  1052. - le premier caractère de la liste ne peut PAS être un espace (sauf
  1053. dans les listes de définition)
  1054. - Des espaces (pas des TAB) en début de ligne définissent la
  1055. profondeur de l'indentation
  1056. - Les sous-listes se terminent par une sous-liste de moindre
  1057. profondeur ou avec un item vide
  1058. - Toutes les listes ouvertes sont fermées par deux lignes blanches
  1059. consécutives
  1060. - MARKDET
  1061. - Si la fin de fichier est atteinte (EOF), toutes les listes ouvertes
  1062. sont terminées
  1063. - Les listes peuvent être mixées, comme une liste de définition dans
  1064. une liste numérotée
  1065. - Quelques cibles n'admettent pas les imbrications de listes, les items des
  1066. sous-listes sont transformées dans le niveau supérieur
  1067. - Il n'y a pas de limite pour la profondeur des listes. Mais certaines
  1068. cibles ont des restrictions, les sous-listes de niveau inférieur sont
  1069. alors remontées
  1070. ---------------------------------------------------------------------
  1071. == Image ==[mark-image]
  1072. - MARKDESC Identifie une image
  1073. - MARKPROP !Multiline, !FreeSpaces, Align, !Nesting
  1074. - MARKCONT Macros
  1075. - MARKSYN
  1076. - Un nom de fichier image encadré entre deux crochets, ``[comme_ceci.jpg]``
  1077. - Le fichier doit se terminer par une extension comme PNG, JPG, GIF,
  1078. ... (la casse est indifférente)
  1079. - les symboles ne sont pas autorisés dans le nom de fichier
  1080. ``[comme_ceci!~1.jpg]``
  1081. - Les macros sont autorisées dans le nom de fichier ``[report-%%date(%Y-%m-%d).png]``
  1082. - PAS d'espace dans le nom de fichier ``[comme ceci.jpg]``
  1083. - PAS d'espace entre le crochet et le nom de fichier ``[ comme-ceci.jpg ]``
  1084. - MARKDET
  1085. - Si la cible n'a pas de support d'image, le nom de fichier est entre
  1086. (parenthèses)
  1087. - La position des marques indique l'alignement de l'image :
  1088. - ``[GAUCHE.jpg]`` blablablabla
  1089. - blablablabla ``[CENTRE.jpg]`` blablablabla
  1090. - blablablabla ``[DROITE.jpg]``
  1091. ---------------------------------------------------------------------
  1092. == Tableau ==[mark-table]
  1093. - MARKDESC Délimite une ligne d'un tableau avec n'importe quel nombre de
  1094. colonnes
  1095. - MARKPROP Multiline, FreeSpaces, Align, !Nesting
  1096. - MARKCONT Macros, Beautifiers, Raw, Links, Image, Comment
  1097. - MARKSYN
  1098. - Une barre verticale "|" identifie la ligne d'un tableau
  1099. - Deux lignes verticales au début de la ligne "||" identifient la ligne de titre d'un
  1100. tableau
  1101. - les espaces avant le première barre verticale personnalisent le
  1102. centrage de ta table
  1103. - Les champs sont séparés par la chaîne " | " (espace barre-verticale espace)
  1104. - Une barre verticale "|" à la fin de la première ligne du tableau rend les
  1105. bordures visibles
  1106. - La barre verticale "|" à la fin des autres colonnes de la table est ignoré
  1107. - Les espaces dans chaque cellule spécifient leur alignement
  1108. - Exemple: ``| ligne | de tableau | à | cinq | colonnes |``
  1109. - MARKDET
  1110. - Chaque ligne du tableau doit être sur une seule ligne du fichier
  1111. source, sans saut de ligne
  1112. - Les cibles avec alignement par colonne (comme sgml et LaTeX),
  1113. utilisent l'alignement de la première ligne comme référence
  1114. - Toute ligne "non table" la termine, sauf les lignes de commentaire
  1115. - Le nombre de cellules est flexible, chaque ligne peut avoir un
  1116. nombre différent de cellules
  1117. - il n'y a pas de moyen de spécifier la largeur d'une colonne ou d'une
  1118. rangée
  1119. - Si la cible n'admet pas les tableaux, les lignes de la table sont
  1120. considérés comme une zone Verbatim
  1121. ---------------------------------------------------------------------
  1122. == caractères, lignes et zones tel-quel (brut) ==[mark-raw]
  1123. - MARKDESC Utilisée pour "protéger" du texte du fichier source, pour que
  1124. les marques et les macros ne soient pas traitées.
  1125. - MARKPROP !Multiline, !FreeSpaces, !Align, !Nesting
  1126. - MARKCONT -
  1127. - MARKSYN **caractères tel-quel :**
  1128. - trois apostrophes doubles autour ``""""comme ceci""""``
  1129. - Les marques sont collées au contenu (pas d'espace entre les marques
  1130. et le contenu)
  1131. - MARKSYN **ligne tel-quel :**
  1132. - Une ligne commençant par trois apostrophes doubles ``""" comme ceci``
  1133. - La marque doit être au début de la ligne en première colonne
  1134. - Utiliser un espace après les doubles apostrophes pour les séparer
  1135. du texte.
  1136. - MARKSYN **zone tel-quel :**
  1137. - Une ligne avec exactement 3 doubles apostrophes suivis de la ligne de
  1138. texte, suivi d'exactement 3 doubles apostrophe
  1139. - PAS d'espace avant et après les marques
  1140. - MARKDET
  1141. - NOMARKS
  1142. - NOMACRO
  1143. - Si la fin du fichier (EOF) est atteinte la zone tel-quel (brut) est fermée.
  1144. =======================================================================
  1145. = Sixième partie - maîtriser les macros =[macros]
  1146. Les macros sont des mots clés spécifiques qui sont développées au moment
  1147. de la conversion. Elles sont utilisées pour insérer des informations
  1148. dynamiques comme la date ou des informations sur les documents source et
  1149. converti.
  1150. Une macro est constituée par les caractères ``%%`` suivis par son nom
  1151. comme dans ``%%date``. Quelques macros acceptent une chaîne de formatage
  1152. entre parenthèses juste après le nom de la macro comme
  1153. ``%%date(%Y-%m-%d)``. Cette chaîne de formatage inclut du texte classique
  1154. avec des directives identifiées par le signe % suivi d'un caractère
  1155. d'identification. Si aucune chaîne de formatage n'est fournie, le format
  1156. par défaut est utilisé.
  1157. || Nom de la macro | Produit ... | Format par défaut |
  1158. | ""%%date"" | la date courante | %Y%m%d
  1159. | ""%%mtime"" | la date de modification du fichier source | %Y%m%d
  1160. | ""%%infile"" | le chemin du fichier source | %f
  1161. | ""%%outfile"" | le chemin du fichier de sortie | %f
  1162. | ""%%toc"" | la table des matières du document(TOC) | -
  1163. Règles générales :
  1164. - le nom de la macro est insensible à la casse : ``%%date``, ``%%DaTe`` et ``%%DATE`` sont identiques
  1165. - le macros sont valides dans la zone ENTETE et la zone CORPS sauf
  1166. ``%%toc`` valide seulement dans la zone CORPS
  1167. - Une macro démarre la zone CORPS si elle est trouvée dans la zone
  1168. CONFIGURATION
  1169. - Une macro peut être n'importe où dans la ligne (sauf la macro
  1170. ``%%toc`` qui doit être seule sur une ligne)
  1171. - Une macro peut être utilisée dans les liens et les marques d'image
  1172. (sauf ``%%toc``)
  1173. - Les macros ne sont pas traitées dans les titres, le verbatim et
  1174. le texte brut
  1175. Exemple complet ( les zones en gras montrent les macros développées) :
  1176. Ceci est le manuel utilisateur de txt2tags, converti en
  1177. **%%outfile(%e)** par txt2tags à partir du fichier source **%%infile**.
  1178. La conversion a été faite le **%%date(%Y-%m-%d %X)**, mais la dernière
  1179. modification dans le document source a été faite le **%%mtime(%Y-%m-%d %X)**.
  1180. Les fichiers source et résultats sont dans le répertoire
  1181. **%%infile(%D)**.
  1182. -----------------------------------------------------------------------
  1183. == %%date ==[macro-date]
  1184. La macro ``%%date`` produit la date et l'heure courante. C'est très
  1185. pratique pour les entêtes et les pieds de document, pour indiquer quand
  1186. le document a été généré. Pour développer la dernière date de
  1187. modification voir la [macro ""%%mtime"" #macro-mtime].
  1188. Cette macro accepte un certain nombre de directives de formatage. La liste
  1189. complète peut être consultée sur le
  1190. [site Python http://www.python.org/doc/current/lib/module-time.html].
  1191. Voici les plus couramment utilisées :
  1192. || Directive | Description |
  1193. | %a | jour de la semaine en abrégé d'après la locale
  1194. | %A | jour de la semaine d'après la locale
  1195. | %b | nom du mois en abrégé d'après la locale
  1196. | %B | nom du mois d'après la locale
  1197. | %c | jour et heure d'après la locale
  1198. | %d | jour du mois en chiffre [01,31]
  1199. | %H | heure (24-heures) en chiffre [00,23]
  1200. | %I | heure (12-heures) en chiffre [01,12]
  1201. | %m | mois en chiffre [01,12].
  1202. | %M | Minute en chiffre [00,59].
  1203. | %p | équivalent d'après la locale de AM/PM
  1204. | %S | iseconde en chiffre [00,61]. (1)
  1205. | %x | représentation de la date d'après la locale
  1206. | %X | représentation de l'heure d'après la locale
  1207. | %y | année sans les siècles en chiffre [00,99].
  1208. | %Y | année complète avec les siècles en chiffre
  1209. | %% | caractère "%"
  1210. Exemples:
  1211. || Macro | --> | Résultats pour la date %%date(%Y, %b %d at %H:%M) |
  1212. | ""%%date(Converti le: %c)"" | --> | %%date(Converti le : %c)
  1213. | ""%%date(%Y-%m-%d)"" | --> | %%date(%Y-%m-%d)
  1214. | ""%%date(%I:%M %p)"" | --> | %%date(%I:%M %p)
  1215. | ""%%date(Aujourd'hui est le %A, du mois %B.)"" | --> | %%date(Aujourd'hui est le %A, du mois %B.)
  1216. -----------------------------------------------------------------------
  1217. == %%mtime ==[macro-mtime]
  1218. La macro ``%%mtime`` produit la date de dernière modification
  1219. du fichier source. C'est utile pour noter quand le fichier a été changé
  1220. la dernière fois. Cette macro est la "soeur" de la [macro ""%%date"" #macro-date],
  1221. et accepte les mêmes chaînes de formatage.
  1222. Comme exemple : ce guide utilisateur a été édité la dernière fois le
  1223. **%%mtime(%c)**. Cette date est développée à partir de ``%%mtime(%c)``.
  1224. -----------------------------------------------------------------------
  1225. == %%infile ==[macro-infile]
  1226. La macro ``%%infile`` produit le chemin du fichier source dans le
  1227. système. C'est utile pour dire "//voir le source de ce fichier//" sur
  1228. les liens des pages HTML. Donner cette information est une attitude
  1229. aimable avec les débutants, pour qu'ils puissent utiliser votre source
  1230. comme exemple pour leurs propres pages.
  1231. Cette macro accepte les chaînes de formatage suivantes :
  1232. || %<caractère> | Description | Sortie pour ce manuel utilisateur |
  1233. | %f | nom du fichier | %%infile(%f)
  1234. | %F | nom du fichier (sans extension) | %%infile(%F)
  1235. | %e | extension du fichier | %%infile(%e)
  1236. | %p | chemin absolu du fichier | %%infile(%p)
  1237. | %d | chemin du fichier (répertoire seulement) | %%infile(%d)
  1238. | %D | chemin du fichier (répertoire parent seulement) | %%infile(%D)
  1239. | %% | caractère "%" seul | %%infile(%%)
  1240. Exemples:
  1241. || Source | --> | Développement |
  1242. | Ce guide est dans le répertoire ""%%infile(%D)"". | --> | Ce guide est dans le répertoire %%infile(%D). |
  1243. | j'utilise l'extension ""%%infile(%e)"" | --> | j'utilise l'extension %%infile(%e) |
  1244. | ""[voir le source %%infile]"" | --> | [voir le source %%infile]
  1245. | Convertit en XHTML, cela donne ""%%infile(%F)"".xhtml | --> | Convertit en XHTML, cela donne %%infile(%F).xhtml
  1246. Note: La macro et développée en "-" si la source vient de STDIN
  1247. -----------------------------------------------------------------------
  1248. == %%outfile ==[macro-outfile]
  1249. La macro ``%%outfile`` produit le nom du fichier converti dans
  1250. le système. C'est pratique dans les zones CORPS et ENTETE. Cette macro
  1251. est une "soeur" de la [macro ""%%infile"" #macro-infile] et accepte les
  1252. mêmes chaînes de formatage.
  1253. Exemples:
  1254. || Source | --> | Développement |
  1255. | vous lisez le fichier ""%%outfile"" | --> | vous lisez le fichier %%outfile
  1256. | txt2tags -t ""%%outfile(%e)"" -i ""%%infile"" -o ""%%outfile"" | --> | txt2tags -t %%outfile(%e) -i %%infile -o %%outfile
  1257. Note: La macro et développée en "-" si la sortie est STDOUT
  1258. -----------------------------------------------------------------------
  1259. == %%toc ==[macro-toc]
  1260. La macro ``%%toc`` produit la table des matières du document.
  1261. C'est pratique pour indiquer où vous voulez l'insérer. Vous pouvez
  1262. l'utiliser plusieurs fois et la placer à la fin du document. Ce guide
  1263. utilise ""%%toc"" pour positionner la table des matières.
  1264. Différente des autres macros, cette macro n'accepte pas de chaîne de
  1265. format et a ses propres règles :
  1266. - n'est valide que dans le CORPS du document
  1267. - doit être seule sur la ligne (des espaces avant et après sont
  1268. autorisés)
  1269. - doit être utilisée avec l'option en ligne de commande --toc sinon elle
  1270. sera ignorée
  1271. - le positionnement et le format par défaut sont désactivés quand la
  1272. macro %%toc est trouvée
  1273. =======================================================================
  1274. = Septième partie - maîtriser les réglages =[settings]
  1275. Ces réglages sont des réglages spéciaux placés dans la zone
  1276. CONFIGURATION du document source qui modifient le comportement de la
  1277. conversion. Ces réglages sont tous optionnels. Les utilisateurs moyens
  1278. peuvent les ignorer. Mais ils créent une dépendance, si vous commencez à
  1279. les utiliser, vous ne pourrez plus vous en passer.
  1280. Le lignes de réglage sont des //lignes de commentaire spéciales//
  1281. précédées d'une marque ("!") qui les rendent différents des commentaires
  1282. classiques. La syntaxe est aussi simple que le réglage des variables,
  1283. composés d'une clé et d'une valeur séparés par deux points (":").
  1284. || %! clé : valeur |
  1285. Détail de la syntaxe :
  1286. - le point d'exclamation doit être collé avec le caractère commentaire
  1287. sans espace ("%!")
  1288. - les espaces entre la clé et le séparateur (":") sont optionnels
  1289. - le mot clé et la valeur sont insensibles à la casse (pas de
  1290. distinction majuscule-minuscule)
  1291. Règles:
  1292. - Ces réglages ne sont valides que dans la zone CONFIGURATION et sont
  1293. pris comme des commentaires dans la zone CORPS du document
  1294. - Si la même clé apparaît plusieurs fois dans la zone CONFIGURATION, la
  1295. dernière occurrence sera celle utilisée. Exception : ``options, preproc et postproc`` sont cumulatifs.
  1296. - Une ligne de réglage avec une clé non valide est considérée comme du
  1297. commentaire
  1298. - ces réglages ont priorité sur le fichier RC mais pas sur les options
  1299. en ligne de commande
  1300. -----------------------------------------------------------------------
  1301. == %!Target ==[setting-target]
  1302. En utilisant le réglage ``target`` un format cible par défaut est défini
  1303. pour le document
  1304. ``` %!target: html
  1305. Ainsi il suffit de lancer la conversion par :
  1306. ``` $ txt2tags file.t2t
  1307. Et la conversion sera faite dans la cible spécifiée
  1308. Le réglage ``target`` ne supporte pas de spécification d'option de
  1309. cible. La déclaration ``%!target(tex): html`` n'a pas de sens ...
  1310. -----------------------------------------------------------------------
  1311. == %!Options ==[setting-options]
  1312. Écrire une longue ligne de commande avec plein d'options n'est pas
  1313. agréable et source d'erreur. Les réglages ``options`` permettent à
  1314. l'utilisateur de sauver les options de conversion dans le document
  1315. source. Cela garantit que le document source sera toujours converti de
  1316. façon identique avec les mêmes options.
  1317. Il suffit d'écrire les options sans erreur de syntaxe comme vous le
  1318. feriez dans la ligne de commande sans mettre l'appel du programme
  1319. txt2tags, la spécification de cible et le nom du fichier source.
  1320. Par exemple si vous tapez cette ligne de commande pour convertir votre
  1321. document :
  1322. ``` $ txt2tags -t html --toc --toc-level 2 --enum-title file.t2t
  1323. Vous vous simplifiez la vie en tapant dans la zone CONFIGURATION les
  1324. options suivantes dans le document source :
  1325. ```
  1326. %!target: html
  1327. %!options(html): --toc --toc-level 2 --enum-title
  1328. ```
  1329. Et en ligne de commande vous tapez "``txt2tags file.t2t``", et vous
  1330. pouvez lancer directement la conversion à partir de votre éditeur favori
  1331. par exemple pour vi :
  1332. ``` :!txt2tags %
  1333. -----------------------------------------------------------------------
  1334. == %!Encoding ==[setting-encoding]
  1335. Ce réglage est nécessaire aux non anglophones, qui utilisent
  1336. des caractères accentués ou d'autres détails spécifiques à la locale. Ainsi
  1337. l'encodage de la cible peut être personnalisé.
  1338. Les valeurs valides pour le réglage de l'encodage sont les mêmes que
  1339. pour les document HTML comme //iso-8859-1// et //koi8-r//. Si vous
  1340. n'êtes pas sur consultez
  1341. [cette adresse http://www.iana.org/assignments/character-sets].
  1342. La cible LaTeX utilise des noms d'alias pour l'encodage. Ce n'est pas
  1343. un problème pour l'utilisateur car txt2tags traduit les noms de façon
  1344. interne. Quelques exemples :
  1345. || txt2tags/HTML | > | LaTeX |
  1346. | windows-1250 | >>> | cp1250 |
  1347. | windows-1252 | >>> | cp1252 |
  1348. | ibm850 | >>> | cp850 |
  1349. | ibm852 | >>> | cp852 |
  1350. | iso-8859-1 | >>> | latin1 |
  1351. | iso-8859-2 | >>> | latin2 |
  1352. | koi8-r | >>> | koi8-r |
  1353. Si la valeur est inconnue elle est transmise telle quelle autorisant
  1354. à l'utilisateur des encodages spécifiques.
  1355. -----------------------------------------------------------------------
  1356. == %!PreProc ==[setting-preproc]
  1357. Le réglage PreProc est un filtre d'entrée utilisé sur le document
  1358. source. C'est une ressource "trouve et remplace" appliquée après que la
  1359. ligne a été lue du document source et avant d'êtres traitée par
  1360. txt2tags.
  1361. C'est utile pour définir des abréviations pour du texte tapé de façon
  1362. répétitive comme :
  1363. ```
  1364. %!preproc JJS "John J. Smith"
  1365. %!preproc RELEASE_DATE "2003-05-01"
  1366. %!preproc BULLET "[images/tiny/bullet_blue.png]"
  1367. ```
  1368. Ainsi l'utilisateur peut écrire une ligne comme :
  1369. ``` Bonjour, je suis JJB. Aujourd'hui nous sommes le RELEASE_DATE.
  1370. Et txt2tags va "voir" la ligne suivante :
  1371. ``` Bonjour, je suis John J. Smith. Aujourd'hui nous sommes le 2003-05-01.
  1372. Ce filtre agit entre l'auteur du document et la conversion txt2tags.
  1373. C'est une première conversion avant la "vraie" conversion. Il se
  1374. comporte comme un filtre Sed/Perl externe appelé de cette façon :
  1375. ``` $ cat file.t2t | preproc-script.sh | txt2tags -
  1376. Le traitement de txt2tags commencera après que les substitutions PreProc
  1377. aient été appliquées.
  1378. -----------------------------------------------------------------------
  1379. == %!PostProc ==[setting-postproc]
  1380. Le réglage PostProc est un filtre de sortie appliqué sur le document
  1381. converti. C'est une ressource "trouve et remplace" appliquée après le
  1382. traitement de txt2tags.
  1383. Il est utile pour faire quelques finitions sur le document de
  1384. sortie, changer des marques ou ajouter un texte particulier. Des
  1385. exemples :
  1386. ```
  1387. %!postproc(html): '<BODY.*?>' '<BODY BGCOLOR="green">'
  1388. %!postproc(tex) : "\\newpage" ""
  1389. ```
  1390. Ces filtres changent la couleur de fond des pages HTML et enlèvent les
  1391. sauts de page en LaTeX.
  1392. Les règles PostProc sont comme un filtre Sed/Perl externe appelé de
  1393. cette façon :
  1394. ``` $ txt2tags -t html -o- file.t2t | postproc-script.sh > file.html
  1395. Avant que cette fonctionnalité ne soit intégrée, il était courant d'avoir
  1396. des petits scripts pour ajuster le résultat de txt2tags.
  1397. Ces scripts étaient en fait des commandes ``sed``, pour faire des
  1398. remplacements.
  1399. Maintenant ces chaînes de remplacement peuvent être sauvées avec le
  1400. document source, et le plus est l'utilisation possible des expressions
  1401. régulières pour trouver les motifs.
  1402. -----------------------------------------------------------------------
  1403. == %!Style ==[setting-style]
  1404. - Utile pour les cibles HTML et XHTML, il définit un fichier CSS pour le
  1405. document résultat.
  1406. - utile pour la cible LaTeX pour charger des modules par
  1407. ``\usepackage``.
  1408. - le même résultat est obtenu par l'option en ligne de commande ``--style``.
  1409. - l'option --style est plus forte que le réglage %!style. Si les deux
  1410. sont utilisés l'option --style sera appliquée.
  1411. -----------------------------------------------------------------------
  1412. == Définir un réglage pour une cible spécifique ==[setting-specific]
  1413. Tous les réglages (sauf %!target) peuvent être liés avec une cible
  1414. spécifique en utilisant la syntaxe : ``%!clé(target): valeur``. De cette
  1415. façon vous pouvez définir plusieurs configurations pour différentes
  1416. cibles.
  1417. Cela est particulièrement utile pour les filtres pre/postproc, mais est
  1418. applicable à tous les réglages. Par exemple définir des styles
  1419. différents pour HTML et LaTeX :
  1420. ```
  1421. %!style(html): fancy.css
  1422. %!style(tex) : amssymb
  1423. ```
  1424. Cela est également utile pour ajuster les options sur le document converti :
  1425. ```
  1426. %!target: sgml
  1427. %!options(sgml): --toc
  1428. %!options(html): --style foo.css
  1429. %!options(txt ): --toc-only --toc-level 2
  1430. ```
  1431. Dans cet exemple, la cible par défaut est sgml et générera une table des
  1432. matières. Si on lance la commande : ``txt2tags -t html file.t2t`` seules
  1433. les options html seront utilisées, ainsi le fichier converti utilisera
  1434. la feuille de style "foo.css" et n'aura pas de table des matières.
  1435. -----------------------------------------------------------------------
  1436. == Détails sur les filtres PreProc et PostProc ==[filters-details]
  1437. - Les filtres sont des fonctions "trouve et remplace" (pensez Sed)
  1438. - les filtres ne sont pas "utilise le dernier trouvé", ils sont
  1439. cumulatifs. Vous pouvez définir sans limite autant de filtres que vous
  1440. avez besoin. Ils seront appliqués dans l'ordre dans lequel ils sont
  1441. définis.
  1442. - différents des autres réglages, les filtres spécifiques pour une cible
  1443. et ceux génériques sont appliqués. s'appliquant sur toutes les cibles.
  1444. Dans l'exemple suivant les deux filtres sont utilisés sur une cible HTML.
  1445. ```
  1446. %!postproc : this that
  1447. %!postproc(html): that other
  1448. ```
  1449. - Les filtres doivent avoir deux arguments
  1450. - les séquences spéciales comme ``\n`` (saut de ligne) et ``\t``
  1451. (tabulation) sont interprétés
  1452. - pour supprimer du texte utilisez une chaîne vide
  1453. ``` %!postproc: "chaîne non désirée" ""
  1454. - pour éviter les problèmes, spécifiez toujours la cible quand vous
  1455. utilisez PostProc pour changer les marques : ``%!PostProc(target): <ceci> <cela>``
  1456. - PreProc est appliqué avant que la ligne ait été lue et PostProc est
  1457. appliqué après que la conversion a été faite. Attention à l'UUOC (Useless Use Of Cat : utilisation inutile de cat) :
  1458. ``` $ cat file.t2t | preproc.sh | txt2tags | postproc.sh
  1459. - la première partie du filtre (la chaîne "cherche") n'est pas lue comme
  1460. une chaîne mais comme une expression régulière. Si vous ne savez pas
  1461. ce que c'est, ne vous en souciez pas, vous pouvez ne jamais en avoir
  1462. besoin. Mais gardez en mémoire que vous devez "échapper" des caractères
  1463. pour l'utiliser. Échapper veut dire faire précéder la caractère par "\".
  1464. En voici la liste :
  1465. ``` \* \+ \. \^ \$ \? \( \) \{ \[ \| \\
  1466. - les expressions régulières Python sont disponibles. Elles sont
  1467. identiques aux Perl Regexes (PCRE). Exemple: Changer les marques en
  1468. gras "<B>" et"</B>" en "STRONG" en HTML :
  1469. ``` %!postproc(html): '(</?)B>' '\1STRONG>'
  1470. - les arguments des filtres peuvent être passés de 3 façons :
  1471. + une simple chaîne comme FOO (sans espace)
  1472. + une chaîne avec des apostrophes doubles comme "FOO"
  1473. + une chaîne avec des apostrophes comme 'FOO'
  1474. - Si votre motif a des apostrophes doubles, protégez le avec des
  1475. apostrophes simples et vice-versa. Quelques exemples valides :
  1476. ```
  1477. %!postproc: PATT REPLACEMENT
  1478. %!postproc: "PATT" "REPLACEMENT"
  1479. %!postproc: 'PATT' 'REPLACEMENT'
  1480. %!postproc: PATT "REPLACEMENT"
  1481. %!postproc: "PATT" 'REPLACEMENT'
  1482. ```
  1483. =======================================================================
  1484. = Huitième partie - magie noire =[black-magic]
  1485. Ce chapitre n'est pas recommandé aux débutants. Il montre comment faire
  1486. des choses étranges avec les filtres txt2tags, en utilisant des
  1487. expressions régulières et des motifs complexes.
  1488. **ATTENTION** : les manipulations suivantes ne sont pas
  1489. encouragées et peuvent casser des choses. Un partie du texte de
  1490. sortie peut être perdu lors de la conversion, n'apparaissant pas dans le
  1491. document de sortie. N'utilisez ces trucs que si vous en avez réellement
  1492. besoin et que savez ce que vous faites.
  1493. || Les filtres sont une fonctionnalité puissante mais dangereuse |
  1494. || De mauvais filtres génèrent des résultats inattendus. |
  1495. SVP ne l'oubliez pas.
  1496. -----------------------------------------------------------------------
  1497. == Insérer plusieurs lignes avec %!PostProc (comme des règles CSS) ==[postproc-multiline]
  1498. Dans les filtres, le motif de remplacement peut inclure plusieurs lignes
  1499. en utilisant la chaîne de coupure de ligne ``\n``.
  1500. Elles peuvent être utiles pour inclure de courtes règles CSS dans une
  1501. cible HTML, supprimant le besoin d'un fichier supplémentaire.
  1502. ```
  1503. %!postproc: <HEAD> '<HEAD>\n<STYLE TYPE="text/css">\n</STYLE>'
  1504. %!postproc: (</STYLE>) 'body { margin:3em ;} \n\1'
  1505. %!postproc: (</STYLE>) 'a { text-decoration:none ;} \n\1'
  1506. %!postproc: (</STYLE>) 'pre,code { background-color:#ffffcc ;} \n\1'
  1507. %!postproc: (</STYLE>) 'th { background-color:yellow ;} \n\1'
  1508. ```
  1509. Tous ces filtres sont liés au premier, en remplaçant une chaîne qui a été
  1510. insérée. Ainsi un simple "<HEAD>" se change en :
  1511. ```
  1512. <HEAD>
  1513. <STYLE TYPE="text/css">
  1514. body { margin:3em ;}
  1515. a { text-decoration:none ;}
  1516. pre,code { background-color:#ffffcc ;}
  1517. th { background-color:yellow ;}
  1518. </STYLE>
  1519. ```
  1520. -----------------------------------------------------------------------
  1521. == créer un contenu spécifique à la cible avec %!PostProc ==[target-specific-contents]
  1522. Quelquefois vous devez inclure du texte dans une seule cible, mais pas
  1523. dans les autres. Ce comportement peut être obtenu en utilisant des astuces
  1524. de PreProc.
  1525. L'idée est d'inclure un texte spécial en commentaire dans le document
  1526. source, mais de le marquer de telle façon qu'un filtre spécifique à une
  1527. cible le décommente.
  1528. Par exemple si un paragraphe doit être ajouté uniquement dans la cible
  1529. HTML comme cela :
  1530. ```
  1531. %html% Cette page HTML est générée par [txt2tags http://txt2tags.org].
  1532. %html% voir le fichier texte source [ici source.t2t].
  1533. ```
  1534. Comme ces lignes commencent par ``%`` ce sont des lignes de commentaire
  1535. et seront ignorées. En ajoutant ce filtre :
  1536. ``` %preproc(html): '^%html% ' ''
  1537. La chaîne "%html% est supprimée et ces lignes deviennent visibles, n'étant plus
  1538. des commentaires. Comme une cible est spécifiée ce filtre ne sera actif
  1539. que pour générer du html.
  1540. -----------------------------------------------------------------------
  1541. == Changer les marques de txt2tags avec %!PreProc ==[creating-marks]
  1542. Si l'utilisateur est un spécialiste en expressions régulières, il peut
  1543. personnaliser la syntaxe du document source en changeant les marques par défaut en
  1544. quelque chose de plus "confortable".
  1545. Par exemple une tabulation en début de ligne est la marque de la
  1546. citation. Si cela ne plaît pas à l'utilisateur, ou que son éditeur a un comportement bizarre avec
  1547. les tabulations, il peut définir une nouvelle marque pour les citations.
  1548. Par exemple ">>>". Il ajoute ce simple filtre :
  1549. ``` %!PreProc: '>>> ' '\t'
  1550. Et dans le document source, la citation sera indiquée par :
  1551. ```
  1552. >>> Ceci est une citation.
  1553. >>> L'utilisateur a défini cette marque.
  1554. >>> Mais elles seront converties en tabulations par PreProc.
  1555. ```
  1556. Avant que la conversion ne commence, les marques ">>>" seront converties
  1557. en tabulations et txt2tags reconnaîtra le format de citation
  1558. **ATTENTION** : des règles PreProc peuvent changer toute la
  1559. syntaxe des marques, générant éventuellement des conflits entre les
  1560. marques. Soyez très attentif quand vous faites cela.
  1561. =======================================================================
  1562. The End.
  1563. [../../img/t2tpowered.png]