ypack gallery Plugins YEditor  ·  Télécharger YScript  ·  Télécharger YEditor

← Tous les paquets

markdown v0.1.0

Markdown module for YScript, backed by Markdig

Installation
yes.exe ypack install markdown@0.1.0
AuteurYan Grenier
Publié le2026-08-15T13:58:25+00:00
Checksumsha256:533b4dde69996f34ab4e0ac642c620701feec082d42ea6c851a32d31f27db5d9
Moteur requis
yscript >=0.5.0
Fournit module

Dépendances

Aucune dépendance.

Téléchargement

Archive .zip de la version 0.1.0

Historique des versions

Version Date
0.1.0 (dernière) 2026-08-15T13:58:25+00:00

Documentation

Module markdown

Le module markdown convertit du texte markdown en HTML, en texte brut, ou vers un markdown normalisé, en s'appuyant sur Markdig, une bibliothèque .NET conforme CommonMark avec un riche jeu d'extensions optionnelles (tableaux, notes de bas de page, listes de tâches, etc.).

local markdown = require("markdown")

local html = markdown.tohtml("# Titre\n\nDu texte en **gras**.")
print(html)
--> <h1>Titre</h1>
--> <p>Du texte en <strong>gras</strong>.</p>

Vue d'ensemble

FonctionDescription
markdown.tohtml(text [, extensions])Convertit du markdown en HTML
markdown.totext(text [, extensions])Convertit du markdown en texte brut (mise en forme retirée)
markdown.normalize(text [, extensions])Réécrit du markdown sous une forme normalisée

Les trois fonctions retournent une chaîne, et acceptent en argument 2 (optionnel) une chaîne d'extensions Markdig — voir « Extensions » ci-dessous. Sans argument 2, seul CommonMark de base est actif (pas de tableaux, pas de notes de bas de page, etc.).


markdown.tohtml(text [, extensions])

Convertit text (markdown) en HTML.

print(markdown.tohtml("Un lien : [YScript](https://example.com)."))
--> <p>Un lien : <a href="https://example.com">YScript</a>.</p>

print(markdown.tohtml("| a | b |\n|---|---|\n| 1 | 2 |", "pipetables"))
--> <table>...</table>

markdown.totext(text [, extensions])

Convertit text (markdown) en texte brut : la mise en forme (emphase, titres, liens, ...) est retirée, seul le contenu textuel est conservé.

print(markdown.totext("# Titre\n\nDu texte en **gras**, et un [lien](https://example.com)."))
--> Titre
--> Du texte en gras, et un lien.

markdown.normalize(text [, extensions])

Réécrit text (markdown) sous une forme normalisée (espacement et marqueurs d'emphase cohérents), sans passer par le HTML. Utile pour reformater un fichier .md de façon homogène.

print(markdown.normalize("Titre\n=====\n\n*  item 1\n*  item 2"))
--> # Titre
-->
--> * item 1
--> * item 2

Extensions

Par défaut, seul CommonMark (la spécification de base du markdown) est actif. Les extensions Markdig, désactivées par défaut, s'activent via l'argument extensions : une chaîne contenant un ou plusieurs noms d'extension séparés par +.

markdown.tohtml(text, "advanced")                 -- toutes les extensions "avancées" courantes
markdown.tohtml(text, "pipetables+autolinks")      -- seulement celles-ci

* marque les extensions déjà incluses dans advanced — inutile de les combiner explicitement avec advanced, seulement pour les activer seules ou avec d'autres extensions hors advanced.

NomEffet
advancedactive d'un coup le jeu d'extensions "avancées" ci-dessous marquées *
pipetables *tableaux au format GitHub (| a | b |)
gridtables *tableaux au format "grid table" (bordures ASCII)
footnotes *notes de bas de page ([^1])
footers *bloc de pied de document
citations *citations (""texte"")
attributes *attributs génériques sur les éléments ({#id .classe})
abbreviations *abréviations (*[HTML]: HyperText Markup Language)
emojisémojis et smileys (:smile:, :-))
definitionlists *listes de définitions
customcontainers *conteneurs personnalisés (::: nom ... :::)
figures *figures avec légende
mathematics *formules mathématiques ($...$, $$...$$)
bootstrapclasses CSS Bootstrap sur certains éléments générés
medialinks *liens vers médias (audio/vidéo/iframe) rendus en balises adaptées
smartypantsremplacement typographique (guillemets, tirets, points de suspension)
autoidentifiers *identifiants générés automatiquement sur les titres (ancre #titre)
tasklists *listes de tâches (- [ ], - [x])
diagrams *blocs de diagrammes (mermaid, nomnoml)
nofollowlinksajoute rel="nofollow" aux liens générés
noopenerlinksajoute rel="noopener" aux liens générés
noreferrerlinksajoute rel="noreferrer" aux liens générés
nohtmldésactive le HTML brut inclus dans le markdown source
yamlreconnaît (sans le rendre) un bloc d'en-tête YAML (---)
autolinks *détecte automatiquement les URLs/adresses email en texte brut
emphasisextras *marqueurs d'emphase supplémentaires (souligné, barré, ...)
listextras *numérotation de liste étendue (a., i., ...)
hardlinebreakun retour à la ligne simple produit un saut de ligne (<br>)
alerts *blocs d'alerte GitHub (> [!NOTE], > [!WARNING], ...)

Un nom d'extension inconnu (typo, extension inexistante) fait lever une erreur script.

local ok, err = pcall(markdown.tohtml, text, "not-an-extension")
if not ok then
    print("extensions invalides : " .. err)
end

Exemple complet

local markdown = require("markdown")

local doc = [[
# Notes

Une liste de tâches :

- [x] Écrire le module
- [ ] Écrire les tests

| Fonction | Fait |
|----------|------|
| tohtml   | oui  |
| totext   | oui  |
]]

print(markdown.tohtml(doc, "tasklists+pipetables"))
print(markdown.totext(doc))