• [^] # Re: Troff

    Posté par . En réponse au journal Troff, l'enthousiasme. Évalué à 2. Dernière modification le 13 août 2014 à 22:27.

    oui, markdown est horriblement limité, et ses créateurs l'ont rapidement laissé en plan une fois l'avoir « inventé », si bien ce que l'on a eu ces versions « améliorées » et incompatibles entre elles. Pourtant une solution existait au lieu de faire un fork complet de markdown à chaque fois ("markdown extra", "markdown linuxfr", "markdown github"), cela aurait été d'indiquer dans l'entête d'un document donnés les modifications apportées à la syntaxe de base, forcément restreinte en possibilité. C'est bête personne n'y a pensé.

    C'est d'ailleurs ce que permet d'origine txt2tags, et cela plusieurs années avant l'invention de markdown :

    https://github.com/farvardin/whatistxt2tags

    Voir en particulier la partie « Markdown support », qui rajoute une grosse partie de la syntaxe markdown à txt2tags, pour ceux qui auraient leurs habitudes, et qui donne un avant-goût des possibilités d'extension du système.

    Le rajout markdown est rendu possible grâce à ces regex :

    %!preproc: '^# (.*?)$' '= 1円 ='
    %!preproc: '^## (.*?)$' '== 1円 =='
    %!preproc: '^### (.*?)$' '=== 1円 ==='
    %!preproc: '^#### (.*?)$' '==== 1円 ===='
    %!preproc: '^##### (.*?)$' '===== 1円 ====='
    %!preproc: '^\* (.*?)$' '- 1円'
    %!preproc: '^(\d+)\. (.*?)$' '+ 2円'
    %!preproc: '\[(.*?)\]\(\http://([^ ].*?)\)' '[1円 http://2円]'
    %!preproc: '^>' '\t'
    %!postvoodoo: '(.*?)\n=[=*]{2,}=' '<h1>1円</h1>'
    %!preproc: '-[-*]{18,}-' 'T2TBAR'
    %!preproc: '-[-*]{2,}' 'MDUNDERLINE'
    %!postproc: 'MDUNDERLINE' '------'
    %!postproc: 'T2TBAR' '<hr/>'
    %!postvoodoo: '(.*?)\n-[-*]{2,}-' '<h2>1円</h2>'
    

    C'est simple, efficace, direct et ça reste encore extensible.

    D'ailleurs il y a des choses pas mal en markdown : ## titre au lieu de == titre == c'est peut-être un peu plus joli aux yeux de certains, le > pour les citations c'est mieux qu'une tabulation peu pratique à écrire dans un formulaire web, les * c'est plus visible que - pour une liste, bref, avec ce système de regex ça permet de se constituer sa propre syntaxe perso et ça reste toujours lisible et interprétable par le convertisseur txt2tags d'origine (que cela soit en version python ou en php, l'interpréteur javascript étant encore limité)

    (ps : txt2tags peut également exporter en pages de man et en utroff)

    "Ce n'est pas à l'état de tout savoir sur ses citoyens, mais au citoyen de tout savoir sur l'état."