Carnet Wiki

convertir spip en markdown

Version 3 — 5 months ago JLuc

Avec le futur recours à github pour les repos GIT de SPIP et ses plugins, les développeurs vont avoir de plus envie d’utiliser md comme syntaxe de mise en forme des textes, et de délaisser les raccourcis SPIP.

Par ailleurs, [un spip utilisant md->https://github.Par ailleurs , un spip utilisant md bénéficiera plus directement des nombreuses librairies développées pour md. Il existe déjà [un plugin ->https://github.com/Cerdic/markdown] ] Il existe déjà un plugin permettant d’utiliser les raccourcis md dans les nouveaux textes. Ce plugin utilise la librairie parsedown. Voir le readme.

Dans la logique d’immersion des singularités de SPIP dans le grand bain mondialisé d’inter-développements php, il sera utile de disposer d’un convertisseur raccourcis-SPIP vers l’un des dialectes md le plus approprié. On pourra ainsi utiliser tout ce qui est déjà implémenté partout, et ne passer du temps qu’à peaufiner les trucs spécifiques à SPIP.

Limitations de markdown

Syntaxe
La syntaxe markdown de base est insuffisante pour transcrire toutes les subtilités de la langue SPIP :

-  tableaux : toujours un titre et pas de colspan

Il y aura de toute façon des choses à ajouter aux implémentations :
-  si c’est CodeMirror il faudra faire un format “MarkdownSPIP” qui inclut la reconnaissance markdown existante mais en lui ajoutant le parsing des modèles et des liens
-  si c’est ProseMirror il faudra de même ajouter la prise en compte des modèles et liens, dans les deux sens (parsing depuis la syntaxe vers le format pivot JSON, et inversement pivot vers texte en syntaxe à enregistrer en base)

Qualité typographique
Aprés interprétation des raccourcis (“propre”), SPIP opère une mise en beauté typographique (“typo”). Même aprés un passage à MD, il faut dans tous les cas continuer de post-process le texte avec une librairie (librairie SPIP ou maintenue ailleurs dans la communauté PHP) de correction typographique suivant les langues.

-  Librairie qui va bien : https://github.com/jolicode/JoliTypo + explications : https://jolicode.com/blog/la-micro-typographie-appliquee-sur-le-web

Dialectes markdown et comparaison des syntaxes

Basiquement la syntaxe markdown : https://fr.wikipedia.org/wiki/Markdown

{truc} => *truc*
{{truc}} => **truc**
{{{truc}}} => ### truc (h3)

Comparaison des syntaxes : http://romy.tetue.net/syntaxe-spip-versus-markdown
À retenir : absence de recouvrement des syntaxes. Aucun raccourci SPIP ne sert à autre chose dans Markdown et réciproquement.

Dialectes markdown
De nombreux dialectes markdown viennent compléter la syntaxe markdow.

-  md gitlab : https://gitlab.com/help/user/markdown
-  md parsedownextra : https://www.markdownguide.org/extended-syntax
-  GFM GitHub Flavored Markdown Spec https://github.github.com/gfm/

multimarkdown a une syntaxe enrichie : https://rawgit.com/fletcher/MultiMarkdown-6-Syntax-Guide/master/index.html qui permet les colspans : http://fletcher.github.io/MultiMarkdown-4/tables

Quelques librairies utilisant markdown


-  parsedown : better markdown parser in php. Parsedown ne reconnait que la syntaxe simple de markdown https://www.markdownguide.org/basic-syntax
-  éditeurs online CodiMD - Realtime collaborative markdown notes on all platforms. Accepte le dialecte GFM très répandu (github flavoured markdown).

-  Parsedown-extra reconnait une syntaxe étendue de markdown et il y a possibilité d’enrichir le plugin avec la librairie parsedown-extra qui permet d’utiliser une syntaxe plus évoluée: gestion des tableaux, blocks de code et colorisation, Notes de pied de page, Ancres sur titre personnalisées, Liste de tâches, Mots barrés (strike)

-  Multimarkdown

-  markitup : universal markup jQuery editor
-  codemirror : versatile javascript text editor
-  prosemirror : toolkit for building rich-text editors on the web
-  simplemde.com : éditeur wysiwyg intéressant

-  Markdownlint lib js qui permet de valider le syntaxe markdown en temp réel. Peut s’utiliser dans vscode.

-  Twig Markdown Extension : Markdown to HTML and HTML to Markdown filters for Twig and a Symfony bundle.

-  https://gitlab.com/mister-graphx/little/little.formatters : Interface et classe de chargements de formatters

Participants

Cerdic, Eric, Rastapopoulos (chaud patate), JLuc, Pierrox, RealEt, MrGraphix