Files
new-marp-project/README.md
T
2026-09-21 07:54:32 +00:00

4.0 KiB

new-marp-project.sh

Script Bash pour générer un projet Marp prêt à l'emploi, en un seul appel. Il installe la configuration (Marp CLI + extension VS Code), les thèmes CSS et un fichier de départ.

Objectif

Démarrer un projet Marp sans aucune configuration manuelle, au choix :

  • slides — un diaporama classique 16:9 (thème custom) ;
  • a4 — un document au format A4 (thème custom-a4), conçu pour les exports PDF et DOCX.

Prérequis

Outil Requis ? Rôle
bash Oui exécution du script
Marp CLI Oui exports PDF / PPTX / HTML
Node.js Oui (via npx) fournit Marp CLI
pandoc Non export DOCX (projets a4 uniquement)
VS Code (+ extension Marp) Non préview et exports depuis l'éditeur

Mode d'emploi

Copier le script puis l'exécuter depuis le dossier voulu :

# mode 1 — argument (recommandé)
./new-marp-project.sh slides mon-dossier
./new-marp-project.sh a4    mes-docs

# mode 2 — interactif
./new-marp-project.sh

# aide
./new-marp-project.sh --help

Le script refuse d'écrire dans un dossier existant non vide.

Fichiers générés

Type slides :

mon-dossier/
├── .marprc.json              # config Marp CLI (themeSet)
├── slides.md                 # diapo de départ (theme: custom)
└── .vscode/
    ├── settings.json         # config extension VS Code (markdown.marp.themes)
    └── custom.css            # thème "custom"

Type a4 :

mes-docs/
├── .marprc.json
├── document.md               # page de départ (theme: custom-a4)
├── pandoc-strip-hr.lua       # filtre pandoc (supprime les "---" dans le DOCX)
└── .vscode/
    ├── settings.json
    ├── custom.css            # thème "custom" (base)
    └── custom-a4.css         # thème "custom-a4" (importe + surcharge custom)

Il ne reste plus qu'à ouvrir slides.md ou document.md dans VS Code et lancer le preview Marp.

Exports

# PDF (slides) — format 16:9
npx @marp-team/marp-cli mon-dossier/slides.md --pdf

# PPTX
npx @marp-team/marp-cli mon-dossier/slides.md --pptx

# PDF (a4) — format A4 exact
npx @marp-team/marp-cli mes-docs/document.md --pdf

# DOCX (a4) — pandoc, sans les traits "---" des séparateurs de diapos
pandoc mes-docs/document.md --lua-filter=mes-docs/pandoc-strip-hr.lua -o mes-docs/document.docx

Les thèmes sont déjà déclarés dans .marprc.json : aucun paramètre --theme-set n'est nécessaire.

Infos utiles

Deux fichiers de config, deux usages

  • .marprc.json (clé themeSet) — lu par Marp CLI uniquement (exports).
  • .vscode/settings.json (clé markdown.marp.themes) — lu par l'extension VS Code uniquement (préview).

Les deux sont générés : sans eux, le thème custom / custom-a4 ne serait pas reconnu.

Le thème custom-a4

  • Déclare la taille de page 210mm x 297mm sur <section> (Marpit s'en sert aussi pour le PDF exporté).
  • Réduit le corps de texte à 11pt (le thème default impose 29px, prévu pour des diapos 1280x720) et ajuste les titres : h1 ~16pt, h2 ~13.8pt, h3 ~12pt, h4 ~11pt.
  • Importe custom via @import : toute modification de custom.css se répercute automatiquement, sans duplication.

Le filtre pandoc-strip-hr.lua

Dans un fichier Marp, les --- séparent les diapos. Sans filtre, pandoc les rend comme des traits horizontaux dans le DOCX ; le filtre les supprime.

Marp CLI : petites commandes utiles

# Préview navigateur
npx @marp-team/marp-cli mon-dossier/slides.md -s

# Export avec un chemin de sortie différent
npx @marp-team/marp-cli mon-dossier/slides.md -o /tmp/export.pdf

Structure du dépôt

.
├── README.md                 # ce fichier
└── new-marp-project.sh       # le script