De la simplification à outrance du workflow

À l’origine, j’étais comme tout le monde, je cherchais à simplifier au maximum mon workflow et j’en suis venu sans trop réfléchir à opter pour un convertisseur Markdown → HTML. Cette période est désormais révolue et je prends un certain plaisir à naviguer dans la doc’ en ligne de Mozilla à la recherche de la balise parfaitement adaptée à chaque situation.

Oui mais Condor HTML et Markdown ne sont pas antinomiques. Ces deux approches sont conciliables, on peut écrire du HTML _inliné_ dans du Markdown !

🆗🆒 mais pourquoi rajouter une _build-step_ en plus pour générer les 3 pauvres balises <h1> de vos articles de minable. Soyons sérieux, le HTML est largement autosuffisant et assez peu verbeux dans ses moutures modernes. Il y a littéralement une trentaine de cas où le balise fermante <p> peut être omise.

https://html.spec.whatwg.org/multipage/syntax.html#optional-tags

Maintenant que je vous ai fait descendre de la tour de Babel à générer de dette technique en haut de laquelle vous vous étiez hissés, évoquons les problèmes récurrents de Markdown.

La manière dont les gens se servent du Markdown est fondamentalement incorrecte

Markdown ne comprend rien à ce que vous écrivez. Je m’explique, considérez le document suivant :

markdown
>Mignonne, allons voir si la rose
>Qui ce matin avoit desclose
>Sa robe de pourpre au Soleil,
>A point perdu ceste vesprée
>Les plis de sa robe pourprée,
>Et son teint au vostre pareil.
>
>Las ! voyez comme en peu d’espace,
>Mignonne, elle a dessus la place
>Las ! las ses beautez laissé cheoir !
>Ô vrayment marastre Nature,
>Puis qu’une telle fleur ne dure
>Que du matin jusques au soir !
>
>Donc, si vous me croyez, mignonne,
>Tandis que vostre âge fleuronne
>En sa plus verte nouveauté,
>Cueillez, cueillez vostre jeunesse :
>Comme à ceste fleur la vieillesse
>Fera ternir vostre beauté.

Pierre de Ronsard, _Les Odes_

qui est équivalent en HTML à :

html
<blockquote>
  <p>
    Mignonne, allons voir si la rose
    Qui ce matin avoit desclose
    Sa robe de pourpre au Soleil,
    A point perdu ceste vesprée
    Les plis de sa robe pourprée,
    Et son teint au vostre pareil.
  </p>
  <p>
    …
  </p>
  <p>
    …
  </p>
</blockquote>

<p>
  Pierre de Ronsard, <em>Les Odes</em>
</p>

On remarque plusieurs problèmes :

Observez plutôt :

html
<figure>
  <blockquote>
    <p>
      Mignonne, allons voir si la rose
      Qui ce matin avoit desclose
      Sa robe de pourpre au Soleil,
      A point perdu ceste vesprée
      Les plis de sa robe pourprée,
      Et son teint au vostre pareil.
    <p>
      …
    <p>
      …
  </blockquote>

  <figcaption>
    Pierre de Ronsard, <cite>Les Odes</cite>
  </figcaption>
</figure>

On remarque :

Les bibliothèques Markdown génèrent n’imp

Un autre exemple, avec ce bout de Markdown :

markdown
<p>
  Foo

  Bar
</p>

La majorité des lib’ produiront un code HTML équivalent à :

html
<p>
  Foo

  <p>
    Bar
  </p>
</p>

Ce qui est, je vous le donne en mille, du HTML malformé, avec tous les problèmes en matière de composabilité que cela engendre, ℯℊ corrompre le rendu d’un lecteur RSS qui comptait sur votre rigueur pour faire son job correctement.

On pourra toujours objecter :

Oui mais Condor ce ne sont pas des problèmes liés au Markdown en soi, c’est juste les librairies que tu utilises qui sont à chier.

🆗🆒 bah faites-mieux alors.

Le Markdown n’est spécifié nulle part

Utiliser Markdown ? Ok mais quelle version ? Le « vanilla » tel que penser par feu Aaron Swartz ? Le GitHub flavored ? Celui qui permet de générer une table des matières automatiquement mais pas d’écrire des tableaux ?

Vous comprenez où je veux en venir : cette jungle est insupportable. Certes CommonMark se veut être une solution mais il arrive un peu après la guerre car sorti initialement en 2014 (c’est-à-dire la même année que HTML5 et plus de 10 ans après Markdown).

https://daringfireball.net/projects/markdown/syntax
https://commonmark.org/

Études de problématiques sous-jacentes

Conclusion

Écrivez du HTML, vous éviterez de vous tirer une balle dans le pied. Continuez d’utiliser Markdown pour vos readme niais de projet à 2 stars mais pas pour cibler un rendu HTML.

Tant qu’à faire, s’il vous plaît de grâce, arrangez-vous pour que votre HTML soit valide, par exemple en utilisant le vérificateur en ligne du W3C et laissez-vous bercer par cet agréable écran :

La vie est douce, c’est une sieste dans la soie
La vie est douce, c’est une sieste dans la soie

En plus, vous écoperez d’un badge mignon qui ajoutera un charme certain à vos pages Web :

https://www.w3.org/TR/badging/

Bonus

Lors de l’écriture de cet article, je suis tombé sur cet intéressant thread qu’on peut résumer assez trivialement par :

Faites des outils pour rendre HTML agréable au lieu de perdre du temps avec du Markdown abruti

https://merveilles.town/@neauoire/111154810425383324

Un dernier mot

Oui, on utilise Gemtext pour le blog, c’est encore pire que Markdown mais au moins le HTML de notre site est correct contrairement au votre. Vous pouvez d’ailleurs admirer nos efforts pour que le HTML généré par notre proxy HTTP fasse sens ici :
https://github.com/Psi-Prod/Proximite-2/blob/master/html_of_gemtext.ml

Je songe de plus en plus à générer statiquement une version HTML du site et simplement la serve comme on le fait pour Gemini mais Léo dit que je suis un con.

Les lecteurs de Heyplzlookatme après l’article
Les lecteurs de Heyplzlookatme après l’article

Retour au gemlog
Retour à l’accueil

Commentaires (1)

Écrire un commentaire

Par Anonyme, le 11 octobre 2023 :

Je suis assez d'accord avec le fond, mais écrire du code (à afficher, à coup de <pre> et de <code>) dans du HTML, c'est une plaie !