Desenhando Diagramas Claros para Documentação com Símbolos no ASCII Draw
Toda vez que você precisa desenhar um pequeno diagrama de arquitetura diretamente no código ou em um arquivo README, a luta com os espaços começa. Você tenta conectar dois retângulos com linhas, adicionar uma seta, corrigir uma linha, e todo o layout se desloca três caracteres para a direita. Editores web como asciiflow às vezes ajudam, mas arrastar o diagrama de um lado para outro no navegador rapidamente se torna tedioso.
Recentemente encontrei o projeto ASCII Draw do desenvolvedor Nokse22. É um aplicativo nativo para Linux criado especificamente para desenhar diagramas, tabelas e gráficos de texto usando pseudográficos.
Por que um desenvolvedor deveria desenhar com símbolos
Gráficos de texto na documentação têm uma grande vantagem: eles vivem diretamente no repositório como texto simples. Para visualizar esse tipo de diagrama, você não precisa de renderização SVG, imagens externas ou suporte a Mermaid da plataforma de hospedagem. O diagrama abre em qualquer terminal, qualquer editor de texto, e com git diff você pode ver exatamente o que mudou na arquitetura.
O ASCII Draw fornece uma tela gráfica familiar onde, em vez de pixels, você trabalha com uma grade de caracteres monoespaçados. Você desenha um bloco com o mouse, traça uma linha, adiciona um rótulo e copia o resultado diretamente para a área de transferência.
O que a aplicação pode fazer
Existem ferramentas suficientes para a maioria das tarefas de engenharia:
- Retângulos e blocos. Vários estilos de borda estão disponíveis (linhas simples, linhas duplas, cantos arredondados) e preenchimento com um caractere selecionado.
- Linhas e setas. Você pode desenhar linhas cartesianas retas em 90 graus, conexões escalonadas entre blocos e linhas à mão livre.
- Estruturas de árvore e tabelas. Para listagens de diretórios ou estruturas de entidades, existem modelos de árvore, e um gerador de tabelas ajuda a alinhar colunas sem recalcular espaços manualmente.
- Texto e fontes FIGlet. Texto regular pode ser transformado em cabeçalhos decorativos grandes se você precisar criar uma faixa de inicialização para um utilitário de console.
Tela e conjunto de ferramentas
Fontes e manipulação de rótulos
Catálogo de caracteres disponíveis
Seleção de estilo de linha
Salvando em arquivo ou copiando para a área de transferência
Elogios especiais vão para a borracha, ferramenta de preenchimento e movimento conveniente de fragmentos. Se você precisar mover um bloco um pouco para baixo, basta selecionar a área com uma moldura e arrastá-la para a nova posição.
Por baixo do capô
O projeto é escrito em Python 3.8+ usando a pilha gráfica GTK4 e a biblioteca Libadwaita. A aplicação se encaixa perfeitamente no ambiente GNOME, suporta temas do sistema e atalhos de teclado.
Para gerar texto estilizado, o autor conectou pyfiglet, e para um conjunto de caracteres estendido usou a biblioteca emoji. O projeto tem uma licença aberta — GPL v3.0.
Onde isso é útil na prática
- Formatando README e notas de arquitetura no repositório.
- Comentários em seções de código complexas (por exemplo, um diagrama de máquina de estados finitos ou formato de pacote binário).
- Prototipando interfaces para aplicações TUI.
- Mantendo notas técnicas em bases de conhecimento em texto simples e markdown.
Como instalar e experimentar
A maneira mais fácil para usuários Linux é instalar o build do Flathub:
flatpak install flathub io.github.nokse22.asciidraw
flatpak run io.github.nokse22.asciidraw
Se você quiser construir o projeto a partir do código-fonte ou fazer alterações, basta clonar o repositório:
git clone https://github.com/Nokse22/ascii-draw.git
cd ascii-draw
Depois disso, o projeto pode ser aberto no ambiente GNOME Builder e iniciado com um botão.
Se você trabalha no Linux e frequentemente escreve documentação diretamente no código, o ASCII Draw vale a pena manter à mão. É uma ferramenta especializada elegante que resolve uma tarefa específica e economiza tempo ao criar diagramas. A principal limitação do projeto hoje é seu foco no ecossistema GNOME e Linux, então usuários de macOS e Windows precisarão encontrar outras opções ou executar o utilitário através de virtualização.
Projetos relacionados