DJONTSO V. [email protected]443 downloadsMerge & doc. export everything — embeds, Zotero/Pandoc citations, Mermaid, equations, cross-refs — into a unique .tex file. Compile to PDF, DOCX, or InDesign. WASM engine, zero build step.

Merge everything. Convert anywhere. Moteur WASM embarqué dans Obsidian. Aucune étape de compilation, aucun binaire à installer.
MergDown2TeX transforme une note Obsidian en un document prêt à publier (LaTeX, PDF, DOCX, InDesign). Tout est fusionné automatiquement :
| Entrée | Sortie |
|---|---|
[[Wikilinks]] |
\hyperref[...]{} références croisées |
![[Notes embarquées]] |
Expansion récursive contenue |
![[image.png]] |
\includegraphics{} |
@citation |
\citep{} + flèches bidirectionnelles (↑↓) |
$math$ / $$math$$ |
Équations LaTeX |
| Blocs Mermaid | Rendu automatique en PNG (client-side) |
> [!note] admonitions |
environnements tcolorbox |
| Note de bas de page, tableaux, listes | Support LaTeX complet |
Ancres de blocs (^table--block-…) |
Objets Word/LaTeX numérotés et référencés |
Formats de sortie :
┌─────────────────────────────────────────────────────────┐
│ Obsidian Note │
│ ├── [[Note A]] ──→ \hyperref + expansion │
│ ├── ![[Note B]] ──→ recursive expansion │
│ ├── ![[image.png]] ──→ \includegraphics{} │
│ ├── @citation ──→ \citep{} + arrows ↑↓ │
│ ├── $math$ ──→ LaTeX equation │
│ └── ```mermaid``` ──→ PNG (bundle embarqué) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ WASM Engine (embarqué dans main.js, Base64) │
│ ├── Markdown → LaTeX conversion (moteur Rust/WASM) │
│ ├── Embed expansion + wikilinks + ancres de blocs │
│ ├── Citation extraction + navigation (↑↓) │
│ └── Mermaid → PNG (mermaid.min.js embarqué) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Compilation (auto, sans installation) │
│ ├── pandoc.wasm : .tex → .docx │
│ ├── typst.wasm : .typ → .pdf │
│ └── (option) pdflatex + Podman : .tex → .pdf (PC) │
└─────────────────────────────────────────────────────────┘
| Étape | Ce qu'il faut | Statut |
|---|---|---|
| Markdown → LaTeX | Aucun (moteur WASM embarqué dans main.js) |
Aucune |
| LaTeX → PDF (défaut) | pandoc.wasm + typst.wasm (auto-téléchargés) |
Aucune |
| LaTeX → PDF (natif, option PC) | TeX Live + Podman/Docker | Optionnelle |
| LaTeX → DOCX | pandoc.wasm (auto-téléchargé) |
Aucune |
| Rendu Mermaid | Bundle embarqué dans main.js |
Aucune |
pandoc.wasm (59 MB), 28 MB) et leurs polices sont auto-téléchargés dans typst.wasm (wasm/ au premier export (bouton manuel dans les réglages sinon).
PDF natif LaTeX (optionnel, PC) — construit le conteneur :
podman build -t vlatex-env -f Dockerfile.vlatex . # ou : docker build -t vlatex-env -f Dockerfile.vlatex .
Tous les zips sont servis par la release bundle (assets de release GitHub → bande passante illimitée) ainsi que par ce site.
| Archive | Contenu | Release (illimitée) | Site (miroir) |
|---|---|---|---|
mergdowntotex_bundle.zip (~43 MB) |
Tout-en-un : plugin complet + vault exemple | Télécharger | Site |
mergdowntotex.zip (~36 MB) |
Plugin complet (main.js, manifest.json, wasm/, resources/) |
Télécharger | Site |
full_manual_repport_exp.zip (~6 MB) |
Vault exemple seul (déjà inclus dans le bundle) | Télécharger | Site |
pandoc_wasm.zip (~15 MB) |
Moteur DOCX : pandoc.wasm compressé (~59 MB décompressé) — pour un vault sans wasm/ |
Télécharger | Site |
typst_wasm.zip (~10 MB) |
Moteur PDF : typst.wasm seul, compressé (~28 MB décompressé) — les polices sont dans un zip à part |
Télécharger | Site |
typst_fonts.zip (~8 MB) |
Les 17 polices Typst, compressées, dans un zip séparé (~13 MB décompressés) — nécessaires au rendu PDF | Télécharger | Site |
mergdowntotex/ (à copier dans .obsidian/plugins/) et example_vault/ (vault prêt à ouvrir).mergdowntotex/ dans .obsidian/plugins/.pandoc.wasm (typst.wasm (pandoc_wasm.zip (typst_wasm.zip (typst_fonts.zip (main.js et manifest.json depuis Releases (ou utilisez le bundle ci-dessus).obsidian/plugins/mergdowntotex/main.js (~3.7 MB) embarque le moteur de conversion WASM en Base64. Le rendu Mermaid (mermaid.min.js) est auto-téléchargé au premier export, et les moteurs pandoc.wasm/typst.wasm aussi.
mergdowntotex/ ← dossier du plugin (id = mergdowntotex)
├── main.js ~3.7 MB ← plugin + moteur WASM embarqué (Base64)
├── manifest.json 1.2 KB ← métadonnées
├── wasm/ ← auto-téléchargé (pandoc.wasm, typst.wasm, fonts)
└── resources/ ← ressources (CSL/BIB auto-hébergés, mermaid.min.js)
Vault exemple : le zip
full_manual_repport_exp.zip(ou le dossierexample_vault/du dépôt) contient un vault prêt à l'emploi avec le plugin déjà installé (.obsidian/plugins/mergdowntotex/). Cette installation est strictement identique à celle de la release (mêmesmain.js,manifest.json,wasm/,resources/).
| Commande | Action |
|---|---|
Convertir la note active en LaTeX (.tex) |
Génère le .tex |
Convertir et compiler en PDF |
Génère le PDF (pipeline auto) |
Convertir et compiler en DOCX (Word) |
Génère le Word (Pandoc WASM) |
Générer le Markdown étendu (.expanded.md) |
Génère le Markdown autonome |
Reconvertir le .tex (jumeau) en Markdown |
.tex → Markdown |
Compile le .tex jumeau en PDF |
.tex → PDF |
Compile le .tex jumeau en DOCX |
.tex → DOCX |
Convertit le .tex jumeau en .typ |
.tex → Typst |
Compile le .typ jumeau en PDF |
.typ → PDF |
Aperçu PDF côte-à-côte (md → pdf) |
Aperçu interactif |
ZIP des ressources liées (_exp.zip) |
Archive les ressources |
Raccourci rapide : bouton PDF dans le ruban.
| Pandoc Plugin | Pandoc CLI | Pandoc GUI | MergDown2TeX | |
|---|---|---|---|---|
| Installation requise | Pandoc + TeX Live | Pandoc + TeX Live | Pandoc + TeX Live (GUI) | Aucune (WASM embarqué) |
| Résolution Wikilinks | ❌ | ❌ | ❌ | ✅ |
| Expansion des embeds | ❌ | ❌ | ❌ | ✅ |
| Flèches de citation (↑↓) | ❌ | ❌ | ❌ | ✅ |
| Mermaid → PNG | ❌ | ❌ | ❌ | ✅ |
| Ancres de blocs / objets Word | ❌ | ❌ | ❌ | ✅ |
| Preamble personnalisé | Partiel | Manuel | Manuel | ✅ |
| Sortie InDesign | ❌ | ❌ | ❌ | ✅ |
| Mobile (iOS/Android) | ⚠️ | ⚠️ | ⚠️ | ✅ |
| PAPER libre / zero-install | ⚠️ | ⚠️ | ⚠️ | ✅ |
Pandoc GUI (plugin Obsidian pandoc-gui) fournit une interface de conversion mais requiert toujours Pandoc + un environnement LaTeX externe et ne résout pas les wikilinks/embeds Obsidian natifs.
Le moteur de conversion (et son outillage) est développé dans le projet vlatex. Pour en savoir plus sur vlatex / vlatex wasm et son intégration avec Obsidian :
Release (2 fichiers) :
mergdowntotex/
├── main.js ~3.7 MB ← plugin + moteur WASM embarqué (Base64)
└── manifest.json 1.2 KB ← metadata
main.js embarque :
WASM_BASE64).Le bundle Mermaid (mermaid.min.js) est téléchargé au runtime (CDN/site, ou resources/mermaid.min.js en mode hors-ligne) pour le rendu client-side, y compris sur mobile — il n'est pas embarqué dans main.js.
Les moteurs pandoc.wasm/typst.wasm (trop volumineux pour être embarqués) sont auto-téléchargés dans wasm/ au premier export.
Développement (dans le repo) :
mergdowntotex/
├── main.js ~3.7 MB ← même fichier que la release
├── manifest.json 1.2 KB
├── wasm/
│ ├── pandoc.wasm ~59 MB
│ ├── typst.wasm ~28 MB
│ └── fonts/
└── resources/
├── csl/ ← styles de citation auto-hébergés
└── mermaid.min.js ← bundle Mermaid (offline)
Mermaid : le bundle
mermaid.min.jsest téléchargé au runtime (CDN/site, avecresources/mermaid.min.jsprévu pour le hors-ligne) — il n'est pas encodé en Base64 dansmain.js. scripts/ └── bundle-release.js ← encode WASM → Base64 → injecte dans main.js
**Build release automatisé** par GitHub Actions :
```mermaid
graph LR
A[git tag 1.0.x] --> B[GitHub Actions]
B --> C[bundle-release.js]
C --> D[main.js + WASM]
D --> E[Release]
Zero build step. Moteur WASM embarqué dans main.js à la release.
main.js fait bien ~3.7 MB (un fichier plus petit = build dev sans moteur embarqué)pandoc.wasm / typst.wasm introuvableMIT