Componente de tema D3 Graphviz

O Componente de Tema D3 Graphviz permite que você adicione gráficos Graphviz animados ao seu post usando a linguagem DOT. Baseado no d3-graphviz.

Repositório: GitHub - magjac/discourse-d3-graphviz: Discourse theme component for rendering animated Graphviz graphs using DOT source code · GitHub

Instalação

Veja Como instalo um Tema ou Componente de Tema?

Uso

Gráficos estáticos

Esta é apenas uma breve introdução. Você pode querer ler o detalhado Render Graphviz graphs directly in your posts - Announcements - Graphviz, que mostra o componente de tema em ação, ou entrar no fórum Graphviz, onde você pode usá-lo pessoalmente.

Para renderizar um gráfico em linha no seu post, envolva a definição do gráfico em tags dot assim:

[dot] digraph {a -\u003e b} [/dot]

A forma de bloco também é suportada:

[dot]
digraph {
  a -\u003e b
}
[/dot]

Transições animadas entre gráficos

Uma transição animada entre múltiplos gráficos é exibida quando mais de um gráfico é adicionado ao mesmo parágrafo de um post e há apenas espaços em branco entre eles:

[dot] digraph {bgcolor=lightblue a -\u003e b} [/dot]
[dot] digraph {bgcolor=lightblue a -\u003e b; a -\u003e c} [/dot]
[dot] digraph {bgcolor=lightblue a -\u003e b; a -\u003e c; b -\u003e c} [/dot]

ou

[dot]
digraph {
  a -\u003e b
}
[/dot]
[dot]
digraph {
  a -\u003e b
  a -\u003e c
}
[/dot]
[dot]
digraph {
  a -\u003e b
  a -\u003e c
  b -\u003e c
}
[/dot]

Parágrafos são separados por linhas em branco, então isso gerará três gráficos separados:

[dot] digraph {bgcolor=lightblue a -\u003e b} [/dot]

[dot] digraph {bgcolor=lightblue a -\u003e b; a -\u003e c} [/dot]

[dot] digraph {bgcolor=lightblue a -\u003e b; a -\u003e c; b -\u003e c} [/dot]

Opções

Os gráficos e as transições animadas são altamente personalizáveis por meio de opções que você pode adicionar à tag dot. Veja Render Graphviz graphs directly in your posts - Announcements - Graphviz.

8 curtidas

Um cliente relatou ontem que todo o conteúdo de suas postagens estava ausente. Desabilitei este tema para resolver o problema.

Acho que isso deveria ser movido para #theme:broken-theme, mas fiquei na dúvida se mais alguém teve problemas semelhantes.

3 curtidas

Sim, há várias situações de borda com essa abordagem. Recomendo que quem deseje usar o Graphviz consulte:

3 curtidas

@pfaffman Peço desculpas por não ter visto esta postagem e agido sobre ela mais cedo. Devo ter desativado as notificações por engano. Notei este problema eu mesmo na época, mas não tive tempo de lidar com ele então, não me lembrava de ter postado isso e não estava ciente de que mais alguém o estava usando.

Tenho o prazer de anunciar que o componente de tema d3-graphviz está funcionando novamente. Você pode vê-lo em ação em Render Graphviz graphs directly in your posts - Announcements - Graphviz.

@sam Você pode remover a tag broken agora?

4 curtidas

Instalei este componente, (Discourse 3.2.1)
copiei o exemplo acima para uma nova postagem, ele não é renderizado como um gráfico,
alguém poderia confirmar se este funciona agora, obrigado…

isso é causado pela coisa de “Content Security Policy” (Política de Segurança de Conteúdo)…
não tenho certeza do que adicionar na configuração de “content security policy script src” para fazê-lo funcionar… alguém poderia ajudar, obrigado…

Você tentou o plugin em vez disso? Parece mais estável.

Provavelmente você precisa permitir estes links:

2 curtidas

obrigado @Arkshine
nossa instância hospedada não inclui o plugin graphviz para o plano :frowning:
tentei adicionar estes 3 arquivos na configuração “content security policy script src”, não funciona…

2 curtidas

Você pode tentar este componente em vez disso?

Esta é uma maneira melhor de integrar bibliotecas de terceiros para evitar problemas de CSP.

Observação: o wrapper é diferente; não é bbcode.

2 curtidas

obrigado, @Arkshine
funciona!

2 curtidas

Se você estiver satisfeito com gráficos estáticos únicos, o discourse-graphviz-theme-component provavelmente será suficiente, mas se você quiser usar transições animadas entre gráficos e ter controle sobre vários aspectos da renderização do gráfico, você pode querer experimentar o D3 Graphviz Theme Component. Você pode vê-lo em ação em:\n\nhttps://forum.graphviz.org/t/render-graphviz-graphs-directly-in-your-posts/125\n\nNenhuma lista de permissões é necessária. Esta é a nossa configuração:\n\n

1 curtida

ei, @magjac
Gostaria de experimentar o D3 para animação, mas tive o problema acima com a coisa da política de segurança de conteúdo, como postado acima, alguma configuração muda para fazê-lo funcionar?
nossa instância está em 3.2.1 agora. obrigado…

Infelizmente, ele está usando a nova configuração que usa CSP dinâmico estrito, que você não tem na 3.2.1.

1 curtida