Comparatif · Mis à jour le 2026-05-16
L'éditeur Markdown de TaskKit vs Dillinger.io
Les deux outils te laissent taper du Markdown à gauche et voir le HTML à droite. Ils divergent fortement sur ce qui se charge à côté de l'éditeur, sur ce qui traverse le réseau quand tu cliques sur Export, et sur ce que la page fait avant même que tu n'aies tapé. Le résumé ci-dessous est mesuré contre le bundle servi sur dillinger.io et appuyé sur la propre documentation de Dillinger.
Résumé
- Origines tierces au premier paint : Dillinger en charge trois (
cdn.jsdelivr.netpour Monaco,m.servedby-buysellads.compour le SDK de monétisation BuySellAds, etvia.placeholder.compour une image de démo). Le/dev/markdownde TaskKit n'en charge aucune. - Framework pub / sponsoring :
monetization.jsde BuySellAds tourne dès le premier paint, et la queue_bsaest initialisée avec un emplacement de pub danswindow. Nous n'avons pas vu de Google Analytics, GTM ou DoubleClick. TaskKit ne charge aucune analytics, aucune pub, aucun SDK tiers. - Pings backend avant que tu ne tapes : dillinger.io déclenche
/api/github/status,/api/dropbox/status,/api/google-drive/status,/api/onedrive/status, et/api/bitbucket/statusdeux fois chacun au chargement à froid. La page Markdown de TaskKit n'a pas de backend à pinger. - Export PDF : le document de bienvenue de Dillinger le dit lui-même, avec la phrase « PDF export Available Server-rendered ». L'export de TaskKit tourne entièrement dans le navigateur (
html2canvas-pro+pdf-lib, importés dynamiquement à la première utilisation). - Mermaid : TaskKit rend les blocs
```mermaiden direct (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie). Le /guide de Dillinger ne mentionne pas Mermaid. - Là où Dillinger gagne : sync cloud vers cinq fournisseurs, math KaTeX, notes de bas de page, profondeur de l'éditeur Monaco (multi-curseurs, raccourcis vim/emacs), hand-off explicite vers les IA. TaskKit n'embarque rien de tout cela.
La confidentialité, mesurée
Mesuré le 2026-05-16, profil Chrome neuf, aucune extension qui filtre les requêtes. Les chiffres concernent la page d'accueil (l'éditeur lui-même) au premier paint, avant la moindre action utilisateur.
| Action | Dillinger | TaskKit |
|---|---|---|
| Origines tierces au premier paint | 3 (cdn.jsdelivr.net, m.servedby-buysellads.com, via.placeholder.com) | 0 |
| SDK pub / monétisation | BuySellAds (monetization.js ; queue _bsa initialisée avec un emplacement) | Aucun |
| Google Analytics / GTM / DoubleClick | Non détecté au premier paint | Aucun |
| Pings de statut backend (avant toute frappe) | 10 appels vers /api/{github,dropbox,google-drive,onedrive,bitbucket}/status (deux fois chacun) | 0 |
| Enregistrer vers GitHub / Dropbox / Drive / OneDrive / Bitbucket | OAuth via /api/{provider}/callback ; le document passe par le backend de Dillinger | Non proposé. Copier le HTML ou exporter le PDF en local. |
| Export PDF | Rendu serveur (document de bienvenue de Dillinger) | Navigateur seul (html2canvas-pro + pdf-lib ; pas d'upload, pas de dialogue d'impression) |
| Export en HTML stylé | Même chemin d'export de l'application | Bouton Copier le HTML (presse-papier) |
| Envoyer le brouillon à un LLM | « Feed your content directly to ChatGPT, Claude, or any LLM » (page features de Dillinger) | Non intégré. Copier la sortie est à ta charge. |
Une sync cloud via OAuth est un schéma raisonnable pour ce que Dillinger fait. Le contraste n'est pas que le design soit mauvais, c'est que le backend existe tout court, ce qui implique un modèle de session, une gestion de tokens OAuth, et un chemin serveur pour le document. L'éditeur Markdown de TaskKit n'en a pas, parce que rien de ce qu'il fait n'en requiert. Plus sur la manière dont TaskKit traite tes données.
Matrice de fonctionnalités
| Capacité | Dillinger | TaskKit |
|---|---|---|
| Rendu Markdown | ||
| Bases CommonMark (titres, listes, code, liens) | Oui | Oui |
| Tableaux GFM | Oui | Oui (alignement via les deux-points dans la ligne séparatrice) |
| Listes de tâches ([ ] / [x]) | Oui | Oui (cases désactivées pour un rendu en lecture seule) |
| Texte barré (~~text~~) | Oui | Oui |
| Notes de bas de page ([^1]) | Oui | Non |
| Math KaTeX ($…$, $$…$$) | Oui | Non |
| Diagrammes Mermaid | Non mentionné dans /guide | Oui (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie) |
| Coloration syntaxique dans le code fenced | Oui | Non (la classe de langage est préservée pour pouvoir ajouter la coloration toi-même) |
| Éditeur | ||
| Surface d'édition | Monaco (chargé depuis cdn.jsdelivr.net) | CodeArea (custom, léger, même origine) |
| Multi-curseurs, rechercher / remplacer, autocomplétion | Oui (Monaco) | Non |
| Raccourcis Vim / Emacs | Oui | Non |
| Ouverture de fichier en drag-and-drop | Oui (Markdown / HTML / image) | Non |
| Scroll-sync entre éditeur et prévisualisation | Oui | Modes Split, Edit, Preview (pas de sync continue) |
| Plein écran / mode Zen | Mode Zen | Plein écran |
| Partage et persistance | ||
| Persistance des brouillons | localStorage dans le navigateur | localStorage dans le navigateur |
| Sync GitHub / Dropbox / Drive / OneDrive / Bitbucket | Oui (OAuth) | Non |
| Compte / login | Requis pour la sync cloud | Aucun (pas de backend) |
| Copier le HTML rendu | Export vers un fichier HTML stylé | Bouton Copier le HTML (presse-papier) |
| Export PDF | Oui, rendu serveur | Oui, navigateur seul |
| Posture runtime | ||
| Page statique (pas de backend) | Non (Next.js 14) | Oui |
| Renderer écrit à la main (sans dépendance markdown / sanitizer) | Non | Oui (~340 lignes) |
| Échappement HTML sur chaque portion de texte | Via bibliothèque | Oui (le HTML brut dans la source n'est jamais transmis tel quel) |
Allow-list des schémas d'URL (rejette javascript: / data:) | Via bibliothèque | Oui (uniquement http(s), mailto, tel, ancres, chemins relatifs) |
| Sandbox Mermaid | n/a | securityLevel: "strict", c'est-à-dire pas de JS inline, pas de foreignObject, pas de récupération d'images externes |
Ce que l'éditeur de TaskKit a et que Dillinger n'a pas
- Diagrammes Mermaid dans la prévisualisation. Les
blocs fenced
```mermaidsont rendus en SVG inline. Onze types de diagrammes fonctionnent de bout en bout. La bibliothèque Mermaid est importée dynamiquement la première fois qu'un diagramme apparaît, pour que le bundle reste petit pour les utilisateurs qui n'en dessinent jamais. - Export PDF hors-ligne. Tout le pipeline (cloner la prévisualisation, rastériser les SVG inline en PNG, découper le canvas hors-écran en pages A4, les embarquer avec pdf-lib) est navigateur seul. Coupe le réseau au milieu de l'export et il produit quand même un fichier.
- Renderer écrit à la main avec deux couches de sécurité.
Chaque portion de texte passe par un échappement d'entités HTML
avant d'atteindre le buffer de sortie (un
<script>littéral dans la source devient<script>, pas un tag qui s'exécute). Chaque URL passe par une allow-list, donc tout ce qui sort dehttp(s),mailto,tel, des ancres et des chemins relatifs est rejeté, y compris duJaVaScRiPt:en casse mixte et l'insertion de caractères de contrôle. - Pas de backend. Il n'y a pas de modèle de session, pas de stockage de tokens OAuth, et pas de chemin serveur que le document puisse emprunter. Charger la page Markdown de TaskKit fait les mêmes requêtes réseau que charger le reste de TaskKit : les assets statiques, et rien d'autre.
Là où Dillinger est plus fort
- Sync cloud vers cinq fournisseurs. Ouvre un fichier depuis un dépôt GitHub, édite-le, sauvegarde-le. Pareil avec Dropbox, Drive, OneDrive et Bitbucket. L'éditeur Markdown de TaskKit n'a rien d'équivalent : ce flux est « copier le HTML et le coller où tu veux ».
- Profondeur de l'éditeur Monaco. Multi-curseurs, rechercher / remplacer dans tout le buffer, autocomplétion intelligente, modes de raccourcis vim et emacs. Si ta mémoire musculaire dit « VS Code dans le navigateur », Dillinger l'a.
- Rendu math KaTeX. En ligne
$…$et en bloc$$…$$. TaskKit n'a pas de math aujourd'hui. - Notes de bas de page. Notation de référence
[^1], avec la définition n'importe où dans le document. Le renderer de TaskKit ne couvre pas encore les notes de bas de page. - Hand-off explicite vers les IA. Le texte de Dillinger lui-même : « Markdown is the native language of large language models. Write in Dillinger, then feed your content directly to ChatGPT, Claude, or any LLM. » TaskKit n'a pas de bouton pour ça.
Quand préférer Dillinger
- Tu as besoin d'ouvrir et de sauvegarder des fichiers dans GitHub, Dropbox, Drive, OneDrive ou Bitbucket depuis l'éditeur lui-même.
- Tu as besoin du rendu math KaTeX.
- Tu as besoin des notes de bas de page.
- Tu veux la profondeur d'éditeur de Monaco (multi-curseurs, autocomplétion, mode vim).
Pour tout le reste (rédiger un README, prévisualiser une description de PR, écrire un document avec des diagrammes Mermaid, exporter un PDF qui ne quitte jamais l'onglet) l'éditeur Markdown de TaskKit est le meilleur choix.
Ce que TaskKit laisse de côté délibérément
- Sync cloud. Un bouton « Enregistrer vers GitHub » est une excellente UX. Il demande aussi un backend, des tokens OAuth stockés quelque part, et un modèle de session. La posture de TaskKit est « pas de backend » ; coller le HTML rendu ou télécharger un PDF est le chemin d'export.
- Coloration syntaxique dans les blocs de code fenced.
Un vrai colorateur (Prism, highlight.js, Shiki) pèse de 50 à 500 KB
envoyés à chaque page. Nous l'avons laissé de côté pour garder un
petit bundle. Le tag de langage devient quand même un nom de classe
(
language-js), donc tu peux ajouter la coloration par-dessus le HTML copié si tu en as besoin. - Facilités « envoyer à un LLM » intégrées. Le fait que ton brouillon parte chez un LLM est une action réelle avec des conséquences réelles. L'éditeur est le mauvais endroit pour la cacher derrière un bouton.
- Texte sélectionnable dans le PDF exporté. L'export rastérise la prévisualisation, ce qui donne une fidélité de style parfaite au prix du texte sélectionnable. Du texte vectoriel demanderait un moteur de mise en page différent.
Essaie les outils Markdown de TaskKit
Éditeur Markdown
CommonMark + tableaux GFM, texte barré, listes de tâches, diagrammes Mermaid, et un vrai export PDF. Rien ne quitte l'onglet.
Diff Checker
Compare deux brouillons Markdown côte à côte, en local.
Méthodologie
Testé le 2026-05-16 sur Chrome avec un profil neuf et le cache effacé,
sans extension de filtrage des requêtes actives. Les comptes réseau ont
été pris dans le log de requêtes du navigateur lors d'un chargement à
froid de https://dillinger.io/, avant toute interaction.
Les vérifications de trackers ont interrogé directement window.ga,
window.gtag, window.dataLayer et
window.google_tag_manager. La longueur de la queue
_bsa a été lue depuis window._bsa_queue. La
citation « PDF export Available Server-rendered » provient du document
de bienvenue livré sur la page d'accueil. Les endpoints de sync cloud
et la stack Next.js 14 / Monaco sont documentés dans la propre page
/features de l'outil et dans le dépôt
joemccann/dillinger.
Les affirmations de TaskKit viennent du renderer Markdown dans
src/lib/dev/markdown.ts et du composant outil dans
src/components/dev/MarkdownTool.tsx. La matrice sera
revérifiée quand l'un ou l'autre outil changera matériellement.
Dillinger est une marque de son détenteur respectif. Cette page n'est affiliée ni soutenue par Dillinger.