@mostajs/markdown-html
v0.1.2
Published
Rendu Markdown → HTML zéro dépendance, sans build : titres, listes, tableaux, code, citations, liens, cases à cocher + table des matières. Tout est échappé (le HTML d'un .md n'est PAS interprété). Pour servir un README comme page d'aide.
Maintainers
Readme
@mostajs/markdown-html
Auteur : Dr Hamid MADANI [email protected] · AGPL-3.0-or-later · zéro dépendance · ESM, sans build
Rendu Markdown → HTML pour servir un README.md comme page d'aide dans une app.
import { markdownPage, mdToHtml, MD_CSS } from '@mostajs/markdown-html';
const html = markdownPage(await readFile('README.md', 'utf8'), { title: 'Aide' });Périmètre (assumé)
Titres (+ ancres, table des matières), paragraphes, gras/italique/code/~~barré~~, listes à puces, numérotées et cases à cocher, blocs de code, tableaux (avec défilement horizontal), citations, règles, liens. Pas un moteur CommonMark complet : un rendu de doc interne, pas un CMS.
Sécurité
- Le HTML d'un
.mdn'est jamais interprété : tout est échappé. Un<script>collé dans un document s'affiche, il ne s'exécute pas. Un README vient d'un dépôt, d'un import ou d'un collègue — on ne lui fait pas confiance. - Un lien
javascript:n'est pas rendu cliquable (seulshttp(s),mailto:et les chemins relatifs le sont).
Thème
MD_CSS s'appuie sur les tokens de l'app s'ils existent (var(--brand), var(--text), var(--focus-ring), var(--radius-lg)…), avec des replis sobres sinon. Propriétés logiques (padding-inline-start, border-inline-start) : compatible RTL.
API
| Export | Rôle |
|---|---|
| mdToHtml(md) | { html, toc } — le rendu + la table des matières (titres de niveau 2) |
| markdownPage(md, { title, head, toc, lang, dir }) | document HTML complet |
| inline(text) | fragments en ligne seuls |
| MD_CSS · esc(s) | feuille de style · échappement |
14 tests verts (@mostajs/mjs-unit) : npm test.
