TK
Comparativos

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.net para o Monaco, m.servedby-buysellads.com para o SDK de Monetização BuySellAds e via.placeholder.com para uma imagem demo). O /dev/markdown do TaskKit carrega zero.
  • Framework de anúncios / patrocínio: o monetization.js do BuySellAds corre no primeiro paint e a fila _bsa é inicializada com um slot de anúncio em window. 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/status e /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 ```mermaid ao 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.

Abrir o editor de Markdown do TaskKit.

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 paint3 (cdn.jsdelivr.net, m.servedby-buysellads.com, via.placeholder.com)0
SDK de anúncios / monetizaçãoBuySellAds (monetization.js; fila _bsa inicializada com um slot)Nenhum
Google Analytics / GTM / DoubleClickNão detetado no primeiro paintNenhum
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 / BitbucketOAuth via /api/{provider}/callback; o documento passa pelo backend do DillingerNão oferecido. Copia o HTML ou exporta PDF localmente.
Exportar para PDFServer-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 estilizadoMesmo caminho de exportação da aplicaçãoBotã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)SimSim
Tabelas GFMSimSim (alinhamento via dois pontos na linha separadora)
Listas de tarefas ([ ] / [x])SimSim (checkboxes desativadas em render só de leitura)
Tachado (~~texto~~)SimSim
Notas de rodapé ([^1])SimNão
Matemática KaTeX ($…$, $$…$$)SimNão
Diagramas MermaidNão mencionado em /guideSim (flowchart, sequence, class, state, ER, journey, gitGraph, timeline, mindmap, gantt, pie)
Realce de sintaxe em blocos de códigoSimNão (a classe de linguagem é preservada para poderes adicionar realce por cima)
Editor
Superfície de ediçãoMonaco (carregado do cdn.jsdelivr.net)CodeArea (próprio, leve, same-origin)
Multi-cursor, find / replace, autocompletionSim (Monaco)Não
Keybindings Vim / EmacsSimNão
Abertura de ficheiros por drag-and-dropSim (Markdown / HTML / imagem)Não
Scroll-sync entre editor e pré-visualizaçãoSimModos de visualização Split, Edit, Preview (sem sync contínuo)
Ecrã inteiro / modo ZenModo ZenEcrã inteiro
Partilha & persistência
Persistência de rascunhoslocalStorage no navegadorlocalStorage no navegador
Sincronização GitHub / Dropbox / Drive / OneDrive / BitbucketSim (OAuth)Não
Conta / loginNecessário para sincronização cloudNenhum (sem backend)
Copiar HTML renderizadoExportar para ficheiro HTML estilizadoBotão de copiar HTML (clipboard)
Exportar PDFSim, server-renderedSim, 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ãoSim (~340 linhas)
Escape de HTML em cada bloco de textoVia bibliotecaSim (HTML em bruto na fonte nunca é passado adiante)
Allow-list de esquemas de URL (bloqueia javascript: / data:)Via bibliotecaSim (apenas http(s), mailto, tel, âncoras e caminhos relativos)
Sandbox do Mermaidn/asecurityLevel: "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 ```mermaid renderizam 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 &lt;script&gt;, não numa tag executada). Cada URL passa por uma allow-list, por isso tudo o que estiver fora de http(s), mailto, tel, âncoras e caminhos relativos é descartado, incluindo JaVaScRiPt: 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

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.