Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » WIP: md2bb - un convertisseur en ligne de commande de Markdown vers du BBCode
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

WIP: md2bb - un convertisseur en ligne de commande de Markdown vers du BBCode

Posté le 26/08/2024 18:09

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.

Fichier joint


Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

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.
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

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
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

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
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 27/08/2024 11:04 | #


Senpai découvre Pandoc
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

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) :

Conversion du fichier test
Cliquer pour enrouler
Some markdown

- Some markdown

Some markdown

Some markdown - Some markdown -- Some markdown
==============
Some markdown
==============
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

==============


==============


==============


==============


==============


==============


code


==============


code
    indented
with
    tabs


==============


code


==============


Multiline
  piece
of
  code


==============


Multiline
  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](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "Optional title")

![Alt text][id]

[id]: url/to/image "Optional title attribute"

http://example.com/

Email address, replace the 【arobase】 with a @ and ▶ with a . : address【arobase】example▶com (Email address, replace the 【arobase】 with a @ and ▶ with a . : address【arobase】example▶com)

\literal asterisks\

Escaping \\\\*\_\{\}\[\]\(\)\#\+\-\.\!test

  1. List
  2. List
  3. List
  4. List
  5. List


==============


  • list
  • list
  • list


  • list
  • list
  • list
  • list
  • list
  • list


  • mixing elements
    1. hello
    2. bye
  • numbers and dots
    1. something
    2. something else
    3. indenting further


  • list with elements that span across multiple lines
  • or that fit on a single one.
  • they may contain some formatted text.
  • It also contains line
    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

  • a
    • b
    • c
    • d
  • e
    • f
    • g
    • h
    • i
      • j
      • k
      • l
      • m
        • n
        • o
        • p
        • q
          • r
          • s
          • t
          • u
            • v
            • w
            • x
            • y
              • z


1.test

tes

  • test
    • test


==============


* 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
             * mixing tabs and spaces
                 * mixing tabs and spaces


==============


List type tests

  1. numbered
  2. numbered


==============


  • unnumbered
  • unnumbered


==============


Extra spaces test

  • extra spaces test in lists


Référence
Cliquer pour enrouler


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.
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

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 .
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

Citer : Posté le 28/08/2024 14:58 | # | Fichier joint


J'ai ajouté le support de citations dans les listes :

  • long list with quotes
    quote
    quote
    quote
  • another quote quote quote
  • something else


is the text still correct ?

  • another test
    quote


is the text still correct ?

Markdown :

* long list with quotes
  > quote
  >> quote
  >>> quote
* another quote
  > quote
  >> quote
* something else

is the text still correct ?

* another test  
  > quote

is the text still correct ?


Pour comparer :


Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message
Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

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.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 242 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd