10 pontos por GN⁺ 2025-06-04 | 5 comentários | Compartilhar no WhatsApp
  • Um sistema moderno de tipografia que expande a sintaxe tradicional do Markdown para permitir a criação fácil de documentos em vários formatos, como livros, artigos acadêmicos, slides e apresentações
  • Incorpora diretamente ao Markdown recursos avançados como suporte a funções, uso de variáveis, condicionais/loops e biblioteca padrão, oferecendo um diferencial em extensibilidade e automação em relação ao Markdown tradicional ou ao LaTeX
  • Com um único arquivo-fonte, é possível gerar várias saídas, como HTML, PDF, slides (reveal.js) e livros paginados (paged.js), com foco especial na criação de conteúdo baseada em código
  • Com recursos de scripting e sintaxe de extensão expressiva, permite implementar livremente até conteúdos complexos ou dinâmicos
  • Oferece ambiente com REPL, pré-visualização ao vivo e compilação rápida, possibilitando edição e depuração de documentos em tempo real
  • Em comparação com ferramentas existentes, tem pontos fortes em recursos de scripting, controle de documentos e curva de aprendizado acessível frente a Markdown, LaTeX, Typst, AsciiDoc e MDX
  • Pode ser usado em todos os principais sistemas operacionais apenas com Java 17 ou superior, sem necessidade de ambiente de desenvolvimento separado ou configuração complexa

About

  • Quarkdown é um sistema moderno de composição tipográfica projetado para facilitar a criação, a partir da estrutura básica do Markdown com adição de funções e sintaxe estendida, de resultados refinados em vários formatos, de texto simples a livros, artigos acadêmicos e slides
  • Foi desenvolvido com base em CommonMark e GFM e oferece suporte completo a sua própria sintaxe, além de funções, variáveis e bibliotecas definidas pelo usuário
    • Fornece uma sintaxe própria chamada Quarkdown Flavor
    • Adiciona recursos avançados ao Markdown por meio de uma sintaxe de extensão de funções Turing-completa, incluindo funções, condicionais e loops
  • Com bibliotecas .qmd, é possível usar vários recursos como layout, entrada/saída, matemática, condicionais e loops
  • Mesmo quando são necessárias estruturas documentais complexas ou conteúdo dinâmico, é possível aumentar a extensibilidade e a produtividade

Principais recursos e formas de uso

  • Suporte a vários formatos de saída, como HTML, slides, livros (Paged) e PDF
    • É possível definir o tipo de documento com chamadas de função como .doctype {slides} e .doctype {paged}
    • Integração com engines open source como reveal.js e paged.js
  • Scripting e conteúdo dinâmico
    • Introduz elementos de programação como funções, variáveis, condicionais e loops
    • ex) .function {greet} ... .greet {world} from:{iamgio}
  • Pré-visualização ao vivo e compilação rápida
    • Oferece visualização em tempo real e detecção de alterações de arquivos (Watch)
    • As opções -p --preview e -w --watch aumentam a eficiência do trabalho
  • Comparação com outras ferramentas de documentação
    • Tem curva de aprendizado menor que o LaTeX e melhor extensibilidade de recursos que o Markdown
    • Em comparação com Typst, AsciiDoc e MDX, também se destaca em scripting e expressividade

Alvos suportados

  • HTML
    • Saída geral (padrão)
    • Slides (usando reveal.js)
    • Formato de livro/artigo acadêmico (usando paged.js, requer servidor web)
  • PDF
    • Todos os tipos e recursos de documento suportados em HTML também podem ser exportados para PDF
    • Para mais detalhes sobre a exportação em PDF, consulte o wiki
  • Controle do formato de saída com chamadas de função como .doctype {slides} e .doctype {paged}

Comparação

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
Concisão e legibilidade
Controle total do documento
Recursos de scripting suporte parcial
Saída em formato de livro/artigo 3rd party
Saída para apresentação 3rd party
Curva de aprendizado verde verde vermelho laranja verde verde
Suporte a alvos HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5 comentários

 
plastic041 2025-06-05

Acho que por causa da tabela, o layout no celular está quebrando.

 
plastic041 2025-06-05

Se você definir min-width: 0 em .topic_contents, isso é corrigido. Esse min-width realmente dá muita dor de cabeça...

 
xguru 2025-06-05

Ah, resolvi de outra forma. Obrigado!

 
plastic041 2025-06-05

Obrigado pelo feedback rápido~

 
GN⁺ 2025-06-04
Comentários do Hacker News
  • Meu editor de texto FOSS, KeenWrite, usa uma abordagem parecida para converter Markdown em XHTML, TeX e PDF
    A arquitetura do software mostra como uma cadeia de processadores pode ser projetada
    Criei o KeenWrite para poder usar variáveis como nomes de personagens ou lugares ao escrever ficção científica
    Para mais detalhes, veja o tutorial
    Para quem ainda usa pandoc e shell scripts, a série Typesetting Markdown explica como montar uma infraestrutura baseada em scripts para converter Markdown em PDF
    Mais informações sobre o próprio KeenWrite podem ser vistas aqui
    O diagrama de arquitetura pode ser consultado aqui

  • Seria interessante comparar este projeto com o Typst, que recebeu muita atenção recentemente, então é surpreendente que o Typst nem seja mencionado na matriz de comparação de recursos

    • Quando vi antes, o Typst não conseguia gerar saída em HTML
    • Agora o Typst também é mencionado
      No geral, os dois projetos parecem muito parecidos
  • Fico me perguntando se a tabela comparativa está correta – link
    Acho que o LaTeX claramente tem recursos completos de scripting, embora seja doloroso de usar
    Sou cético quanto à afirmação de que a sintaxe críptica do Quarkdown seja mais concisa e legível que a do Typst
    Também não acho que a curva de aprendizado seja mais fácil que a do Typst; os dois parecem quase iguais
    Acho que o LaTeX também consegue gerar HTML com tex4ht

    • Para ser sincero, a maior parte do Markdown pode ser usada no Quarkdown do mesmo jeito
      A barreira de entrada dificilmente pode ser mais baixa do que isso
      Claro, curva de aprendizado não é exatamente a mesma coisa que barreira de entrada, mas há bastante sobreposição
      E “curva de aprendizado” é uma característica subjetiva
      Se colocar isso numa tabela comparativa, ela inevitavelmente já nasce enviesada
      Recursos claros são mais objetivos, mas às vezes, dependendo do produto, certos recursos nem são necessários
    • Para esse tipo de caso de uso, o Pandoc é o melhor
    • Dá para perceber imediatamente até onde vão os recursos de scripting do LaTeX e do TeX com TikZ e pgf
      A tabela comparativa está claramente incorreta
  • A saída de exemplo parece ótima
    Mas eu nunca gostei muito quando linguagens de template crescem em chamadas de função ou complexidade
    Claro, neste contexto isso pode fazer sentido
    Mas, se tiver que usar junto com outra linguagem, por exemplo em renderização no servidor ou geração de documentos orientada a dados, você acaba perdendo tempo demais alternando entre duas linguagens
    Linguagens de template nunca são tão poderosas quanto uma linguagem “de verdade”
    Por isso prefiro abordagens como JSX ou tagged template literals em JavaScript
    É melhor usar uma linguagem de programação real e, ao mesmo tempo, ter entendimento do contexto do documento, de forma a reduzir preocupações com escape, como XSS

  • Queria entender como o Quarto difere deste projeto
    O nome é parecido, a extensão também, e a proposta parece semelhante, mas as funcionalidades até parecem menores – Quarto

    • O Quarto é o sucessor de fato do ecossistema R Markdown
      O FAQ diz que foi desenvolvido pelos mesmos criadores
    • Eu ia fazer a mesma pergunta
      Dias atrás um amigo me mostrou que reescreveu todos os roteiros de aula em Quarto e até embutiu apresentações, e pareceu bem organizado
      O fato de o Quarto também se integrar bem com R Studio e Jupyter Notebook é uma grande vantagem
    • O nome parecido parece vir de uma referência ou associação com QuarkXPress
      Acho que isso é um tipo de evolução convergente
  • Achei interessante a explicação de que algo que pode parecer “planet” na verdade é um quark, especificamente um down quark
    É um projeto legal, mas por causa da marca famosa da indústria editorial QuarkXPress, usar a palavra “Quark” como nome de um sistema de editoração é um pouco arriscado
    Informações de registro relacionadas podem ser vistas aqui, aqui
    (Também fico curioso por que existem dois registros de marca com a mesma palavra)

  • Em toda thread de discussão dessa área, uns 70% dos comentários são do tipo “por que não usar LaTeX?”, então vou deixar minha posição bem clara
    Eu realmente preciso de um sistema moderno de editoração baseado em Markdown
    Gostaria que houvesse várias tentativas de substituir o LaTeX
    LaTeX é realmente desconfortável e antiquado, e seria bom ter um sistema que permitisse uma marcação mais livre
    Mesmo que a sintaxe fique maior conforme os recursos crescem, claramente existe uma necessidade por algo um pouco mais poderoso que Markdown
    Mas sinto que este projeto não é o que eu procurava
    Pelos exemplos, ele parece pender mais para algo só um pouco mais poderoso que Markdown, e não chega a substituir totalmente o LaTeX (ou o Typst)
    Um sistema de documentos desse tipo precisa ser realmente suave de usar, e este não me passa essa sensação

    1. E, por ser baseado em JVM, eu nem quero instalar
      Isso não ajuda muito na difusão
    2. Também não gosto da sintaxe
      Eu preferiria que fosse o mais compatível possível com Markdown normal, mas se a indentação de argumentos de função for obrigatória, parece que o documento inteiro vai acabar indentado, enquanto os pontos de extensão do Markdown normalmente ficam mais naturais em blocos de código (no estilo ```plugin-name`)
      Por causa das diferenças de sintaxe, pode ser necessário reorganizar a estrutura inteira do documento
    3. O conceito de “Markdown melhor” me parece mais adequado para casos em que tudo começa como uma nota pessoal e aos poucos evolui para documentação pública
      Se o objetivo é publicar um documento, dá para simplesmente trabalhar em LaTeX
      O mais útil é quando isso fica bem integrado a um aplicativo de anotações
      Pode haver quem faça isso em Emacs ou Vim, mas até eu, que sou meio saudosista, admito que acabei migrando para o Obsidian e afins
      Seria bom ter algo que permitisse controlar melhor a estrutura do documento dentro do app de notas ou conectar recursos de publicação
      Se for algo independente, fico me perguntando por que eu usaria
      Pelo menos o Typst tem um editor online, e todo mundo usa isso
    • LaTeX não é lixo velho; é um dos melhores softwares que existem
      O ponto central é não adicionar coisas inúteis ao documento
  • Esses sistemas, incluindo o Typst, são basicamente voltados para a composição tipográfica de textos longos, como artigos
    Eu gostaria que se tornassem uma alternativa ao HTML, mas, embora eu também tenha usado o Typst, parece que os autores só se preocupam com “artigos ou textos longos”
    Eu também gostaria de fazer formulários, faturas, panfletos e cartões de visita, mas esse tipo de elemento fica fora do radar
    (Na verdade eu estava pensando no Sile, mas o Typst é parecido)
    Não usei o Typst a fundo porque ele é comercial

    • Não sei se há algum motivo especial para não poder usar o Typst nas coisas citadas, como formulários e faturas
      Especialmente formulários interativos, já há notícias de que isso está em andamento (o backend do writer de PDF já oferece algum suporte)
      Daqui a algum tempo, parece provável que o Typst implemente recursos de formulários – veja esta issue
    • Acho que isso acontece porque essa área está mais próxima de “design gráfico” do que de “composição tipográfica”
      Faturas, panfletos publicitários, cartões de visita etc. exigem posicionar pequenos elementos exatamente no centro da página ou nas bordas, e nisso ferramentas WYSIWYG são mais convenientes
      Só com composição tipográfica baseada em texto há tentativa e erro demais
      Por exemplo, em tabloides o texto precisa fluir e contornar imagens ou recortes, em vez de ficar só em retângulos, e fazer isso apenas com coordenadas, sem ver o resultado, é muito difícil na prática
    • O editor online do Typst é comercial, mas o próprio Typst está disponível sob licença Apache 2.0
      Eu instalei via cargo, em Rust, e uso tranquilamente sem o editor online
    • Você pode usar o Typst localmente e ignorar totalmente a parte comercial
      É bem fácil de usar para vários tipos de documento
      Eu já o uso como substituto para produzir slides e apostilas
    • Meu primeiro “uso real” do Typst foi um pôster, e foi muito mais fácil do que LaTeX
      Ainda faltam alguns recursos, como contorno de imagem e fluxo de texto, mas isso também é difícil no TeX e está planejado para o futuro no Typst
      Exemplo de pôster
  • Isso parece praticamente a mesma coisa que reStructuredText (rST)
    A sintaxe de função do Quarkdown (.somefunction {arg} {arg} body) é muito parecida com a sintaxe de função do rST (.. somefunction:: {arg} {arg} body)

  • Tem Markdown, Quarkdown, Typst e tantos outros, tudo parece pouco padronizado, então no fim voltei para HTML+CSS

    • E XML?
      Nunca usei diretamente, mas estou considerando bem seriamente
      Os outros formatos são complexos e têm curva de aprendizado, o que atrapalha a própria escrita
      No XML eu posso definir minhas próprias tags e, com um parser, criar várias estruturas como geração automática de notas de rodapé
      Queria saber se alguém já usou essa abordagem
    • Markdown é realmente eficiente em um nível básico
      O problema surge quando gente demais começa a empilhar sistemas em cima dele para tentar resolver algo que desde o início era “mais complexo”
      Acho que pegam um sistema originalmente feito para usos simples e, achando que estão melhorando, na verdade não percebem suas limitações e só aumentam repetição e confusão desnecessárias
      O problema não é falta de recursos, e sim estar usando fora do escopo para o qual foi projetado
      Mesmo se colocarem formatação no notepad do Windows, eu não consideraria isso uma melhoria em essência
      O notepad tinha um papel original
    • Também existe o Org-mode, maduro e confiável
      Se você não detesta Emacs, é uma boa opção
    • Eu também acho mais divertido manipular o DOM no desenvolvimento web com HTML, CSS e Javascript
      Não é preciso decorar centenas de frameworks e sintaxes complexas nessa mesma medida
      Até mandar uma IA gerar um conversor de markdown para html já resolve bem
    • Se o autocomplete dos editores de texto de 2005 já tivesse dado suporte tão bom quanto hoje a balanceamento de tags, indentação e destaque de sintaxe, talvez formatos como JSON, YAML e Markdown não tivessem feito tanto sucesso
      Em The Art of Unix Programming, de 2003, também aparece a ideia de que editar XML diretamente era doloroso, então era preciso criar vários formatos e parsers novos