D3 Graphviz Theme-Komponente

Die D3 Graphviz Theme Component ermöglicht es Ihnen, animierte Graphviz-Diagramme mithilfe der DOT-Sprache in Ihren Beiträgen darzustellen. Sie basiert auf d3-graphviz.

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

Installation

Siehe Wie installiere ich ein Theme oder eine Theme-Komponente?

Verwendung

Statische Diagramme

Dies ist nur eine kurze Einführung. Vielleicht möchten Sie den detaillierten Beitrag Render Graphviz graphs directly in your posts - Announcements - Graphviz lesen, der die Theme-Komponente in Aktion zeigt, oder dem Graphviz-Forum beitreten, wo Sie es selbst ausprobieren können.

Um ein Diagramm inline in Ihrem Beitrag darzustellen, umschließen Sie die Diagrammdefinition mit dot-Tags wie folgt:

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

Die Blockform wird ebenfalls unterstützt:

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

Animierter Übergang zwischen Diagrammen

Ein animierter Übergang zwischen mehreren Diagrammen wird angezeigt, wenn mehr als ein Diagramm denselben Absatz eines Beitrags hinzufügt und sich nur Leerzeichen zwischen ihnen befinden:

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

oder

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

Absätze werden durch Leerzeilen getrennt, sodass dies drei separate Diagramme erzeugt:

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

Optionen

Die Diagramme und die animierten Übergänge sind durch Optionen, die Sie zum dot-Tag hinzufügen können, stark anpassbar. Siehe Render Graphviz graphs directly in your posts - Announcements - Graphviz.

8 „Gefällt mir“

Ein Kunde hat gestern gemeldet, dass der gesamte Inhalt seiner Beiträge fehlte. Ich habe dieses Theme deaktiviert, um das Problem zu beheben.

Ich denke, das sollte nach #theme:broken-theme verschoben werden, aber ich frage mich, ob andere ebenfalls Probleme hatten.

3 „Gefällt mir“

Ja, bei diesem Ansatz gibt es einige Randfälle. Wir empfehlen jedem, der Graphviz verwenden möchte, Folgendes:

3 „Gefällt mir“

@pfaffman Entschuldigung, dass ich diesen Beitrag nicht früher gesehen und darauf reagiert habe. Ich muss versehentlich die Benachrichtigungen ausgeschaltet haben. Ich habe dieses Problem selbst schon vor einiger Zeit bemerkt, hatte aber damals keine Zeit, mich darum zu kümmern, erinnerte mich nicht daran, dass ich es gepostet hatte, und war mir nicht bewusst, dass es sonst noch jemand benutzt.

Ich freue mich, Ihnen mitteilen zu können, dass die d3-graphviz-Themenkomponente wieder funktioniert. Sie können sie unter Render Graphviz graphs directly in your posts - Announcements - Graphviz in Aktion sehen.

@sam Können Sie das broken-Tag jetzt entfernen?

4 „Gefällt mir“

Ich habe diese Komponente installiert (Discourse 3.2.1)
und das obige Beispiel in einen neuen Beitrag kopiert. Es wird nicht als Diagramm gerendert.
Könnte jemand bestätigen, ob dies jetzt funktioniert? Danke…

Dies wird durch die “Content Security Policy” verursacht…
Ich bin mir nicht sicher, was ich in der Einstellung “content security policy script src” hinzufügen soll, damit es funktioniert… Könnte mir jemand helfen? Danke…

Haben Sie stattdessen das Plugin ausprobiert? Es scheint stabiler zu sein.

Sie müssen wahrscheinlich diese Links zulassen:

2 „Gefällt mir“

Danke @Arkshine
Unsere gehostete Instanz enthält nicht das Graphviz-Plugin für den Plan :frowning:
Habe versucht, diese 3 Dateien in die Einstellung “content security policy script src” einzufügen, es funktioniert nicht…

2 „Gefällt mir“

Können Sie stattdessen diese Komponente ausprobieren?

Dies ist ein besserer Weg, um Drittanbieterbibliotheken zu integrieren und CSP-Probleme zu vermeiden.

Hinweis: Der Wrapper ist anders; es ist kein BBCode.

2 „Gefällt mir“

Danke, @Arkshine
es funktioniert!

2 „Gefällt mir“

Wenn Sie mit einzelnen statischen Graphen zufrieden sind, ist die discourse-graphviz-theme-component wahrscheinlich ausreichend. Wenn Sie jedoch animierte Übergänge zwischen Graphen verwenden und verschiedene Aspekte des Graphen-Renderings steuern möchten, sollten Sie die D3 Graphviz Theme Component ausprobieren. Sie können sie in Aktion sehen unter:\n\nhttps://forum.graphviz.org/t/render-graphviz-graphs-directly-in-your-posts/125\n\nKeine Whitelisting erforderlich. Dies ist unsere Einrichtung:\n\n

1 „Gefällt mir“

Hallo @magjac
Ich würde gerne das D3-Ding für Animationen ausprobieren, aber ich habe das oben genannte Problem mit der Content-Security-Policy, wie oben gepostet. Gibt es Einstellungen, die geändert werden können, damit es funktioniert?
Unsere Instanz ist jetzt auf 3.2.1. Danke…

Leider verwendet er die neue Einstellung, die strikte dynamische CSP verwendet, welche Sie in 3.2.1 nicht haben.

1 „Gefällt mir“