Comparativa · Actualizada 2026-05-16
El editor Markdown de TaskKit vs Dillinger.io
Las dos herramientas te dejan escribir Markdown a la izquierda y ver el HTML a la derecha. Divergen claramente en qué se carga junto al editor, qué cruza la red cuando pulsas Exportar y qué hace la página antes de que hayas escrito nada. El resumen de abajo está medido contra el bundle servido en dillinger.io y apoyado en la propia documentación de Dillinger.
Resumen
- Orígenes de terceros en el primer paint: Dillinger carga tres (
cdn.jsdelivr.netpara Monaco,m.servedby-buysellads.compara el SDK de monetización BuySellAds yvia.placeholder.compara una imagen de demo). El/dev/markdownde TaskKit carga cero. - Framework de anuncios / patrocinio:
monetization.jsde BuySellAds corre en el primer paint, y la cola_bsase inicializa con un slot de anuncio enwindow. No vimos Google Analytics, GTM ni DoubleClick. TaskKit no carga analítica, ni anuncios, ni SDK de terceros. - Pings al backend antes de escribir: dillinger.io dispara
/api/github/status,/api/dropbox/status,/api/google-drive/status,/api/onedrive/statusy/api/bitbucket/statusdos veces cada uno en una carga en frío. La página Markdown de TaskKit no tiene backend al que hacer ping. - Exportación a PDF: el documento de bienvenida de Dillinger lo dice solo, con la frase "PDF export Available Server-rendered". La exportación de TaskKit corre íntegramente en el navegador (
html2canvas-pro+pdf-lib, importados dinámicamente en el primer uso). - Mermaid: TaskKit renderiza bloques
```mermaiden vivo (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie). El /guide de Dillinger no menciona Mermaid. - Donde gana Dillinger: sincronización en la nube con cinco proveedores, matemáticas KaTeX, notas al pie, profundidad del editor Monaco (multi-cursor, keybindings vim/emacs), hand-off explícito a IA. TaskKit no incluye nada de eso.
Privacidad, medida
Medido el 2026-05-16, perfil de Chrome limpio, sin extensiones que filtren peticiones. Las cifras corresponden a la página de inicio (el propio editor) en el primer paint, antes de cualquier acción del usuario.
| Acción | Dillinger | TaskKit |
|---|---|---|
| Orígenes de terceros en el primer paint | 3 (cdn.jsdelivr.net, m.servedby-buysellads.com, via.placeholder.com) | 0 |
| SDK de anuncios / monetización | BuySellAds (monetization.js; la cola _bsa se inicializa con un slot) | Ninguno |
| Google Analytics / GTM / DoubleClick | No detectados en el primer paint | Ninguno |
| Pings de estado al backend (antes de escribir) | 10 llamadas a /api/{github,dropbox,google-drive,onedrive,bitbucket}/status (dos veces cada una) | 0 |
| Guardar en GitHub / Dropbox / Drive / OneDrive / Bitbucket | OAuth vía /api/{provider}/callback; el documento pasa por el backend de Dillinger | No ofrecido. Copia el HTML o exporta el PDF en local. |
| Exportar a PDF | Renderizado en servidor (lo dice el propio documento de bienvenida de Dillinger) | Solo navegador (html2canvas-pro + pdf-lib; sin subida, sin diálogo de impresión) |
| Exportar a HTML con estilos | Misma ruta de exportación de la aplicación | Botón de copiar HTML (al portapapeles) |
| Enviar el borrador a un LLM | "Feed your content directly to ChatGPT, Claude, or any LLM" (página de features del propio Dillinger) | No integrado. Copiar la salida queda de tu mano. |
La sincronización en la nube mediada por OAuth es un patrón razonable para lo que hace Dillinger. El contraste no está en que el diseño esté mal, está en que el backend existe siquiera, lo que implica un modelo de sesión, manejo de tokens OAuth y una ruta de servidor por la que pasa el documento. El editor Markdown de TaskKit no tiene nada de eso porque nada de lo que hace lo requiere. Más sobre cómo TaskKit trata tus datos.
Matriz de funciones
| Capacidad | Dillinger | TaskKit |
|---|---|---|
| Renderizado Markdown | ||
| Básicos de CommonMark (encabezados, listas, código, enlaces) | Sí | Sí |
| Tablas GFM | Sí | Sí (alineación con dos puntos en la fila separadora) |
| Listas de tareas ([ ] / [x]) | Sí | Sí (checkboxes deshabilitados para render de solo lectura) |
| Tachado (~~texto~~) | Sí | Sí |
| Notas al pie ([^1]) | Sí | No |
| Matemáticas KaTeX ($…$, $$…$$) | Sí | No |
| Diagramas Mermaid | No mencionado en /guide | Sí (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie) |
| Resaltado de sintaxis en código cercado | Sí | No (se preserva la clase del lenguaje para que añadas el highlighting tú) |
| Editor | ||
| Superficie del editor | Monaco (cargado desde cdn.jsdelivr.net) | CodeArea (propio, ligero, mismo origen) |
| Multi-cursor, buscar / reemplazar, autocompletado | Sí (Monaco) | No |
| Keybindings Vim / Emacs | Sí | No |
| Apertura de archivo por arrastrar y soltar | Sí (Markdown / HTML / imagen) | No |
| Scroll sincronizado entre editor y preview | Sí | Modos de vista Split, Edit, Preview (sin sync continuo) |
| Pantalla completa / modo Zen | Modo Zen | Pantalla completa |
| Compartir y persistencia | ||
| Persistencia del borrador | localStorage en el navegador | localStorage en el navegador |
| Sync con GitHub / Dropbox / Drive / OneDrive / Bitbucket | Sí (OAuth) | No |
| Cuenta / login | Requerido para sync en la nube | Ninguno (sin backend) |
| Copiar HTML renderizado | Exportar a archivo HTML con estilos | Botón de copiar HTML (portapapeles) |
| Exportación a PDF | Sí, renderizado en servidor | Sí, solo en navegador |
| Postura en runtime | ||
| Página estática (sin backend) | No (Next.js 14) | Sí |
| Renderizador escrito a mano (sin dependencia de markdown / sanitizador) | No | Sí (~340 líneas) |
| Escapado HTML en cada tramo de texto | Vía librería | Sí (el HTML crudo en la fuente nunca se reenvía) |
Lista blanca de esquemas de URL (descarta javascript: / data:) | Vía librería | Sí (solo http(s), mailto, tel, anchor y rutas relativas) |
| Sandbox de Mermaid | n/d | securityLevel: "strict", es decir, sin JS inline, sin foreignObject, sin peticiones de imagen externas |
Qué tiene el editor de TaskKit que Dillinger no tiene
- Diagramas Mermaid en la previsualización. Los bloques
cercados
```mermaidse renderizan en SVG inline. Once tipos de diagrama funcionan de cabo a rabo. La librería Mermaid se importa dinámicamente la primera vez que aparece un diagrama, así que el bundle se queda pequeño para quien nunca dibuje uno. - Exportación a PDF offline. Toda la cadena (clonar la previsualización, rasterizar SVGs inline a PNG, cortar el canvas fuera de pantalla en páginas A4, embeberlas con pdf-lib) corre solo en el navegador. Desconecta la red a mitad de la exportación y aun así produce un archivo.
- Renderizador escrito a mano con dos capas de seguridad.
Cada tramo de texto pasa por escapado de entidades HTML antes de
llegar al buffer de salida (un
<script>literal en la fuente se convierte en<script>, no en una etiqueta ejecutándose). Cada URL pasa por una lista blanca, así cualquier cosa fuera dehttp(s),mailto,tel, anchors y rutas relativas se descarta, incluidas variantes con mayúsculas mezcladas tipoJaVaScRiPt:y la inyección de caracteres de control. - Sin backend. No hay modelo de sesión, ni almacenamiento de tokens OAuth, ni ruta de servidor por la que pueda pasar el documento. Cargar la página Markdown de TaskKit hace el mismo conjunto de peticiones de red que cargar el resto de TaskKit: los assets estáticos, y nada más.
Donde Dillinger es más fuerte
- Sync en la nube con cinco proveedores. Abrir un archivo desde un repo de GitHub, editarlo y guardarlo de vuelta. Lo mismo con Dropbox, Drive, OneDrive y Bitbucket. El editor Markdown de TaskKit no tiene equivalente: ese flujo es "copia el HTML fuera y pégalo donde toque".
- Profundidad del editor Monaco. Multi-cursor, buscar / reemplazar a lo ancho del buffer, autocompletado inteligente, modos de keybindings vim y emacs. Si tu memoria muscular es "VS Code en el navegador", Dillinger lo tiene.
- Renderizado de matemáticas KaTeX. Inline
$…$y bloque$$…$$. TaskKit no tiene matemáticas hoy. - Notas al pie. Notación de referencia
[^1], con la definición en cualquier punto del documento. El renderizador de TaskKit todavía no cubre notas al pie. - Hand-off explícito a IA. Lo dice el propio texto de Dillinger: "Markdown is the native language of large language models. Write in Dillinger, then feed your content directly to ChatGPT, Claude, or any LLM." TaskKit no tiene un botón para eso.
Cuándo tirar de Dillinger
- Necesitas abrir y guardar archivos en GitHub, Dropbox, Drive, OneDrive o Bitbucket desde el propio editor.
- Necesitas renderizado de matemáticas KaTeX.
- Necesitas notas al pie.
- Quieres la profundidad del editor Monaco (multi-cursor, autocompletado, modo vim).
Para todo lo demás (redactar un README, previsualizar la descripción de un PR, escribir un documento con diagramas Mermaid, exportar un PDF que nunca sale de la pestaña), el editor Markdown de TaskKit es la mejor opción.
Lo que TaskKit deja fuera deliberadamente
- Sync en la nube. Un botón "Guardar en GitHub" es una gran UX. También requiere un backend, tokens OAuth almacenados en algún sitio y un modelo de sesión. La postura de TaskKit es "sin backend"; pegar el HTML renderizado o descargar un PDF es la ruta de exportación.
- Resaltado de sintaxis en bloques de código cercado.
Un highlighter de verdad (Prism, highlight.js, Shiki) son entre 50 y
500 KB enviados a cada página. Lo dejamos fuera para mantener el
bundle pequeño. La etiqueta de lenguaje sí se convierte en un nombre
de clase (
language-js), así que puedes añadir el resaltado encima del HTML copiado si lo necesitas. - Atajos integrados de "enviar a un LLM". Que tu borrador vaya a un LLM es una acción real con consecuencias reales. El editor es el sitio equivocado para ocultarlo detrás de un botón.
- Texto seleccionable dentro del PDF exportado. La exportación rasteriza la previsualización, lo que da fidelidad de estilo perfecta a costa del texto seleccionable. Un texto vectorial requeriría un motor de maquetación distinto.
Prueba las herramientas Markdown de TaskKit
Editor Markdown
CommonMark + tablas GFM, tachado, listas de tareas, diagramas Mermaid y una exportación a PDF de verdad. Nada sale de la pestaña.
Comparador de diffs
Compara dos borradores Markdown lado a lado, en local.
Metodología
Probado el 2026-05-16 en Chrome con un perfil limpio y caché borrada,
sin extensiones de filtrado de peticiones activas. Los conteos de red
se tomaron del log de peticiones del navegador en una carga en frío de
https://dillinger.io/, antes de cualquier interacción. Las
comprobaciones de trackers consultaron window.ga,
window.gtag, window.dataLayer y
window.google_tag_manager directamente. La longitud de la
cola _bsa se leyó de window._bsa_queue. La
cita "PDF export Available Server-rendered" es del documento de
bienvenida servido en la home. Los endpoints de sync en la nube y la
stack Next.js 14 / Monaco están documentados en la página
/features
de la propia herramienta y en el repositorio
joemccann/dillinger.
Lo que se afirma sobre TaskKit viene del renderizador Markdown en
src/lib/dev/markdown.ts y del componente de herramienta en
src/components/dev/MarkdownTool.tsx. La matriz se revisará
de nuevo cuando alguna de las dos herramientas cambie de forma
relevante.
Dillinger es una marca de su titular respectivo. Esta página no está asociada con Dillinger ni cuenta con su respaldo.