Rendez-vous sur Arrakiss
Le 08/10/2019 à 15:14 dans /Journal/2016/

Écrire efficacement, c'est possible avec txt2tags

Je suis actuellement en train d'écrire un ouvrage assez long. C'est l'occasion pour moi de redécouvrir txt2tags. Et bon sang, que c'est génial!

Il s'agit d'un langage markup. En gros, ce que vous écrivez n'est pas ce que vous obtenez à la fin, dans le même principe que markdown ou LaTeX qui produisent respectivement des pages web html ou des pdf de qualité. Par exemple, si vous écrivez ceci :

Il ne **faut pas** respirer de la compote : ça fait //tousser//

On obtient après conversion par le logiciel txt2tags ceci :

Il ne faut pas respirer de la compote : ça fait tousser.

Alors que je trouve markdown excellent, txt2tags le dépasse très largement à mon avis, et je pense avoir du mal à m'en passer désormais, et ce pour plusieurs raisons.

1. Tout d'abord, c'est un langage markup lisible. La preuve :

markdown              LaTeX                      txt2tags
**gras**            \textbf{gras}                **gras**
*italique*          \textit{italique}            //italique//

Ça facilite l'écriture et la correction. Imaginez retrouver une coquille dans un langage comme le LaTeX!

2. Il supporte des balises comme le souligné, le barré, les tableaux par défaut. On peut même faire des ancres dans le texte pour relier rapidement un mot à un paragraphe

Pour plus d'informations, lire [le paragraphe correspondant #superparagraphe].
[...]
===Le super paragraphe===[superparagraphe]

3. Il permet d'exporter son texte dans de multiples langages, comme le LaTex, le html, mais aussi dokuwiki et bien d'autres. Ça peut paraître idiot, mais un document que j'écris un jour pour une page html pourrait très bien prendre place plus tard dans un wiki, voire faire l'objet d'un document à imprimer (donc LaTeX). Je vous jure que alors qu'on pense ne pas avoir besoin de ce genre de choses, c'est lorsque ça s'impose qu'on regrette de ne pas l'avoir utilisé.

4. On peut inclure d'autres fichiers avec %!include: fichier.t2t

5. C'est très simple de rajouter des balises personnelles. Pour, par exemple, supporter les exposants et indices dans un document html, on met ceci au début du fichier txt2tags :

%!postproc(html):  \^\^(.*?)\^\^  <sup>\1</sup>
%!postproc(html):  ,,(.*?),,      <sub>\1</sub>

Ici, txt2tags va remplacer les "^^" et les ",," par les balises html appropriées après la conversion. Et on en arrive au truc le plus génial de txt2tags : les instructions pré-conversion.


6.
Imaginons que dans mon document, je fasse plusieurs fois référence à un ouvrage ou un site internet. À chaque fois que j'en parle, je devrais ajouter les balises qui vont bien :

Exemple en markdown
voici un nouveau site à lire absolument qui s'appelle [volted](http://volted.net/). On y trouve des informations sur OpenBSD, rédigées avec amour par sogal.
[..]
[..]
On remarque d'ailleurs que [volted](http://volted.net/) est propulsé par blogotext.

Eh bien avec txt2tags, ça ressemblerait à ça :

%! preproc: volted "[volted http://volted.net/]"
Exemple en txt2tags
voici un nouveau site à lire absolument qui s'appelle volted. On y trouve des informations sur OpenBSD, rédigées avec amour par sogal.
[..]
[..]
On remarque d'ailleurs que volted est propulsé par blogotext.

C'est vraiment génial. Si par exemple on veut faire un renvoi dans son texte plusieurs fois à un autre paragraphe, le preproc est parfait. On peut aussi l'utiliser pour remplacer rapidement plusieurs parties du texte identiques en ne modifiant qu'une seule ligne.

Si vous n'avez pas d'éditeur de texte sous la main, vous pouvez l'essayer ici.. Il y a même une bibliothèque php pour vos sites si vous voulez!
Un CMS ou un blog qui utiliserait ce langage serait vraiment une perle!