Un traducteur md -> html minimal en awk - retour accueil
git clone git://bebou.netlib.re/katdown
Log | Files | Refs | README |
commit 988c73c7d6bde6a263d68b254b846c92ef7a3f4c parent 4bd8e2992342cf2860f82f4ff3ef400164e96f55 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Mon, 3 Mar 2025 22:27:27 +0100 Ajout des tests Ah-ha, je vous avais menti ! J'avais rien testé. Mais maintenant oui. On teste que ce qu'il y a dans le README donc je garantis rien autrement. Diffstat:
M | .gitignore | | | 1 | + |
M | README | | | 30 | ++++++++++++++++++++++++++---- |
A | launch-tests | | | 25 | +++++++++++++++++++++++++ |
3 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore @@ -1,2 +1,3 @@ *~ .*.sw? +tests diff --git a/README b/README @@ -4,7 +4,9 @@ d'[awkdown](https://github.com/mgmarlow/awkdown) de Graham Marlow. Il a pour but d'être une implémentation d'un ensemble très restreint de syntaxe -markdown et d'être POSIX. +markdown et d'être POSIX. Les syntaxes et leurs comportement sont librement +inspirés de [commonmark](https://spec.commonmark.org/) et de +[lowdown](https://kristaps.bsd.lv/lowdown/) pour les extensions à commonmark. ## Dépendances @@ -14,12 +16,14 @@ Testé avec les versions les plus à jour à l'écriture de ce README dans Debia 12 de : * gawk + * mawk + * one-true-awk * gawk --traditionnal * gawk --posix - * mawk - * nawk * busybox awk - * one-true-awk + +Le script de test dépend de `lynx`. Le code est modifiable pour utiliser `w3m`, +`elinks` ou autres. ## Installation @@ -32,3 +36,21 @@ Copier `katdown` quelque part dans un dossier de votre `PATH`. Par exemple : $ katdown # titre 1 +## Les tests + + ./launch-tests + +Le script de test vérifie si l'affichage des pages html générées par `katdown` +est identique aux sorties de `cmark` et `lowdown` dans `lynx`. + +## Limites + +`katdown` a de très^trop nombreuses limites, notamment : + + 1. Pas de tableau + 2. Pas d'espace dans les exposants (l'espace est le délimiteur de fin) + 3. Pas de balise d'emphase (em) dans des balises d'haute importance (strong) quand l'emphase est écrite avec la syntaxe `*` + 4. Pas de note de bas de page + 5. Aucune balise imbriquée dans les titres, les listes ou les citations + 6. Les éléments des listes doivent être écrits sur une seule ligne + 7. Pas d'échappement automatique d'html diff --git a/launch-tests b/launch-tests @@ -0,0 +1,25 @@ +#! /bin/sh + +_die() { printf "$red$*$norm\n" >&2 ; } +_success() { printf "$green$*$norm\n" >&2; } +_inform() { printf "$blue$*$norm" >&2; } +red="\033[91m";green="\033[92m";blue="\033[94m";norm="\033[0m" + +mkdir -p tests + +< README lowdown --out-no-smarty | lynx -stdin -dump > tests/res-lowdown +< README cmark | lynx -stdin -dump > tests/res-cmark + +for parser in gawk mawk one-true-awk "busybox awk" "gawk --posix" "gawk --traditional";do + < ./katdown sed "1d" > tests/no-shebang-katdown; + _inform "testing katdown with $parser\n" + + < README $parser -f tests/no-shebang-katdown | + lynx -stdin -dump > tests/res-katdown + + for trad in lowdown cmark;do + _inform " testing $trad " + if diff -u tests/res-katdown tests/res-$trad;then _success same + else _die not same; fi + done +done