Sortie de txt2tags 2.6

Posté par  . Modéré par Florent Zara.
Étiquettes :
25
6
nov.
2010
Python
Deux ans après la version 2.5, et après avoir soufflé ses 9 bougies, la version 2.6 de txt2tags vient enfin de sortir. Ce générateur de documents, intelligent et minimaliste (un seul script en python) a pour slogan : UNE seule source, des sorties MULTIPLES !

En effet, il est aisé d'exporter un document balisé grâce à la syntaxe claire de txt2tags, vers plus de 18 formats populaires tels que HTML, Mediawiki, LaTeX, DocBook, DokuWiki etc. Txt2tags permet également de modifier les exportations finales grâce à un puissant système de macros et de regex, étendant de façon illimitée les possibilités de bases. Je vous renvoie vers la dépêche de la version 2.5 ou la page Wikipedia pour une présentation plus détaillée de ses caractéristiques initiales, et j'aborde de suite les nouveautés :
  • Gestion de l'exportation vers ces nouvelles syntaxes : Ce qui porte à 18 le nombre total de syntaxes cibles prises en charge.

  • Nouvelle marque : ''tagged'' pour insérer du texte sans qu'il y ait aucune transformation par txt2tags. Beaucoup de gens utilisaient le marquage ""raw"", défini par des guillemets doubles, pour avoir un équivalent mais celui-ci a le désavantage de procéder à des remplacements de base, par exemple ""<"" (en html) devient malgré tout &lt; avec raw.

    On peut également utiliser ''' en début de ligne pour marquer une ligne entière dans ce nouveau format, ou avoir une zone définie entre deux bloc ''', comme ceci :
      '''
    
    bloc de texte
    à insérer
    '''
  • Nouvelle commande %!csv pour inclure un fichier CSV externe en tant que tableau. Cela peut être utile pour générer du contenu régulièrement mis à jour par un fichier externe automatiquement exporté en CSV.

  • Nouvelle option --slides pour créer des slides de présentation en ASCII art. Il est possible également de paramétrer finement la largeur, la hauteur, les coins, les bordures, les côtés, les niveaux de ce nouveau format ASCII art, via de nouvelles options.

  • Amélioration des sorties des formats HTML et XHTML, pour un code plus propre.

  • Des améliorations pour LaTeX au niveau des listes et des tables.

  • Des améliorations pour le format Lout, au niveau des listes.

  • Amélioration générale de l'apparence pour tous les formats générés, en rajoutant ou enlevant des lignes vides pour les rendre plus lisibles.

  • Diverses corrections de bogues, et amélioration du code source en utilisant pychecker.

  • Fichiers d'exemples mis à jour vers l'utf-8.

  • Réécriture complète de la page de man, pour qu'elle soit plus concise et précise.

  • Nouveau nom de domaine txt2tags.org et nouveau wiki pour échanger des recettes et astuces liés à t2t.

  • Nouvelles langues rajoutées : Basque, Chinois et Ukrainien.

En outre, des outils extérieurs ont été améliorés ou créés :
  • Nouveaux fichiers de syntaxe pour les éditeurs de texte : le, ne, JOE, Markitup (jQuery), Scintilla et donc aussi Geany qui utilise le même "lexer" (coloration syntaxique et liste des titres dans la partie symboles).

  • Amélioration de la syntaxe pour Vim, ainsi que pour Kate (repliage des titres notamment, version svn disponible ici).

  • Tutoriel "Créer des documents avec txt2tags" sur le Site du Zéro.

  • Création d'une "recette" (cookbook) pour pouvoir écrire directement la syntaxe txt2tags dans le moteur PmWiki : http://www.pmwiki.org/wiki/Cookbook/Txt2tags (c'est ce qui est utilisé dans le wiki sur le site txt2tags.org)
    Celle-ci permet également d'utiliser une barre d'outils de mise en forme via GUIButtons, intégré à pmwiki, pour composer en txt2tags.

  • Le projet TeXtallion, que j'avais évoqué dans des journaux linuxfr il y a quelques mois et qui permet de créer des documents de type "prose", poursuit son développement (il y a même maintenant un dépôt mercurial si vous souhaitez contribuer).

  • RedNotebook est un éditeur de journal personnel, utilisant la syntaxe txt2tags.

Le développement futur (vers la version 3.0) prévoit de rendre txt2tags plus modulaire, avec un coeur pour gérer les fonctions de base et les syntaxes principales, et des modules pour rajouter des fonctionnalités ainsi que de nouvelles cibles moins courantes.

L'exportation vers le code XHTML strict, qui est une cible nécessaire de nos jours, ainsi que l'export vers le très populaire Markdown sont en cours de réalisation. Il est aisé d'utiliser la version en développement qui sera très prochainement augmentée de ces nouvelles fonctionnalités.

Cette dépêche a bien entendu été réalisée et exportée en HTML grâce à txt2tags...

Aller plus loin

  • # Et le code

    Posté par  . Évalué à 10.

    Et les mauvaises nouvelles :
    - c'est un unique fichier python de 6k lignes
    - le parsing est fait avec des regexp

    Un jour, les gens comprendront que la structure d'un document n'est pas régulière, dès qu'on ajoute quelque chose ressemblant à une indication, comme les listes dans les listes. C'est le cas en langue naturelle; après, certains formats ne le supportent pas, mais cela limite leur expressivité.
    • [^] # Re: Et le code

      Posté par  . Évalué à 4.

      je n'ai pas compris ton commentaire.

      En quoi ça dérange que cela fasse 6000 lignes d'un seul bloc ? Plutôt que de disperser ce court script dans 10 fichiers au noms incompréhensibles pour le commun des mortels, je trouve plus simple de n'avoir à distribuer qu'un seul fichier. C'est dans la philosophie KISS du projet.

      Et pour les développeurs, tous les éditeurs de textes digne de ce nom supportent la syntaxe python, c'est facile d'accéder directement aux différentes classes, fonctions et variables...

      Au niveau de l'analyse syntaxique, le fait que cela utilise les regexp permet justement de pouvoir les utiliser dans le corps du document, pour faire des remplacements. Tu as peut-être un exemple concret d'un blocage que tu aurais pu avoir à cause de cela ? Parce que là je ne vois pas.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Et le code

        Posté par  . Évalué à 10.

        Euh, c'est pas toujours facile de se repérer dans fichier python de 6000 lignes.
        Je préfère largement avoir 10 fichiers de 600 lignes, même si le nom est incompréhensible (et d'ailleurs pourquoi le nom serait forcément incompréhensible ?)

        Ça permet, par exemple si on simplement besoin d'ajouter une fonctionnalité, de savoir dans quel fichier se situent les classes/méthodes à modifier, plutôt que de patauger dans les 80 classes et les 300 méthodes qui s'affichent dans l'onglet structure.
        D'autre part, je ne suis pas vraiment d'accord avec l'argument KISS. Je vois pas en quoi c'est plus simple de tout avoir dans un fichier de 6000 lignes et dire dire au contributeur : taka avoir un bon IDE pour te repérer.

        Pour revenir sur le code de txt2tags, rien que tous les headers (pour les différents types de documents) peuvent être déplacés vers un fichier headers.py par exemple (même chose pour les autres constantes). Même chose pour la fonction getTag(), la déplacer vers un autre fichier nommé tags.py ne couterait pas grand-chose. Enfin, il serait possible de déplacer les classes gérant la configuration dans un fichier config.py.

        Non, vraiment un fichier de 6000 lignes, ce n'est pas la meilleure méthode pour attirer le contributeur. D'un autre côté le code est bien commenté, donc ça compense ce petit écart.

        Ma remarque n'est pas une critique contre txt2tags, c'est un logiciel très utile qui a l'immense mérite de fonctionner et c'est facile de critiquer de l'extérieur. Après tout l'auteur fait ce qu'il veut, c'est peut-être pas sa priorité de faire quelquechose de modulaire.
        • [^] # Re: Et le code

          Posté par  . Évalué à 2.

          Effectivement, la question de faire un txt2tags modulaire a déjà été évoquée, soit sur la liste de diffusion, soit sur le wiki. L'auteur (Aurélio) ne semble pas être hostile à cette idée. Cela pourrait permettre de rajouter plus facilement de nouvelles syntaxes additionnelles ou de nouvelles fonctionnalités, sans toucher au coeur de txt2tags.

          Certains utilisateurs semblent préférer n'avoir quand même qu'un seul fichier au final, peut-être qu'il est possible en python d'avoir un code modulaire et de sortir ensuite une version autogénérée avec tout dans un seul fichier ? Des noms comme "headers.py", "tags.py", pour des utilisateurs béotiens, ça ne veut pas dire grand chose.

          Si ça t'intéresse de contribuer dans txt2tags pour apporter cela, pourquoi pas, tu peux le proposer sur la liste de diffusion ou directement à Aurélio.

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: Et le code

            Posté par  . Évalué à 2.

            > peut-être qu'il est possible en python d'avoir un code modulaire et de sortir ensuite une version autogénérée avec tout dans un seul fichier ?

            pyPack [http://sebsauvage.net/python/programs.html#pypack] pourrait être étendu pour inclure plusieurs fichiers en un
          • [^] # Re: Et le code

            Posté par  . Évalué à 2.

            Des noms comme "headers.py", "tags.py", pour des utilisateurs béotiens, ça ne veut pas dire grand chose.

            D'ailleurs ils n'ont même pas besoin de savoir ce que c'est. Par contre un développeur aura une chance de trouver par lui-même ce qu'il cherche d'après ces noms. C'est toujours utile de permettre aux nouveaux contributeurs de pouvoir facilement rentrer dans le code. Bon en même temps, 6k lignes c'est gros pour un seul fichier, mais quand même pas énorme pour la taille du programme.
    • [^] # Re: Et le code

      Posté par  . Évalué à 8.

      Je n'ai pas regardé de près la syntaxe, mais à vu de nez il ne semble pas y avoir de structures imbriquées (comme dans du xml, html par exemple). Or c'est précisement ce type de structures qui pose problème lors du "parsage" par des expressions rationnelle.

      Je dirai, avec ma faible connaissance, que le choix des expressions régulières n'est pas idiot ici, et qu'on a pas besoin d'un parser complet pour ce type de structures simples.
  • # Merci

    Posté par  (site web personnel) . Évalué à 3.

    Juste un petit mot pour dire merci, pour cet outil que je ne connaissait pas.

    La syntaxe ressemble un peu au ResT, je trouve.

    Merci encore !
    • [^] # Re: Merci

      Posté par  . Évalué à 2.

      Justement, par simple curiosité, qu'est-ce que la syntaxe a de plus par rapport
      au ReST (et rst2pdf etc) ?
      Certes l'avantage de cet outil est le nombre de sorties différentes.

      J'ai cru comprendre qu'il supporte des commandes (genre %!csv cité dans
      l'article), quee le ReST n'a pas il me semble. Mais y aurait-il une comparaison
      complète quelque part entre les deux formats ?
      • [^] # Re: Merci

        Posté par  (site web personnel) . Évalué à 2.

        Je crois que ReST est plus orienté système de documentation extensible (la notion de role & Co). Voir ce qu'ont fait les gens avec Sphinx ou sur le site de Siafoo par exemple,
        Autre différence, une syntaxe AMA plus rigide (j'étais passé de ReST à AsciiDoc à cause de ça sur certaines docs de développement).

        http://sphinx.pocoo.org/
        http://www.siafoo.net/help/reST
        http://www.siafoo.net/help/math
        http://www.siafoo.net/help/graphs

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

      • [^] # Re: Merci

        Posté par  . Évalué à 3.

        txt2tags est facilement personnalisable via des expression régulières avant ou après le passage de l'analyse txt2tags. Grosso modo ça veut dire que tu peut te créer ta propre syntaxe facilement (genre --mot-- donnerais "mot").

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Merci

        Posté par  . Évalué à 4.

        On peut trouver quelques éléments de comparaison ici :
        http://en.wikipedia.org/wiki/Lightweight_markup_language

        On pose souvent la question par rapport à ce qu'une syntaxe a de plus ou de moins, l'intérêt d'utiliser ça au lieu d'un autre etc. Bien entendu, c'est question d'habitude et de goût, mais on peut voir que txt2tags (tout comme creole qui a beaucoup d'éléments en commun), a l'avantage d'avoir une syntaxe assez logique par rapport à d'autres systèmes concurrents :

        Les '''gras''' et ''italiques'' de mediawiki deviennent vite indigestes, surtout si on doit les combiner en '''''gras et italique'''''. L'//italique// et le **gras** de txt2tags me semble plus cohérents et logiques (c'est toujours composé avec des symboles allant par paire, et mis des 2 côtés). En plus, il y a plus de possibilités d'expression sont plus importantes, on peut notamment barrer ou souligner du texte.

        Idem pour les titres, débuter avec des *** et pas terminer le titre avec, c'est la galère pour l'analyse syntaxique, idem pour le soulignement (comme dans ReST). Certains comptent même à l'envers, ===== titre niveau 1 =====, ==== titre niveau 2 ==== etc

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Merci

          Posté par  (site web personnel) . Évalué à 4.

          Certains comptent même à l'envers, ===== titre niveau 1 =====, ==== titre niveau 2 ==== etc

          c'est une question de mise en forme et tu peux choisir de n'avoir que 3 niveaux de titre

          ===titre===
          ==titre de niveau inférieur==
          =titre en dessous=
          ça me paraît bien logique dans un fichier texte :)
        • [^] # Re: Merci

          Posté par  . Évalué à 2.

          J'aimerais bien comprendre pourquoi il y a 13 syntaxes de ce type sur cette page. Pourquoi ce besoin dispose de 13 syntaxes différentes actuellement? Je remarque qu'il y a déjà beaucoup de syntaxes de wiki/forums qui je pense ont été toutes développées a peu près en même temps (ou alors c'est une syndrome Not Invented Here?). Mais quand est-il pour les syntaxes purement orientées document texte? Pourquoi tout le monde y va de son projet? Sont-ce des besoins/buts différents?
          • [^] # Re: Merci

            Posté par  . Évalué à 3.

            effectivement, chacun pense que sa version de la syntaxe est la meilleure, un peu comme pour les 5000 distributions linux différentes, toutes plus conviviales les uns que les autres, et simples d'accès pour les débutants :)

            Et puis, comme un consensus est difficilement trouvable, un nouveau projet propose sa nouvelle syntaxe. C'est relativement humain comme comportement.

            Wikicréole, qui avait étudié la plupart des wiki existant et recherché ce qui était le plus pratique au final (cf. les études que l'on trouve ici : http://www.wikicreole.org/wiki/Reasoning ) s'était proposé comme dénominateur commun, mais j'ai l'impression que cela n'a pas énormément pris, c'est dommage, car comme par hasard, ils sont arrivés presque aux mêmes conclusions que ce qui avait été choisi initialement dans txt2tags.

            Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

            • [^] # Re: Merci

              Posté par  . Évalué à 1.

              Et puis, comme un consensus est difficilement trouvable, un nouveau projet propose sa nouvelle syntaxe. C'est relativement humain comme comportement.
              Je ne sais pas si c'est humain, mais en tout cas ca semble être plus facile d'écrire son propre système de markup que de contribuer a OpenOffice.org par exemple (ou LibreOffice selon ce qui vous plaît) .

              c'est dommage, car comme par hasard, ils sont arrivés presque aux mêmes conclusions que ce qui avait été choisi initialement dans txt2tags.
              J'imagine que tu parles de la syntaxe qui est proche?
              • [^] # Re: Merci

                Posté par  . Évalué à 2.

                >j'imagine que tu parles de la syntaxe qui est proche?

                oui c'est ça, c'est presque pareil, sauf pour les liens.

                Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

              • [^] # Re: Merci

                Posté par  . Évalué à 2.

                Je pense qu'il n'est pas encore naît celui qui feras inclure un patch dans n'importe quelle suite office à fin de lui donner les avantages des logiciels de markup :
                - choix de l'éditeur + toutes les possibilités sont utilisable au clavier et n'utilisent que du texte
                - enpreinte mémoire réduite et limité dans le temps
                - utiliser un format de fichier compatible avec un gestionnaire de source (oui on peut versionner un odt mais tu va galérer au niveau des diff' et l'espace occupé par ton dépôt risque d'exploser

                Ce sont des classes d'outils différents pour des objectifs et des utilisations différentes.

                Les suites bureautiques ont d'autres avantages, hein. Je suis pas entrain de les démolir (facilité d'utilisation, WYSIWYG, tout se fait avec un seul outil, possibilité d'avoir tout dans un seul fichier (images inclus), intéropérabilité importante avec un tableur pour manipuler des données de manière agréable).

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Merci

                  Posté par  . Évalué à 3.

                  Oh j'ai bien conscience de ca, mais ce n'était pas mon propos.

                  Ce que je voulais dire c'est que 13+ langages de markup c'est quand même un peu trop. Je pense au temps/énergie/détermination passé par leurs auteurs respectif pour les créer et je pense a ce qu'il aurait été possible de faire de ce temps sur d'autres projets. J'ai pris OpenOffice.org ou LibreOffice, mais j'aurais pu parler de Firefox, KDE, Gnome, ou même GCC (!?!). Je sais bien que ces projets n'ont rien a voir avec un langage de markup, et que les développeur n'auraient peut être jamais contribué a ces logiciels libres que je cite (ou même a d'autres).

                  C'est juste que tous ces langages de markup me laissent un sentiment de réinvention de la roue, voie même un gâchis.
                  • [^] # Re: Merci

                    Posté par  . Évalué à 2.

                    comme pour toutes les distributions linux, comme pour kde<=>gnome, comme vim<=>emacs...

                    Le problème aussi, c'est que si on doit trouver un consensus, chacun dira, "on n'a qu'à garder markdown," ou "on n'a qu'à garder mediawiki".

                    Le nouveau troll : txt2tags<=>markdown :)

                    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

                    • [^] # Re: Merci

                      Posté par  . Évalué à 2.

                      comme pour toutes les distributions linux,
                      Oui! Car il y a 120 000+ distributions, et encore, je sous estime le nombre.

                      comme pour kde<=>gnome
                      Oui, si tu rajoutes a cela XFCE, Enlightenment, Etoilé, ...
                      Quels autres environnement de bureau propose aussi tout un tas d'applications qui vont avec?

                      comme vim<=>emacs...
                      Oui si tu rajoutes a cela gedit, kate, SciTE, Notepad++, notepad2, nedit, nano, jedit, et j'en oublie.


                      Autant je "connais" des buts différents e irréconciliable a chaque environnement de bureaux, autant je connais la raison de l'existence de la plupart des éditeurs de textes (mais pas tous), autant les distributions linux se multiplie comme des lapins tellement c'est facile de se baser sur une distro principale qui a fait le boulot ingrat (mais la je suis plus dubitatif sur l'existence de nombre d'entre elles), autant je ne connais pas la raison qui fait que toutes ces syntaxes de markup existe, d'où mon incompréhension.
  • # Super!

    Posté par  (site web personnel) . Évalué à 1.

    J'ai hate d'essayer.
    Pour l'instant, je fais du S5 mais ca me gave.
    Il faut taper trop de trucs pour faire une presentation.
    J'aimais bien MagicPoint mais comme il faut le configurer
    apres une installation c'est un peu lourd, et puis ca exportait
    pas super en HTML ou PDF chez moi.
    La syntaxe de MagicPoint est tres light, c'est ca qui m'attire chez
    tzt2tags.
    • [^] # Re: Super!

      Posté par  . Évalué à 2.

      je recherche aussi un système pour faire de belles présentations. J'imagine qu'il doit être possible de faire un export pour S5, mais je ne connais pas assez.

      Il existe aussi un patch pour rajouter l'export Beamer dans txt2tags : http://code.google.com/p/txt2tags/issues/detail?id=2
      Ça fonctionne plutôt bien, je l'avais ajouté dans un projet.

      Je vais proposer de l'intégrer dans la prochaine version de t2t, car c'est très utile.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: Super!

      Posté par  . Évalué à 1.

      Ça nest pas pour troller, mais à partir de la syntaxe markdown, Pandoc peut générer le format S5.
      • [^] # Re: Super!

        Posté par  . Évalué à 3.

        Alors cela tombe bien parce qu'à partir de la syntaxe txt2tags, txt2tags peut générer du markdown, ce n'est pas encore dans la version de dev, mais il y en a une version patchée ici :

        http://textallion.googlecode.com/hg/txt2tags?r=1f5ce49002009(...)

        Et ce n'est pas pour troller, mais en supposant que S5 permette d'avoir du texte souligné (vu que c'est du html), comment faire depuis markdown, vu que le soulignement de texte n'est pas proposé dans markdown ?

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Super!

          Posté par  . Évalué à 1.

          Pour le soulignement, je n'ai jamais essayé, mais:

          «For any markup that is not covered by Markdown’s syntax, you simply use HTML itself. There’s no need to preface it or delimit it to indicate that you're switching from Markdown to HTML; you just use the tags.»
        • [^] # Re: Super!

          Posté par  . Évalué à 1.

          pandoc propose le ~~texte barré~~ : http://johnmacfarlane.net/pandoc/README.html#strikeout et d'autres ajouts à markdown.
    • [^] # Re: Super!

      Posté par  . Évalué à 1.

  • # Le Site du Zéro...

    Posté par  (site web personnel) . Évalué à 2.

    Merci pour la référence au Site du Zéro avec leur magnifique tutoriel :
    python.exe "C:\Documents and Settings\Utilisateur\Mes documents\Chemin_vers_txt2tags\txt2tags.py" %1

    Sinon l'outil semble très intéressant ! Merci !
    • [^] # Re: Le Site du Zéro...

      Posté par  . Évalué à 2.

      et tu proposerais quoi à la place ? Rien, parce que windows c'est pourri et qu'on devrait faire comme si ça n'existait pas, ou alors tu as réellement une meilleure syntaxe qui marchera bien pour la plupart des utilisateurs windows ?

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Le Site duZéro...

        Posté par  . Évalué à 1.

        Peut-être que le problème est justement que le site du zéro est adressé aux
        utilisateurs Windows de 14 ans.
        • [^] # Re: Le Site duZéro...

          Posté par  . Évalué à 2.

          le tutoriel du site du zéro s'adresse à tout le monde, c'est pour cela que les exemples pour windows, linux, mac osx et autres unix sont évoqués.
          Il n'y a pas de mal de partir de zéro, tout le monde l'a fait un jour non ?

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Mouis...

    Posté par  . Évalué à 2.

    Txt2tags permet également de modifier les exportations finales grâce à un puissant système de macros et de regex, étendant de façon illimitée les possibilités de bases.

    Si j'en crois le tutoriel qu'a écrit l'auteur de la dépêche sur le site du Zéro, en gros ça réinvente le tube shell. Parce que le preproc et le postproc qui appliquent une regex ligne par ligne, chez moi ça s'appelle sed et awk (et encore, c'est faire peu d'honneur à ces deux merveilleux outils).

    À mes yeux, txt2tags se heurte aux mêmes écueils que les autres pour ce qui est de la course au Saint Graal (une source légère et n sorties de qualité), à savoir que plus il y a de sorties, plus est petit leur dénominateur commun, et donc plus la syntaxe intermédiaire va être soit pauvre (on colle à ce qu'on peut aisément décrire dans tous les langages), soit incohérente (on crée des contextes spécifiques à certaines sorties, ce que précisément ladite syntaxe visait à éviter).

    Je trouve ça gros de faire passer le B-A-BA de la moulinette depuis que la moulinette est moulinette pour une super-fonctionnalité : il suffit que le soft lise depuis stdin et écrive sur stdout pour obtenir la même chose, avec en plus les outils de son choix et sans cradouiller la syntaxe en amont. Parce que le preproc est àmha vraiment ce qui ressemble le plus à une fausse bonne idée ; avec un système comme ça, il est impossible de connaître a priori la structure d'un document t2t et donc d'envisager manipuler le format avec un outil tiers.

    Bref, je ne dis pas que txt2tags est un outil sans valeur (même si pour l'avoir testé il y a quelques années, j'avais été déçu par la qualité des sorties), mais je ne vois pas trop ce que ça apporte de révolutionnaire en terme d'approche et de qualité d'implémentation par rapport à une énième compilation de moulinettes.

    Mes 2¢
    • [^] # Re: Mouis...

      Posté par  . Évalué à 4.

      ben je ne sais pas, mais à mon avis tu n'as pas dû l'utiliser de façon très intensive, pour penser ça, ou alors tu fais partie d'une catégorie d'utilisateur qui effectivement n'en a pas besoin, parce que cela ne te dérange pas d'avoir pleins de fichiers à manipuler et à gérer par exemple.

      L'intérêt des pre et postproc, c'est justement de pouvoir tout renseigner dans un document unique, comme cela si on copie ce document à quelqu'un d'autre, il n'y a pas besoin de faire référence à d'autres fichiers de configuration ou un makefile externe.

      Les contextes spécifiques permettent justement de créer un syntaxe spéciale suivant les besoins, soit en fonction d'un document particulier (divers sites internet par exemple), soit en fonction de la sortie (un livre papier, un ebook, une page internet)

      Par exemple si j'ai envie de rajouter facilement sur un site des liens wikipedia, en s'inspirant par exemple de ce que fait linuxfr, je peux dire que :es:Música fera référence à la page espagnole de wikipedia sur la musique, il suffit de rajouter :

      %!preproc(xhtml): '\[\[:([^ ].*?):([^ ].*?)\]\]' '\2[\2 http://\1.wikipedia.org/wiki/\2]'

      Si je veux que la version pdf (LaTeX) puisse donner le lien complet écrit en toutes lettres :
      %!preproc(tex): '\[\[:([^ ].*?):([^ ].*?)\]\]' '\2[http://\1.wikipedia.org/wiki/\2 http://\1.wikipedia.org/wiki/\2]'

      avec preproc, ça permet de garder la syntaxe interne de txt2tags, et de mettre les 2 possibilités (ou plus), les unes à la suite des autres.

      Dans le cas de l'utilisation de sed et compagnie, cela sera sans doute possible de faire pareil, mais il faudra faire des entrées compliquées dans un makefile, c'est quoi l'intérêt ? (perso je sais le faire avec txt2tags, je ne saurais pas le faire facilement avec sed)

      Aurélio, qui a conçu txt2tags, a écrit un livre de 208 pages sur les expressions rationnelles, et un autre de 480 sur le shell (cf. http://aurelio.net/ ), sans compter un petit jeu de sokoban écrit en sed : http://sed.sourceforge.net/local/games/sokoban.sed

      Bref, vu ses connaissances dans ces 3 domaines, s'il a imaginé txt2tags en incluant les regex directement dedans, je pense pouvoir lui faire confiance, c'est qu'il a dû trouver cela plus pratique que de dire à ses utilisateurs RTFM sed et awk.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Mouis...

        Posté par  . Évalué à 2.

        grr, je voulais bien entendu écrire [[:es:Música]]

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Mouais...

        Posté par  . Évalué à 1.

        ben je ne sais pas, mais à mon avis tu n'as pas dû l'utiliser de façon très intensive, pour penser ça
        :D
        Faudra que je la ressorte celle-là : -- Moi les épinards, je trouve ça dégueu ! -- Tu dis ça, c'est juste parce que t'en as pas mangé intensivement.

        Mais non, effectivement, je ne l'ai pas employé beaucoup. C'était peut-être au niveau du HTML que c'était pas top top. Honnêtement je ne sais plus et je concède tout à fait que ça ait pu changer depuis.

        Les contextes spécifiques permettent justement de créer un syntaxe spéciale suivant les besoins, soit en fonction d'un document particulier (divers sites internet par exemple), soit en fonction de la sortie (un livre papier, un ebook, une page internet)

        J'ai bien compris, mais c'est la pauvreté de l'approche que je critique. Loin de moi l'idée que faire une farandole de awk et de sed soit une panacée en terme de gestion de document, c'est justement pourquoi faire de la regex ligne à ligne en amont et en aval en baptisant ça "système de macros" me dérange.

        La ligne en tant que clé de manipulation, c'est vraiment la misère. Ça manque àmha d'abstraction, qui permettrait de définir et de manipuler des structures. Évidement, cela suppose que la syntaxe ait une certaine rigidité, des limites claires, que l'emploi du preproc empêche précisément..

        Bref, vu ses connaissances dans ces 3 domaines, s'il a imaginé txt2tags en incluant les regex directement dedans, je pense pouvoir lui faire confiance, c'est qu'il a dû trouver cela plus pratique que de dire à ses utilisateurs RTFM sed et awk.

        On sent effectivement une approche très shell des choses... avec un langage comme python, plutôt que le présent bricolage, j'aurais pensé une extensibilité par script, en héritant les objets de base pour adapter proprement la syntaxe à ses besoins.

        À part ça je trouve l'argument "il a beaucoup fréquenté" assez moyen. Prends quelqu'un comme Brian Kernighan, qui a entre autres accompagné le développement d'UNIX, co-écrit la bible du C avec l'auteur du langage Dennis Ritchie, et enseigne aujourd'hui la programmation à Princeton. Tout cela n'empêche pas que dans le manuel de son implémentation de AWK (le "K", c'est lui) on trouve :

        BUGS
        There are no explicit conversions between numbers and strings. To force an expression to be treated as
        a number add 0 to it; to force it to be treated as a string concatenate "" to it.
        The scope rules for variables in functions are a botch; the syntax is worse.


        Connaître un domaine "à fond" n'a jamais empêché d'avoir de mauvaises intuitions, ni heureusement l'humilité de le reconnaître...
    • [^] # Re: Mouis...

      Posté par  . Évalué à 4.

      preproc et postproc permettent justement de ne pouvoir visualiser dans un même fichier le contenu et les modifications non standard qui y seront apportés.

      Pour ce qui est des limitations, si on compare à latex il est évident que ça n'a rien à voir. Personnellement la seule vraie limitation que j'ai rencontré c'est pour les formules. Je souhaitais contribuer pour ajouter cette fonctionnalité (il y a des possibilités de sorties vers latex, xhtml et probablement d'autre (lout, wikipedia,...)). Pour diverses raisons je n'ai pas encore pu le faire mais je ne déespère pas d'ajouter cette fonctionnalité un jour.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Mouis...

        Posté par  . Évalué à 2.

        on peut également inclure du code LaTeX, telles que des formules, en l'encadrant entre deux bloc de ``` ou ''', par exemple :



        ```
        \begin{displaymath}
        \frac{a}{b} + \sqrt[n]{abcd}
        \end{displaymath}
        ```

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Mouais...

          Posté par  . Évalué à 1.

          Ce qui veut dire que le code ne sera pas interprété en HTML par exemple, je me trompe ?

          D'où, on en revient à ce que je disais plus haut, la source unique pour n sorties tient du mythe. Txt2tags me fait plutôt penser à un Markdown qu'on peut appliquer au choix à telle ou telle sortie qu'à un véritable système de documentation universel (qui -- en admettant que ce soit possible -- ne peut être de mon point de vue qu'une usine à gaz, tant cela suppose un niveau d'abstraction poussé). Je me demande en fait si on aurait pas gagné en ergonomie et en qualité de syntaxe en limitant clairement a priori les sorties supportées...
          • [^] # Re: Mouais...

            Posté par  . Évalué à 2.

            >ce qui veut dire que le code ne sera pas interprété en HTML par exemple, je me trompe ?

            évidemment. Et ça ne fait pas le café non plus, ça ne peut pas tout faire. Enfin si, si tu as du temps, tu peux créer des filtres qui pourront modifier de nouveau les formules en latex pour l'afficher en html, mais il y a sans doute d'autres outils pour faire ça (latex2html).

            C'est comme un couteau suisse, on peut faire beaucoup de choses avec, mais pour tronçonner un arbre ou enfoncer des piquets, ce n'est pas le plus adapté.

            La plupart des documents qui sont créés dans le monde (commentaires linuxfr, romans, manuels d'utilisation etc) ont besoin d'un niveau d'expression assez réduit quand même : gras, italique, soulignement, titres, images, ça couvre la plupart des besoins.

            Et puis effectivement, le but n'est pas forcément d'exporter vers html + wikipedia + xhtml + latex + dokuwiki, mais de choisir suivant les besoins. Mais on peut avoir envie d'écrire un document pour mettre sur son site en html, et le replacer ensuite sur un wiki utilisant mediawiki.

            Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.