WordPress.org

Plugin Directory

Test out the new Plugin Directory and let us know what you think.

TFO Graphviz

Generates Graphviz graphics using shortcodes. Supports almost all Graphviz features.

What is Graphviz?

Graphviz is a way of generating visualisations of structural relationships between objects. Almost any kind of diagram where something connects to something else can be drawn and automatically laid out using the language DOT.

How do I use this plugin?

Use the [graphviz] shortcode. Details are in the Description section.

How to I write DOT?

The online documentation for Graphviz is terse and not especially helpful, in particular the DOT language page is only helpful if you happen to be able to read an approximation of BNF.

There are however several other introductions to Graphviz and DOT, including an excerpt on the O'Reilly LinuxDevCenter.com site. Another approach would be to look at the examples in the Graphviz gallery.

Users should note that DOT syntax varies between Graphviz processors and also between versions of those processors. If in doubt, find an example and experiment with it.

Where can I see examples?

Can I manipulate the rendered graph using CSS in my WordPress theme?

The img elements are tagged with 'class="graphviz"'.

Nothing is being rendered, maybe my DOT is broken?

If you're using a local Graphviz renderer then errors from Graphviz should be presented where you expect the graph to appear. Note that because of how WordPress submits content to plugins the line numbering will not always match what you expect.

The error message when using the dot binary will contain the command line used as well as a line-numbered copy of the DOT that was used.

I'm getting strange errors that make no sense, what gives?

WordPress encodes HTML entities inside the shortcode block which this plugin attempts to demangle.

Unfortunately WordPress can also try to do smart character replacement, such as "..." into a UNICODE ellipsis character. The Graphviz plugin contains a mapping of many of these back to their ASCII equivalents, but it may not be complete. Let us know if you think this is breaking your DOT. It's also possible that non-ASCII7 characters do strange things too.

Adding define("TFO_GV_DEBUG", true) to wp_config.php will cause the plugin to create some diagnostic files in your system tmp directory. The file pre-N.dot is the contents of the DOT as given to the plugin by WordPress, post-N.dot is the results of the plugin attempting to demangle it. The N is a number that is incremented for each shortcode section interpreted. The plugin does not clean these files up.

How do I install the Graphviz program (not this plugin) locally?

This depends on your local operating system. You will find some details at http://www.graphviz.org/Download.php but many systems also have it in their own package management system, for example this is package graphviz on Debian, Ubuntu and Fedora systems.

There are currently two ways to use a local installation of Graphviz. The settings page will only show options for those methods that are actually available and configured correctly.

  1. Using a local Graphviz installation and the dot binary. You configure the path to this binary on the admin settings page of the plugin.
  2. Using PHP bindings to the Graphviz library. This requires that gv.php is available.

I've installed the PHP bindings but Graphviz doesn't work!

This requires that gv.php is available and that the associated module is either already loaded or loadable with dl().

The use of dl() is often disabled in php.ini and doesn't work on multithreaded webservers; it's entirely disabled in modern Apache2 httpd modules.

For these cases you must ensure the library is loaded with an entry like extension=gv.so or similar somewhere in the PHP configuration.

Requires: 4.2.0 or higher
Compatible up to: 4.7.2
Last Updated: 2 weeks ago
Active Installs: 90+

Ratings

5 out of 5 stars

Support

Got something to say? Need help?

Compatibility

+
=
Not enough data

1 person says it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1
100,1,1 100,1,1