HN Open: GUI para editar diagramas de classes do Mermaid
(docs.mermaidchart.com)GUI para editar diagramas de classes do Mermaid
- Vantagens dos gráficos Mermaid: Os gráficos Mermaid, que permitem representar diagramas complexos rapidamente, ficaram ainda mais intuitivos e fáceis de editar diagramas de classes com as atualizações recentes. O novo recurso amplia o editor visual para oferecer suporte à interação direta com diagramas de classes e fornece várias ferramentas para melhorar a experiência do usuário com diagramas.
O que é um diagrama de classes?
- Definição de diagrama de classes: É um tipo de UML (Unified Modeling Language) que modela a estrutura de um sistema, mostrando classes, atributos, métodos e as relações entre objetos. É uma ferramenta essencial no design orientado a objetos e ajuda a visualizar como diferentes partes do sistema interagem.
- Elementos básicos:
- Classe: representa um objeto ou conceito.
- Atributo: característica ou propriedade de uma classe.
- Método: ação ou operação que uma classe pode executar.
- Relação: representa a conexão ou interação entre classes.
Novas ferramentas do editor visual
- Apresentação das ferramentas: A barra de ferramentas do editor visual apresenta várias novas ferramentas para diagramas de classes.
- Alterar a direção de renderização do diagrama: ajusta o layout do diagrama.
- Adicionar nova classe: adiciona facilmente uma nova classe ao diagrama.
- Adicionar título e notas: adiciona um título ao diagrama ou insere notas não associadas a uma classe específica.
- Adicionar namespace vazio: define um espaço reservado para classes pertencentes a um namespace específico.
- Atualizar a configuração do diagrama: alterna opções como a visibilidade de "caixas de membros vazias" para manter uma aparência limpa.
- Alterar tema e layout: permite escolher diferentes temas e ajustar a aparência do diagrama.
Criando novas classes e relações
- Como criar classes e relações:
- Criar uma nova classe a partir de uma relação existente: clique em uma classe existente no diagrama e arraste até um espaço vazio para criar uma nova classe e estabelecer uma relação direta com a classe original.
- Criar relações entre classes existentes: arraste uma linha de relação de uma classe para outra para configurar rapidamente a relação.
Editando detalhes da classe
- Modificar propriedades da classe: O editor visual oferece uma interface interativa poderosa para modificar propriedades de classes sem código. É possível configurar detalhadamente cada propriedade da classe.
- Atributos: definir modificadores de visibilidade, configurar tipos de dados e nomear atributos.
- Métodos: configurar a visibilidade dos métodos, definir tipos de retorno e especificar nomes de métodos e parâmetros.
Dicas extras para otimizar diagramas
- Experimentar diferentes layouts: use as opções de layout e tema para encontrar a melhor aparência para o diagrama.
- Adicionar contexto com notas: use o recurso de notas para explicar partes do diagrama e deixar relações complexas mais claras.
Primeiros passos
- Usando as ferramentas do editor visual do Mermaid: Explore os novos recursos para tornar os diagramas de classes mais eficientes e acessíveis. Seja criando um novo diagrama do zero ou aprimorando um diagrama existente, essas atualizações economizam tempo e esforço e permitem focar no design e na estrutura do sistema.
1 comentários
Opiniões no Hacker News
Normalmente uso Claude como front-end para Mermaid. Quando preciso explicar ideias complexas, os diagramas que o Claude cria rapidamente tornam a explicação muito mais fácil
Também tenho uma conta paga do Mermaid, mas, como de todo modo uso mais o Claude, ele continua sendo meu primeiro ponto de entrada. O que eu espero de uma GUI é poder aplicar estilo e cores a esses diagramas rápidos e mover um pouco as caixas para que as setas fiquem melhores do que no layout automático
Pelo blog, parece que o recurso de mudar a cor e o estilo de caixas individuais talvez fique de fora, mas essa é a parte que mais toma tempo quando faço manualmente no código, então seria bom ter uma ferramenta rica para isso
Mesmo existindo o próprio widget Mermaid do Claude, não consegui fazê-lo corrigir o erro no próprio código
Sou Dominic, da equipe de produto do Mermaid. Se houver problemas atuais no produto, pedidos de melhoria ou qualquer assunto sobre o qual queiram conversar, peço que me enviem um e-mail em dominic@mermaidchart.com ou reservem um horário no calendário: https://calendly.com/dominic-01w/mermaid-shapers-product-int...
Criei um editor Markdown chamado KeenWrite(https://keenwrite.com/) e permiti incorporar diagramas usando a sintaxe de três crases. Ele analisa o prefixo
diagram-e passa palavras comographvizpara o Kroki(https://kroki.io/), e o Kroki renderiza vários diagramas ASCII, incluindo MermaidEm Markdown, trechos de código-fonte originalmente são exibidos em fonte monoespaçada com um identificador de linguagem após as três crases, então foi uma decisão lamentável o GitHub ter quebrado essa convenção ao criar um padrão de fato para diagramas Mermaid
Para uma ferramenta que pretende ser amplamente adotada, acho que a renderização sem navegador deveria ser prioridade máxima como funcionalidade básica, não algo além de uma PoC
Usei isso recentemente e gostei no começo. O ChatGPT também gerou diagramas Mermaid muito bem, mas não testei o recurso de IA próprio
Porém, depois de criar um diagrama de complexidade média, tentei melhorar o layout arrastando manualmente com o recurso Whiteboard, e a coisa ficou bem instável. Era difícil organizar na posição desejada ou arrastar, e também era difícil resolver sobreposições. Também achei uma pena que alguns tipos de diagrama não oferecessem suporte ao Whiteboard
A diferença de recursos entre mermaidchart.com e mermaid.live também é confusa. Não sei se são produtos concorrentes ou variações de apps parecidos, e os nomes “Playground” e “Live Editor” também confundem. Ainda assim, fico feliz que exista e espero que continue melhorando
mermaidchart.com e mermaid.live são operados pela mesma equipe. Mermaid.live é o editor original do projeto open source de 10 anos e um editor hospedado totalmente open source
O criador do Mermaid recentemente criou o mermaidchart.com junto com o venture studio do CEO do GitLab, e estamos expandindo para mais usuários e recursos de nível empresarial. A empresa é open core e recebeu investimento de venture capital, mas o projeto Mermaid continuará open source e seguiremos investindo nele
Ferramentas de diagrama com algoritmos de layout automático eu uso principalmente só quando crio visualizações de depuração de forma programática. Para fins de documentação, prefiro desenhar à mão no OmniGraffle
Deixar grafos bonitos com ferramentas como graphviz é muito complexo e, no fim, a gente acaba abusando de recursos de forma improvisada para conseguir o visual desejado
O que realmente é necessário, na minha visão, é um algoritmo de layout de grafos baseado em aprendizado de máquina que consiga levar em conta legibilidade e estética. O que encontrei até agora é mais voltado à exibição de grafos grandes, ficando mais próximo de outra área
Se o Mermaid estiver coletando todos os pontos de edição que ocorrem na UI, acho que isso poderia virar um dataset bem bom
Um exemplo maior está aqui: https://play.d2lang.com/?script=rJLfavMwDMXv_RR6gYbvo3ce7FWG...
Não gosto de autopromoção em posts de concorrentes, mas como não competimos com o caminho de o Mermaid criar seu próprio mecanismo de layout, acho que é relevante neste contexto
Experimento da equipe da Kiel University que desenvolveu o ELK: https://github.com/kieler/KLighD
Wiki do projeto Kieler: https://rtsys.informatik.uni-kiel.de/confluence/display/KIEL...
Biblioteca de desenho de grafos baseada em restrições: https://www.adaptagrams.org/, implementação em JS: https://ialab.it.monash.edu/webcola/
Também vale ver o artigo do HOLA https://ialab.it.monash.edu/~dwyer/papers/hola2015.pdf, a demo de Confluent Graphs https://www.aviz.fr/~bbach/confluentgraphs/, o artigo sobre layout ortogonal https://arxiv.org/pdf/1408.4626.pdf e o artigo sobre compressão de power graphs https://arxiv.org/pdf/1311.6996v1.pdf
Entendo que algoritmos de layout automático são uma grande parte do apelo do Mermaid por darem velocidade, mas o layout atual às vezes pode ficar meio emaranhado
A ideia de um modelo de aprendizado de máquina é interessante, e fico curioso sobre quais seriam os requisitos básicos de um diagrama legível e bonito. Por exemplo, pode haver critérios como as arestas precisarem ser em ângulo reto ou arredondadas. Se puder compartilhar suas ideias, pedimos que envie um e-mail para dominic@mermaidchart.com
Espero que isso torne muito mais fácil obter uma renderização consistente de diagramas e fazer ajustes até o último pixel. No momento, já funciona uma versão alfa bem inicial do renderizador que usa Cassowary, e estou criando uma boa GUI
Perdi o interesse imediatamente em “Create your account”. Gostaria de poder testar o editor antes de criar uma conta e salvar no armazenamento local do navegador até decidir que gostei
Gosto de ver o Mermaid melhorando continuamente. Para diagramas de sequência, acho que https://sequencediagram.org/ é o melhor. Não tenho relação com eles, sou apenas um usuário satisfeito
Entendo que a filosofia é diferente, mas seria ótimo se chegasse o dia em que desse para usar Mermaid dentro do LaTeX. No mínimo, se houvesse uma ferramenta para converter Mermaid para TikZ de forma confiável, preparar slides ficaria muito mais fácil
Também dá para exportar como PNG/JPG, mas em geral se perde muita personalização, e a única coisa que dá para fazer é aumentar ou reduzir o tamanho para caber na página
Ontem, enquanto eu investigava isso, também vi a nova GUI apresentada neste post e, no fim, acabei sofrendo para exportar como PNG e ajustar ao layout de página do Beamer
O Draw.io incorpora diagramas Mermaid, e também há VSCode e vários plugins de IDE; fico curioso sobre o que há de especial nisso
O diferencial do Mermaid Chart é a edição bidirecional. Você pode alterar o diagrama modificando o código e, se alterar o diagrama diretamente, essa mudança é refletida automaticamente no código
Atualmente, essa edição bidirecional está disponível em diagramas de classe e fluxogramas, e a ideia é expandi-la para outros tipos populares de diagrama no futuro
A imagem “Theme Customization in Toolbar” não está renderizando
O projeto em si é bacana, mas tenho dúvidas quanto ao lado filosófico
O Mermaid pretende ser o Markdown dos diagramas, então o mais importante é poder editar e consumir em texto puro. Se for preciso usar um editor visual, não entendo por que não trazer uma ferramenta mais poderosa e sair de um formato limitado
Isso é parecido com editores Markdown WYSIWYG. Claro que deve haver um nicho, mas, se for assim, fico pensando se não seria melhor usar Google Docs ou MS Word