Maison  >  Questions et réponses  >  le corps du texte

Javascript convertit Markdown/Textile en HTML (idéalement, renvoie Markdown/Textile)

<p>Il existe plusieurs bons <strong>éditeurs</strong> Javascript pour Markdown / Textile (par exemple : http://attacklab.net/showdown/, celui que j'utilise actuellement), mais ce dont j'ai besoin, c'est une fonction Javascript pour convertir des chaînes entre Markdown / Textile -> HTML. </p> <p>Quelle est la meilleure approche ? (Idéalement, il devrait être compatible avec jQuery - par exemple <code>$("#editor").markdown_to_html()</code>)</p> <p><strong>Edit : </strong>Une autre façon de dire cela est que je recherche les éléments <code>textilize()</code> /code> ; Implémentation Javascript> Assistant de texte</p>
P粉295616170P粉295616170422 Il y a quelques jours562

répondre à tous(2)je répondrai

  • P粉403821740

    P粉4038217402023-08-25 17:37:48

    J'ai pensé qu'il serait intéressant de lister ici les solutions JavaScript avec leur taille réduite (non compressée) et leurs avantages/inconvénients. La taille compressée du code minifié représente environ 50 % de la taille non compressée. Cela se résume à :

    • Si vous souhaitez une assistance complète et avez besoin d'utilisateurs, utilisez markdown-it (104 Ko) pour l'édition ou des documents arbitraires, mais ne vous souciez pas beaucoup de la taille/bande passante.
    • Utilisez mon propre drawdown (1,3 Ko) si vous avez besoin d'une qualité et d'un support de table assez élevés, mais que vous souhaitez être léger et n'avez besoin d'aucune fonctionnalité autre que la conversion, ou si vous contournez tous les cas extrêmes.
    • Si vous avez besoin de fonctionnalités uniques telles que la sécurité ou l'évolutivité, utilisez l'une des autres.

    Tous utilisent la licence MIT et la plupart sont sur npm.

    • markdown-it : 104 Ko. Alimentation de StackExchange depuis la migration de CommonMark. Suit la spécification CommonMark, désormais plus ou moins la référence ; prend en charge les extensions de syntaxe ; produit une sortie sécurisée par défaut. Rapidement ; tout aussi puissant que Showdown, mais à une échelle beaucoup plus grande. Possède des tonnes de fonctionnalités (comme le défilement synchronisé). C'est aussi la base de http://dillinger.io/.

    • Showdown : 28 Ko. Bénéficie d'un support complet de CommonMark et était l'ancien étalon-or nettement plus petit que Markdown-It mais plus lent. C'est la base de la page suivante.

    • Page suivante : 8 Ko. Fournir une prise en charge de StackExchange avant la migration de CommonMark. Il est très puissant, mais manque de tableaux, de listes de définitions, de notes de bas de page, etc. En plus du script de conversion de 8 Ko, il fournit également des scripts d'édition et de nettoyage.

    • Réduit : 1,3 Ko. Divulgation complète, je l'ai écrit. Fonctionnalité plus large que tout autre convertisseur léger ; gère la plupart des spécifications CommonMark, mais pas toutes. Non recommandé pour l'édition par les utilisateurs, mais utile pour présenter des informations dans des applications Web. Pas de HTML en ligne.

    • tag  : 19 Ko. Complet ; testé par rapport à la suite de tests unitaires ; prend en charge les règles lexer personnalisées.

    • micromarkdown : 5 Ko. De nombreuses fonctionnalités sont prises en charge, mais certaines fonctionnalités courantes sont manquantes, comme les listes non ordonnées utilisant * , et certaines fonctionnalités courantes qui ne font pas strictement partie de la spécification, comme des blocs de code isolés. De nombreuses erreurs, générant des exceptions sur la plupart des documents plus longs. Je pense que c'est expérimental.

    • nano-markdown : 1,9 Ko. La portée des fonctionnalités est limitée à ce que la plupart des documentations utilisent ; plus puissante que le micromarkdown, mais pas parfaite ; elle utilise ses propres tests unitaires très basiques. Assez robuste, mais problématique dans de nombreux cas extrêmes.

    • mmd.js : 800 octets. Le résultat de nos efforts pour créer le plus petit analyseur possible encore utilisable. Un petit sous-ensemble est pris en charge ; la documentation doit être adaptée à cela.

    • markdown-js : 54 Ko (impossible de télécharger la version minifiée ; peut être minifiée) à ~ 20 Ko). Cela semble complet et comprend des tests, mais je ne le connais pas très bien.

    • meltdown : 41 Ko (ne peut pas être téléchargé une fois minifié ; peut être réduit à environ 15 Ko). Plugin jQuery ; Markdown Extra (tableaux, listes de définitions, notes de bas de page).

    • unified.js : Varie, 5-100 Ko. Un système basé sur un plugin pour la conversion entre HTML, Markdown et Prose. En fonction des plugins dont vous avez besoin (vérification orthographique, coloration syntaxique, nettoyage des entrées), la taille du fichier varie. Utilisez probablement plus le côté serveur que le côté client.

    répondre
    0
  • P粉592085423

    P粉5920854232023-08-25 09:13:59

    Pour Markdown -> HTML, il y a Showdown

    StackOverflow lui-même utilise le langage Markdown pour les questions-réponses. L'avez-vous essayé pour voir comment cela fonctionne ?

    Eh bien, il semble utiliser PageDown, qui est disponible sous licence MIT

    QuestionExiste-t-il une bonne bibliothèque ou un bon contrôle Javascript Markdown ? et ses réponses peuvent également être utiles :-)


    Bien sûr, un éditeur complet n'est pas exactement ce que vous demandez ; mais ils doivent utiliser une fonction pour convertir le code Markdown en HTML et, en fonction de la licence de ces éditeurs, vous pourrez peut-être réutiliser cette fonction ; ...

    En fait, si vous regardez de plus près Showdown, dans son code source (fichier showdown.js) vous trouverez cette partie du commentaire :

    //
    // Showdown usage:
    //
    //   var text = "Markdown *rocks*.";
    //
    //   var converter = new Showdown.converter();
    //   var html = converter.makeHtml(text);
    //
    //   alert(html);
    //
    // Note: move the sample code to the bottom of this
    // file before uncommenting it.
    //

    Ce n'est pas la syntaxe jQuery, mais devrait être facile à intégrer dans votre application ;-)


    Concernant le textile, il semble difficile de trouver quoi que ce soit d'utile :-(


    HTML -> Markdown, par contre, j'imagine que les choses pourraient être un peu plus difficiles...

    Ce que je ferais, c'est stocker à la fois Markdown et HTML dans le magasin de données (base de données ?) de mon application et utiliser l'un pour l'édition et l'autre pour le rendu... prendrait plus de place, mais semble mieux que "décrypter". Moins risqué "HTML ...

    répondre
    0
  • Annulerrépondre