Comparativo · Atualizado 2026-05-16
O editor de Markdown do TaskKit vs Dillinger.io
Ambas as ferramentas deixam-te escrever Markdown à esquerda e ver o HTML à direita. Divergem fortemente no que carregam ao lado do editor, no que atravessa a rede quando clicas em Exportar e no que a página faz antes de teres escrito o que quer que seja. O resumo abaixo está medido contra o bundle servido em dillinger.io e fundamentado na documentação do próprio Dillinger.
Resumo
- Origens de terceiros no primeiro paint: o Dillinger carrega três (
cdn.jsdelivr.netpara o Monaco,m.servedby-buysellads.compara o SDK de Monetização BuySellAds evia.placeholder.compara uma imagem demo). O/dev/markdowndo TaskKit carrega zero. - Framework de anúncios / patrocínio: o
monetization.jsdo BuySellAds corre no primeiro paint e a fila_bsaé inicializada com um slot de anúncio emwindow. Não vimos Google Analytics, GTM nem DoubleClick. O TaskKit não carrega analítica, anúncios nem SDKs de terceiros. - Pings ao backend antes de escreveres: o dillinger.io dispara
/api/github/status,/api/dropbox/status,/api/google-drive/status,/api/onedrive/statuse/api/bitbucket/status, duas vezes cada, num carregamento a frio. A página de Markdown do TaskKit não tem backend para pingar. - Exportação PDF: o documento de boas-vindas do Dillinger di-lo ele próprio, com a frase "PDF export Available Server-rendered". A exportação do TaskKit corre inteiramente no navegador (
html2canvas-pro+pdf-lib, importados dinamicamente na primeira utilização). - Mermaid: o TaskKit renderiza blocos
```mermaidao vivo (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie). O /guide do Dillinger não menciona Mermaid. - Onde o Dillinger ganha: sincronização cloud com cinco fornecedores, matemática KaTeX, notas de rodapé, profundidade do editor Monaco (multi-cursor, keybindings vim/emacs), hand-off explícito para IA. O TaskKit não traz nada disto.
Privacidade, medida
Medido a 2026-05-16, perfil Chrome novo, sem extensões a filtrar pedidos. Os números referem-se à página inicial (o próprio editor) no primeiro paint, antes de qualquer ação do utilizador.
| Ação | Dillinger | TaskKit |
|---|---|---|
| Origens de terceiros no primeiro paint | 3 (cdn.jsdelivr.net, m.servedby-buysellads.com, via.placeholder.com) | 0 |
| SDK de anúncios / monetização | BuySellAds (monetization.js; fila _bsa inicializada com um slot) | Nenhum |
| Google Analytics / GTM / DoubleClick | Não detetado no primeiro paint | Nenhum |
| Pings de status ao backend (antes de qualquer escrita) | 10 chamadas a /api/{github,dropbox,google-drive,onedrive,bitbucket}/status (duas vezes cada) | 0 |
| Gravar em GitHub / Dropbox / Drive / OneDrive / Bitbucket | OAuth via /api/{provider}/callback; o documento passa pelo backend do Dillinger | Não oferecido. Copia o HTML ou exporta PDF localmente. |
| Exportar para PDF | Server-rendered (documento de boas-vindas do próprio Dillinger) | Só no navegador (html2canvas-pro + pdf-lib; sem upload, sem diálogo de impressão) |
| Exportar para HTML estilizado | Mesmo caminho de exportação da aplicação | Botão de copiar HTML (clipboard) |
| Enviar rascunho para um LLM | "Markdown is the native language of large language models. Write in Dillinger, then feed your content directly to ChatGPT, Claude, or any LLM." (página de funcionalidades do próprio Dillinger) | Não integrado. Copiar a saída fica ao teu critério. |
A sincronização cloud mediada por OAuth é um padrão razoável para o que o Dillinger está a fazer. O contraste não é que o desenho esteja errado, é que o backend existe de todo, o que implica um modelo de sessão, manuseamento de tokens OAuth e um caminho de servidor para o documento. O editor de Markdown do TaskKit não tem nada disso porque nada do que faz o exige. Mais sobre como o TaskKit trata os teus dados.
Matriz de funcionalidades
| Capacidade | Dillinger | TaskKit |
|---|---|---|
| Renderização Markdown | ||
| Básicos de CommonMark (cabeçalhos, listas, código, links) | Sim | Sim |
| Tabelas GFM | Sim | Sim (alinhamento via dois pontos na linha separadora) |
| Listas de tarefas ([ ] / [x]) | Sim | Sim (checkboxes desativadas em render só de leitura) |
| Tachado (~~texto~~) | Sim | Sim |
| Notas de rodapé ([^1]) | Sim | Não |
| Matemática KaTeX ($…$, $$…$$) | Sim | Não |
| Diagramas Mermaid | Não mencionado em /guide | Sim (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie) |
| Realce de sintaxe em blocos de código | Sim | Não (a classe de linguagem é preservada para poderes adicionar realce por cima) |
| Editor | ||
| Superfície de edição | Monaco (carregado do cdn.jsdelivr.net) | CodeArea (próprio, leve, same-origin) |
| Multi-cursor, find / replace, autocompletion | Sim (Monaco) | Não |
| Keybindings Vim / Emacs | Sim | Não |
| Abertura de ficheiros por drag-and-drop | Sim (Markdown / HTML / imagem) | Não |
| Scroll-sync entre editor e pré-visualização | Sim | Modos de visualização Split, Edit, Preview (sem sync contínuo) |
| Ecrã inteiro / modo Zen | Modo Zen | Ecrã inteiro |
| Partilha & persistência | ||
| Persistência de rascunhos | localStorage no navegador | localStorage no navegador |
| Sincronização GitHub / Dropbox / Drive / OneDrive / Bitbucket | Sim (OAuth) | Não |
| Conta / login | Necessário para sincronização cloud | Nenhum (sem backend) |
| Copiar HTML renderizado | Exportar para ficheiro HTML estilizado | Botão de copiar HTML (clipboard) |
| Exportar PDF | Sim, server-rendered | Sim, só no navegador |
| Postura em runtime | ||
| Página estática (sem backend) | Não (Next.js 14) | Sim |
| Renderer escrito à mão (sem dependência de biblioteca de markdown / sanitizer) | Não | Sim (~340 linhas) |
| Escape de HTML em cada bloco de texto | Via biblioteca | Sim (HTML em bruto na fonte nunca é passado adiante) |
Allow-list de esquemas de URL (bloqueia javascript: / data:) | Via biblioteca | Sim (apenas http(s), mailto, tel, âncoras e caminhos relativos) |
| Sandbox do Mermaid | n/a | securityLevel: "strict", ou seja, sem JS inline, sem foreignObject, sem fetches de imagens externas |
O que o editor do TaskKit tem que o Dillinger não tem
- Diagramas Mermaid na pré-visualização. Blocos
```mermaidrenderizam em SVG inline. Onze tipos de diagrama funcionam ponta a ponta. A biblioteca Mermaid é importada dinamicamente na primeira vez que um diagrama aparece, para que o bundle se mantenha pequeno para utilizadores que nunca desenham um. - Exportação PDF offline. O pipeline todo (clonar a pré-visualização, rasterizar SVGs inline em PNGs, fatiar o canvas off-screen em páginas A4, embuti-las com pdf-lib) corre apenas no navegador. Desliga a rede a meio da exportação e mesmo assim produz um ficheiro.
- Renderer escrito à mão com duas camadas de segurança.
Cada bloco de texto passa por escape de entidades HTML antes de
chegar ao buffer de saída (um
<script>literal na fonte transforma-se em<script>, não numa tag executada). Cada URL passa por uma allow-list, por isso tudo o que estiver fora dehttp(s),mailto,tel, âncoras e caminhos relativos é descartado, incluindoJaVaScRiPt:com capitalização mista e injeção de caracteres de controlo. - Sem backend. Não há modelo de sessão, não há armazenamento de tokens OAuth e não há caminho de servidor por onde o documento possa passar. Carregar a página de Markdown do TaskKit faz o mesmo conjunto de pedidos de rede que carregar o resto do TaskKit: os assets estáticos, e nada mais.
Onde o Dillinger é mais forte
- Sincronização cloud com cinco fornecedores. Abre um ficheiro de um repositório GitHub, edita-o, grava-o de volta. O mesmo com Dropbox, Drive, OneDrive e Bitbucket. O editor de Markdown do TaskKit não tem nada equivalente: o fluxo é "copia o HTML para fora e cola onde for preciso".
- Profundidade do editor Monaco. Multi-cursor, find / replace ao longo do buffer, autocompletion inteligente, modos de keybindings vim e emacs. Se a tua memória muscular é "VS Code no browser", o Dillinger tem-no.
- Renderização matemática KaTeX. Inline
$…$e em bloco$$…$$. O TaskKit hoje não tem matemática. - Notas de rodapé. Notação de referência
[^1], com a definição em qualquer parte do documento. O renderer do TaskKit ainda não cobre notas de rodapé. - Hand-off explícito para IA. Texto do próprio Dillinger: "Markdown is the native language of large language models. Write in Dillinger, then feed your content directly to ChatGPT, Claude, or any LLM." O TaskKit não tem um botão para isso.
Quando recorrer antes ao Dillinger
- Precisas de abrir e gravar ficheiros no GitHub, Dropbox, Drive, OneDrive ou Bitbucket a partir do próprio editor.
- Precisas de renderização matemática KaTeX.
- Precisas de notas de rodapé.
- Queres a profundidade do editor Monaco (multi-cursor, autocompletion, modo vim).
Para tudo o resto (esboçar um README, pré-visualizar a descrição de um PR, autor de um documento com diagramas Mermaid, exportar um PDF que nunca sai do separador) o editor de Markdown do TaskKit é o melhor encaixe.
O que o TaskKit deixa de fora deliberadamente
- Sincronização cloud. Um botão "Gravar no GitHub" é uma ótima UX. Também exige um backend, tokens OAuth guardados algures e um modelo de sessão. A postura do TaskKit é "sem backend"; colar o HTML renderizado ou descarregar um PDF é o caminho de exportação.
- Realce de sintaxe em blocos de código. Um
highlighter a sério (Prism, highlight.js, Shiki) são 50 a 500 KB
despachados em cada página. Deixámo-lo de fora para manter o bundle
pequeno. A tag de linguagem continua a virar nome de classe
(
language-js), por isso podes adicionar realce por cima do HTML copiado se precisares. - Botões integrados de "enviar para LLM". O teu rascunho ir parar a um LLM é uma ação real com consequências reais. O editor é o sítio errado para a esconder atrás de um botão.
- Texto selecionável dentro do PDF exportado. A exportação rasteriza a pré-visualização, o que garante fidelidade perfeita de estilo à custa de texto selecionável. Texto vetorial exigiria um motor de layout diferente.
Experimenta as ferramentas Markdown do TaskKit
Editor de Markdown
CommonMark + tabelas GFM, tachado, listas de tarefas, diagramas Mermaid e uma exportação PDF a sério. Nada sai do separador.
Diff Checker
Compara dois rascunhos Markdown lado a lado, localmente.
Metodologia
Testado a 2026-05-16 em Chrome com perfil novo e cache apagada, sem
extensões a filtrar pedidos ativas. Os contadores de rede foram
retirados do log de pedidos do navegador num carregamento a frio de
https://dillinger.io/, antes de qualquer interação. As
verificações de trackers consultaram diretamente
window.ga, window.gtag,
window.dataLayer e window.google_tag_manager.
O comprimento da fila _bsa foi lido a partir de
window._bsa_queue. A citação "PDF export Available
Server-rendered" vem do documento de boas-vindas servido na página
inicial. Os endpoints de sincronização cloud e a stack Next.js 14 /
Monaco estão documentados na página
/features da própria ferramenta e no repositório
joemccann/dillinger.
As afirmações do TaskKit vêm do renderer Markdown em
src/lib/dev/markdown.ts e do componente da ferramenta em
src/components/dev/MarkdownTool.tsx. A matriz será
revisitada quando alguma das ferramentas mudar materialmente.
Dillinger é uma marca do seu titular respetivo. Esta página não está associada ao Dillinger nem conta com o seu apoio.