Componente de tema Graphviz para D3

El Componente de Tema D3 Graphviz te permite agregar gráficos animados de Graphviz a tu publicación utilizando el lenguaje DOT. Basado en d3-graphviz.

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

Instalación

Consulta ¿Cómo instalo un tema o un componente de tema?

Uso

Gráficos estáticos

Esta es solo una breve introducción. Es posible que quieras leer el artículo detallado Render Graphviz graphs directly in your posts - Announcements - Graphviz, que muestra el componente del tema en acción, o unirte al foro de Graphviz, donde puedes usarlo tú mismo.

Para renderizar un gráfico en línea en tu publicación, envuelve la definición del gráfico en etiquetas dot de la siguiente manera:

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

También se admite la forma de bloque:

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

Transiciones animadas entre gráficos

Se muestra una transición animada entre múltiples gráficos cuando se agrega más de un gráfico al mismo párrafo de una publicación y solo hay espacios en blanco entre ellos:

[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]

o

[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]

Los párrafos están separados por líneas en blanco, por lo que esto generará tres 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]

Opciones

Los gráficos y las transiciones animadas son altamente personalizables mediante opciones que puedes agregar a la etiqueta dot. Consulta Render Graphviz graphs directly in your posts - Announcements - Graphviz.

8 Me gusta

Un cliente informó ayer que todo el contenido de sus publicaciones estaba ausente. Desactivé este tema para resolver el problema.

Creo que esto debería trasladarse a #theme:broken-theme, pero me pregunto si alguien más ha tenido problemas similares.

3 Me gusta

Sí, hay un montón de casos extremos con este enfoque; recomendamos que cualquiera que quiera usar Graphviz consulte:

3 Me gusta

@pfaffman Disculpas por no haber visto esta publicación y actuar sobre ella antes. Debí haber desactivado las notificaciones por error. Noté este problema yo mismo en su momento, pero no tuve tiempo de solucionarlo entonces, no recordaba haberlo publicado y no era consciente de que nadie más lo estuviera usando.

Me complace anunciar que el componente temático d3-graphviz vuelve a funcionar. Puedes verlo en acción en Render Graphviz graphs directly in your posts - Announcements - Graphviz.

@sam ¿Puedes eliminar la etiqueta broken ahora?

4 Me gusta

Instalé este componente, (Discourse 3.2.1)
copié el ejemplo anterior en una nueva publicación, no se renderiza como un gráfico,
¿alguien podría confirmar si este funciona ahora, gracias…

esto es causado por la cosa de “Content Security Policy”…
no estoy seguro de qué agregar en la configuración de “content security policy script src” para que funcione… ¿alguien podría ayudar, gracias…

¿Probaste el plugin en su lugar? Parece más estable.

Probablemente necesites permitir estos enlaces:

2 Me gusta

gracias @Arkshine
nuestra instancia alojada no incluye el plugin graphviz para el plan :frowning:
intenté agregar estos 3 archivos en la configuración “content security policy script src”, no funciona…

2 Me gusta

¿Puedes probar este componente en su lugar?

Esta es una mejor manera de integrar bibliotecas de terceros para evitar problemas de CSP.

Nota: el wrapper es diferente; no es bbcode.

2 Me gusta

gracias, @Arkshine
¡funciona!

2 Me gusta

Si está satisfecho con gráficos estáticos individuales, el discourse-graphviz-theme-component probablemente sea suficiente, pero si desea utilizar transiciones animadas entre gráficos y poder controlar varios aspectos de la representación del gráfico, es posible que desee probar el D3 Graphviz Theme Component. Puede verlo en acción en:

No es necesario incluir en la lista blanca. Esta es nuestra configuración:

1 me gusta

Oye, @magjac
Me gustaría probar el de D3 para animación, pero tengo el problema anterior con la política de seguridad de contenido, como se publicó anteriormente, ¿algunos ajustes cambian para que funcione?
nuestra instancia está ahora en la 3.2.1. gracias…

Desafortunadamente, está utilizando la nueva configuración que utiliza CSP dinámico estricto, que no tiene en la versión 3.2.1.

1 me gusta