WIP: md2bb - un convertisseur en ligne de commande de Markdown vers du BBCode
Dépot :
https://github.com/mibi88/md2bb
Il y a quelque jours j'ai commencé à coder un convertisseur Markdown vers BBCode, car il est bien plus pratique d'écrire de longs textes en Markdown qu'en BBCode. Il existe déjà des convertisseurs Markdown vers BBCode, mais le BBCode est différent d'un site web à l'autre, mon convertisseur peut donc être adapté pour des sites web différents assez facilement. Pour l'instant, seul phpBB et Planet Casio sont supportés. Tout cela semble merveilleux, mais mon convertisseur, qui vise à être compatible avec
https://daringfireball.net/projects/markdown/dingus, est loin de l'être. Essayez de convertir le fichier
test.md du dépôt, et vous verrez que beaucoup de choses ne sont pas encore converties, mais les fonctionnalités les plus basiques du markdown sont déjà supportés, comme vous pouvez le voir, car ce post lui même est écrit en markdown (markdown en pièce jointe).
Pour convertir du markdown en BBCode avec, il vous suffit d'entrer la commande suivante :
$ python3 main.py [fichier markdown] -o [fichier BBCode] -t planet-casio
-o spécifie le fichier de sortie. Si vous ne le spécifiez pas de fichier de sortie, le BBCode sera écrit sur la sortie standard.
-t spécifie le site web visé, ici planet-casio.
Toutes les contributions sont, bien sûr, bienvenues !
PS: J'ai du renommer le fichier markdown en .txt pour pouvoir l'ajouter en pièce jointe.
Citer : Posté le 26/08/2024 18:10 | #
Oh, en fait j'ai quelque bugs à corriger, visiblement
Citer : Posté le 26/08/2024 18:25 | #
Voilà tout les bugs sont corrigés.
Citer : Posté le 26/08/2024 21:25 | #
J'ai commencé à ajouter le support des hyperliens. Il ne manque que les liens qui utilisent des labels.
Citer : Posté le 27/08/2024 10:17 | #
Pour info dans le même registre Cake avait pondu ça : https://git.planet-casio.com/cake/textout
Citer : Posté le 27/08/2024 10:44 | #
Wait si on enchaîne md2bb et textout ça fait un convertisseur MD → HTML :o #bigbrain #mindblown
Citer : Posté le 27/08/2024 11:04 | #
Senpai découvre Pandoc
Citer : Posté le 27/08/2024 19:17 | # |
Fichier joint
J'ai les listes à puces qui marchent !
Résultat attendu (html de https://daringfireball.net/projects/markdown/dingus) :
Citer : Posté le 27/08/2024 21:34 | # |
Fichier joint
Bon, ça avance bien. Pour vous montrer l'avancement je vous mets la conversion du fichier test avec la référence (https://daringfireball.net/projects/markdown/dingus) :
- Some markdown
Some markdown
Some markdown - Some markdown -- Some markdown
Some markdown - Some markdown -- Some markdown
- H2 header
line jump tests
inside paragraphs and wrapping paragraphs on multiple lines!
Some test em em of the strong strong formatting!
Horizontal rules
indented
with
tabs
piece
of
code
piece
of
code
This is an example inline link.
A link without a title
Label:
[id]: http://example.com/ "Optional Title Here"
[foo]: http://example.com/ "Optional Title Here" [foo]: http://example.com/ 'Optional Title Here' [foo]: http://example.com/ (Optional Title Here)
[link text][a] [link text][A]
[Google][]
[Google]: http://google.com/
Inline code
/* Some C code! */
`
A backtick (`) !
```
A backtick (`) !
There is a literal backtick (`) here.


![Alt text][id]
[id]: url/to/image "Optional title attribute"
http://example.com/
\literal asterisks\
Escaping \\\\*\_\{\}\[\]\(\)\#\+\-\.\!test
jumps
Some text followed by > Some quotes > that span across multiple lines > > And other quotes, indented further > > that also span across multiple lines > And going back to a lower level
I'm lazy, I'm only putting the angle bracket on the first line > of the long paragraph
This
very
long code
which spans across multiple lines
Shouldn't be converted.
List indentation test
1.test
tes
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
* mixing tabs and spaces
List type tests
Extra spaces test
PS: Le test d'espaces en trop en fin de ligne ne passe que pour les listes, c'est juste que planet-casio vire les espaces en double.
Citer : Posté le 28/08/2024 14:19 | # |
Fichier joint
Les citations sont gérés très bizarrement par https://daringfireball.net/projects/markdown/dingus . Après quelque test j'ai écrit ce markdown. Vous allez être étonné du résultat :
Faut juste que j'implémente tout ça dans md2bb maintenant
Citer : Posté le 28/08/2024 14:58 | # |
Fichier joint
J'ai ajouté le support de citations dans les listes :
is the text still correct ?
is the text still correct ?
Markdown :
> quote
>> quote
>>> quote
* another quote
> quote
>> quote
* something else
is the text still correct ?
* another test
> quote
is the text still correct ?
Pour comparer :
Citer : Posté le 28/08/2024 15:55 | #
Les citations en dehors des listes sont maintenant supportées.
Citer : Posté le 28/08/2024 16:24 | #
J'ai ajouté une flag (-e) qui permet de désactiver les bugs intentionnels qui reproduisent le comportement de https://daringfireball.net/projects/markdown/dingus . Pour l'instant elle améliore que le comportement des citations pour qu'il soit plus proche de ce que l'on a l'habitude (on peut revenir à la citation dans laquelle la citation est contenue, et on peut mettre des citations à chaque élément d'une liste). Dans le futur cette flag permettra aussi de supporter les tableaux, le texte barré et le fonctionnement habituel des blocs de code.
Citer : Posté le 13/07/2026 22:58 | #
Je suis en train d'en faire une nouvelle version plus propre (et aussi plus performante), en ne faisant plus attention à être compatible avec ce vieux parser de markdown. C'était débile.
Avec le nouveau convertisseur je pourrais facilement convertir mon tutoriel de jeu de pong avec le fxsdk
Citer : Posté le 19/07/2026 21:40 | #
La nouvelle version que j'ai annoncé il y a quelque jours marche vraiment très mal, donc j'ai codé encore une autre version en Perl (c'était fun, j'avais encore jamais codé dans ce langage de programmation).
J'ai marqué les bugs et fonctionnalités manquantes en haut du code.
Voici le dépôt de cette nouvelle version : https://github.com/mibi88/md2bb.pl.
Le fichier de test est converti correctement :
Header 2
Header 3
Header 4
Header 5
Header 6
italic (*) bold (**)
strikethroughThis is a paragraph
with a line break.
Example Web site
return 0;
}
A test of inline code *test*, *!
Lists:
Complicated lists:
---
with a line break
The prototype of malloc:
Yet another quote
And the first quote continues
Another quote
Alignment
Citer : Posté le 24/07/2026 23:59 | #
md2bb supporte maintenant toute les fonctionnalités prévues ! Les bugs de la première version ont aussi été corrigés.
Il est aussi possible d'échapper le BBCode contenu dans le fichier markdown avec le caractère Unicode « gluon de mots » en assignant à la variable ESCAPE_BBCODE une valeur non-nulle.
Voici le fichier test converti avec la dernière version de md2bb.pl :
Header 2
Header 3
Header 4
Header 5
Header 6
italic (*) bold (**)
strikethroughMixing formatting: italic bold but not italic
anymore.Setext style header 1
Setext style header 2
This is a paragraph
with a line break.
Example Web site
return 0;
}
A test of inline code *test*, *!
Lists:
Complicated lists:
with a line break
The prototype of malloc:
Yet another quote
And the first quote continues
Another quote
strikethroughJe vais mettre à jour le post principal.
Et on finit par un petit @RDP