Giter Site home page Giter Site logo

markdown's Introduction

MarkDown pour SPIP

Ce plugin permet d'utiliser la syntaxe MarkDown dans un article SPIP. Le texte à interpréter en MarkDown doit être entre <md>...</md>

Les corrections typographiques de SPIP (liées à la langue) sont appliquées dans le MarkDown.

Les raccourcis de liens SPIP et les modèles sont interprétés dans le MarkDown, ce qui permet d'écrire des liens indifférement avec la syntaxe SPIP ou la syntaxe MarkDown.

Les raccourcis de notes de bas de page de SPIP sont également interprétés dans le MarkDown, les notes sont numérotées continuement, indépendamment qu'elles soient dans le SPIP ou dans le MarkDown.

Un formulaire de configuration permet de choisir le fonctionnement du plugin :

  • Appliquer la syntaxe SPIP par défaut et la syntaxe MarkDown dans les blocs <md>..</md>
  • Appliquer la syntaxe MarkDown par défaut et la syntaxe SPIP dans les blocs <spip>..</spip> Dans ce dernier cas les contenus existant ne sont pas migrés, et peuvent être rendus de manière incorrecte.

Tests unitaires

Le plugin repose sur la librairie http://parsedown.org/ dont il reprend les tests unitaires qui sont tous valides dans un raccourci <md>..</md>, ce qui garanti qu'on ne perturbe pas la syntaxe MarkDown par la prise en charge de la typographie ainsi que des raccourcis de lien SPIP (Tests parsedown).

Un jeu de tests complémentaire concerne aussi le respect de la syntaxe MarkDown, mais porte sur des cas limites générés par l'interaction entre le moteur SPIP et le moteur Parsedown (Tests MarkDown).

Un jeu de tests unitaires assure que le corrections typographiques sont bien appliquées là et uniquement là où c'est attendu dans le texte au format MarkDown (Tests MarkDown_typo).

Un jeu de tests unitaires concerne la prise en charge des raccourcis de liens SPIP dans le MarkDown (Tests MarkDown_liens_spip).

Deux jeux de tests unitaires concernent l'utilisation de modeles SPIP de type inline et block pris en charge MarkDown tout en préservant le paragraphage (cas typique des modeles de document).

TODO

  • Proposer un scenario de migration des contenus d'un site existant pour utiliser la syntaxe MarkDown par defaut

  • Adapter la prise en charge de la syntaxe dans le porte-plume (markitup est initialement conçu pour MarkDown donc il s'agit surtout de pouvoir switcher de syntaxe manuellement ou automatiquement)

markdown's People

Contributors

cerdic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

markdown's Issues

Conflit avec balises <code>

Les balises d'insertion de syntaxe Markdown <md></md> ne peuvent pas être mises entre 2 balises <code></code>, pour des besoin d'explication du plugin par ex.

Au lieu d'afficher le contenu entre les deux balises, <code><md>…</md></code> donne le résultat suivant :
<span class="base64mdblocs" title="PG1kPuKApjwvbWQ+"></span>

warning strpos empty needle markdown_options.php line 366

Je suis tombé par hazard sur ce warning, ayant un site ou certains des articles sont en spip avec AUTOBR désactivé, et les autres articles en markdown

// pas d'autobr introduit par paragrapher
        if (_AUTO_BR AND strpos($md,_AUTOBR)!==false){
            $md = str_replace(_AUTOBR,'',$md);
        }

Génère un warning strpos empty needle, si AUTOBR est desactivé dans mes_options

  // http://www.spip.net/fr_article5617.html
  define('_AUTOBR', '');`.

Rajouter ce test évite le warning pour ma part

// Si AUTOBR est Activé
                if(_AUTO_BR!==''){
                    // pas d'autobr introduit par paragraphe
                    if (_AUTO_BR AND strpos($md,_AUTOBR)!==false){
                            $md = str_replace(_AUTOBR,'',$md);
                    }
                }

Pb avec un texte rédigé par 'atom'

Hi Cedric,

my test configuration

  • host = CentOS7.3/virtualbox 5.26
  • guest = CentOS7.3/PHP7.1/mariadb@latest
  • SPIP 3.1.6 [23598] working

What I'm doing

Thanks for proposing this nice plugin for SPIP. I'm not sure it is an issue, but I prefer to ask.
I make some test over the major CMS of the market (NodeJS/Laravel/HTML5...) in order to get who will be the best for my needs. And I love SPIP. But ...
I have written a text with atom, the markdown text editor from github. Which I love to use. And I would like to see it directly under SPIP.
But when I make a copy/paste from him directly into the article editor of SPIP, things goes wrong.
I add a <md> ... </md> at the begining and the end my text.
But I have a continous turning logo indicating me spip is working on my text. And nothing happen.

Do you know what I'm doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.