CINXE.COM

plugin:graphviz [DokuWiki]

<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>plugin:graphviz [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="plugin,graphviz"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/plugin:graphviz?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&amp;ns=plugin"/> <link rel="edit" title="Edit this page" href="/plugin:graphviz?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/plugin:graphviz"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/plugin:graphviz"/> <link rel="canonical" href="https://www.dokuwiki.org/plugin:graphviz"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <script >var NS='plugin';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"plugin:graphviz","namespace":"plugin","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e&amp;lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/plugin:graphviz?do=login&amp;sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="plugin:graphviz" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="plugin:graphviz" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">&gt;</button></div></form> </div> <ul> <li class="action recent"><a href="/plugin:graphviz?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/plugin:graphviz?do=media&amp;ns=plugin" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/plugin:graphviz?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/plugin:graphviz" class="breadcrumbs" title="plugin:graphviz">graphviz</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> &amp; <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> &amp; <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>plugin:graphviz</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#graphviz_plugin">Graphviz Plugin</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#download_and_installation">Download and Installation</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#changes">Changes</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#configuration">Configuration</a></div></li> <li class="level2"><div class="li"><a href="#syntax_and_usage">Syntax and Usage</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#example">Example</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#how_to_display_dot_maps">how to display dot MAPs</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#hyperlinks_from_graphviz_nodes">Hyperlinks from Graphviz nodes</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#compatibility">Compatibility</a></div></li> <li class="level2"><div class="li"><a href="#faq">FAQ</a></div></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="graphviz_plugin">Graphviz Plugin</h1> <div class="level1"> <div class="pluginrepo_entry"><div class="usageInfo"><div class="compatibility"><p class="label">Compatible with DokuWiki</p><p>anteater, 2011-05-25, adora belle, weatherwax, ponder stibbons, Hrun, Detritus</p></div><ul class="actions"><li><a class="download" href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/zipball/master">Download</a></li><li><a class="bugs" href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues">Report bugs</a></li><li><a class="donate" href="http://donate.dokuwiki.org/graphviz">Donate</a></li></ul><div class="clearer"></div></div><div class="mainInfo"><p class="description"><a class="media" href="/plugins"><img alt="plugin" class="medialeft" src="/lib/plugins/pluginrepo/images/dwplugin.png" width="60" height="60" /></a> Graph Visualization (from text with links between objects to image)</p></div><div class="metaInfo"><dl><dt>Last updated on</dt><dd>2016-02-03</dd><dt>Provides</dt><dd><a href="/plugins?plugintype=1#extension__table" class="wikilink1" title="List all Syntax plugins">Syntax</a></dd><dt>Repository</dt><dd><a class="urlextern" href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/">Source</a></dd></dl></div><div class="moreInfo"><div class="notify"><p>This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.</p></div><p class="similar">Similar to <a href="/plugin:dataplot" class="wikilink1" title="plugin:dataplot" data-wiki-id="plugin:dataplot">dataplot</a>, <a href="/plugin:ditaa" class="wikilink1" title="plugin:ditaa" data-wiki-id="plugin:ditaa">ditaa</a>, <a href="/plugin:flowchartjs" class="wikilink1" title="plugin:flowchartjs" data-wiki-id="plugin:flowchartjs">flowchartjs</a>, <a href="/plugin:flowcharts" class="wikilink1" title="plugin:flowcharts" data-wiki-id="plugin:flowcharts">flowcharts</a>, <a href="/plugin:format" class="wikilink1" title="plugin:format" data-wiki-id="plugin:format">format</a>, <a href="/plugin:gnuplot" class="wikilink1" title="plugin:gnuplot" data-wiki-id="plugin:gnuplot">gnuplot</a>, <a href="/plugin:graphgear" class="wikilink1" title="plugin:graphgear" data-wiki-id="plugin:graphgear">graphgear</a>, <a href="/plugin:mindmap" class="wikilink1" title="plugin:mindmap" data-wiki-id="plugin:mindmap">mindmap</a>, <a href="/plugin:plantuml" class="wikilink1" title="plugin:plantuml" data-wiki-id="plugin:plantuml">plantuml</a>, <a href="/plugin:plantumlparser" class="wikilink1" title="plugin:plantumlparser" data-wiki-id="plugin:plantumlparser">plantumlparser</a>, <a href="/plugin:seqdia" class="wikilink1" title="plugin:seqdia" data-wiki-id="plugin:seqdia">seqdia</a>, <a href="/plugin:svgedit" class="wikilink1" title="plugin:svgedit" data-wiki-id="plugin:svgedit">svgedit</a>, <a href="/plugin:wavedrom" class="wikilink1" title="plugin:wavedrom" data-wiki-id="plugin:wavedrom">wavedrom</a></p><p class="tags">Tagged with <a href="/plugins?plugintag=diagram#extension__table" class="wikilink1" title="List all plugins with this tag">diagram</a>, <a href="/plugins?plugintag=graphviz#extension__table" class="wikilink1" title="List all plugins with this tag">graphviz</a>, <a href="/plugins?plugintag=images#extension__table" class="wikilink1" title="List all plugins with this tag">images</a>, <a href="/plugins?plugintag=media#extension__table" class="wikilink1" title="List all plugins with this tag">media</a></p><p class="needed">Needed for <a href="/plugin:directions" class="wikilink1" title="plugin:directions" data-wiki-id="plugin:directions">directions</a></p></div><div class="authorInfo"><strong>By <a href="mailto:andi%20%5Bat%5D%20splitbrain%20%5Bdot%5D%20org" class="mail" title="andi [at] splitbrain [dot] org">Andreas Gohr</a></strong><ul><li><a href="/plugin:badbehaviour" class="wikilink1" title="plugin:badbehaviour" data-wiki-id="plugin:badbehaviour">badbehaviour</a></li> <li><a href="/plugin:amazon" class="wikilink1" title="plugin:amazon" data-wiki-id="plugin:amazon">amazon</a></li> <li><a href="/plugin:xfortune" class="wikilink1" title="plugin:xfortune" data-wiki-id="plugin:xfortune">xfortune</a></li> <li><a href="/plugin:statistics" class="wikilink1" title="plugin:statistics" data-wiki-id="plugin:statistics">statistics</a></li> <li><a href="/plugin:translation" class="wikilink1" title="plugin:translation" data-wiki-id="plugin:translation">translation</a></li> <li><a href="/plugin:captcha" class="wikilink1" title="plugin:captcha" data-wiki-id="plugin:captcha">captcha</a></li> <li><a href="/plugin:acl" class="wikilink1" title="plugin:acl" data-wiki-id="plugin:acl">acl</a></li> <li><a href="/plugin:info" class="wikilink1" title="plugin:info" data-wiki-id="plugin:info">info</a></li> <li><a href="/plugin:ditaa" class="wikilink1" title="plugin:ditaa" data-wiki-id="plugin:ditaa">ditaa</a></li> <li><a href="/plugin:readability" class="wikilink1" title="plugin:readability" data-wiki-id="plugin:readability">readability</a></li> <li>and 60 more</li></ul></div></div> <p> This plugin can create directed and non-directed graph images from a textual description language called “dot” using the Graphviz program. It can use a locally installed graphviz or use Google&#039;s chart <abbr title="Application Programming Interface">API</abbr> for rendering. </p> <p> The plugin supports exporting to OpenOffice through the <a href="/plugin:odt" class="wikilink1" title="plugin:odt" data-wiki-id="plugin:odt">ODT Plugin</a> (only with a local graphviz install). </p> <p> For more information on Graphviz and the dot language refer to the <a href="http://www.graphviz.org/Documentation.php" class="urlextern" title="http://www.graphviz.org/Documentation.php">Graphviz documentation</a> </p> <p> This plugin was originally written by <a href="mailto:calle%20%5Bat%5D%20ioslo%20%5Bdot%5D%20net" class="mail" title="calle [at] ioslo [dot] net">Carl-Christian Salvesen</a>. The current plugin is a nearly complete rewrite and differs on how it works internally and where graphs are stored. </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Graphviz Plugin] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="graphviz_plugin" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-1400" /><button type="submit" title="Graphviz Plugin">Edit</button></div></form></div> <h2 class="sectionedit2" id="download_and_installation">Download and Installation</h2> <div class="level2"> <p> Search and install the plugin using the <a href="/plugin:extension" class="wikilink1" title="plugin:extension" data-wiki-id="plugin:extension">Extension Manager</a>. Refer to <a href="/plugins" class="wikilink1" title="plugins" data-wiki-id="plugins">Plugins</a> on how to install plugins manually. </p> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Download and Installation] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="download_and_installation" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1401-1578" /><button type="submit" title="Download and Installation">Edit</button></div></form></div> <h3 class="sectionedit3" id="changes">Changes</h3> <div class="level3"> <ul class="rss"><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/4ed4c28ac5651b4f70c2863492685a6cf9503575" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/4ed4c28ac5651b4f70c2863492685a6cf9503575">Version upped</a> (2016-07-06 20:43)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/26f71077f6f94cf104ae4b1bd8242f7f22a22782" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/26f71077f6f94cf104ae4b1bd8242f7f22a22782">Version upped</a> (2016-02-03 18:16)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/bb7ab35a5e901487b4812fe92f3ccec1a6e8846b" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/bb7ab35a5e901487b4812fe92f3ccec1a6e8846b">Merge pull request #15 from splitbrain-forks/php7-signature</a> (2016-02-02 16:25)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/89ee0e718f2a7dcadd2a6f5b6a54515f9a5f4ef9" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/89ee0e718f2a7dcadd2a6f5b6a54515f9a5f4ef9">Adjust method signatures to match parent</a> (2016-02-02 16:06)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/55cdf26d8c5c7879aada6b84d73fa2e13bb5b844" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/55cdf26d8c5c7879aada6b84d73fa2e13bb5b844">Version upped</a> (2016-01-24 14:11)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/df4b940e9eca5d09f83b2cbfd9cb565f7b2adf4e" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/df4b940e9eca5d09f83b2cbfd9cb565f7b2adf4e">Version upped</a> (2014-05-21 19:36)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/d5d42fa5832d62c3ccf7572c9ff96227e73b4e02" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/d5d42fa5832d62c3ccf7572c9ff96227e73b4e02">Merge pull request #8 from araname/master</a> (2014-01-02 11:16)</div></li><li><div class="li"><a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/3e3413290b99f23062c88499a954613ea5765059" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/commit/3e3413290b99f23062c88499a954613ea5765059">update message and add translation</a> (2013-12-25 12:25)</div></li></ul> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Changes] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="changes" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1579-1686" /><button type="submit" title="Changes">Edit</button></div></form></div> <h2 class="sectionedit4" id="configuration">Configuration</h2> <div class="level2"> <p> The full path to your graphviz&#039; <code>dot</code> binary can be configured in the config manager. When it isn&#039;t configured, remote rendering at Google is used. </p> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Configuration] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="configuration" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1687-1864" /><button type="submit" title="Configuration">Edit</button></div></form></div> <h2 class="sectionedit5" id="syntax_and_usage">Syntax and Usage</h2> <div class="level2"> <p> Any Graphviz compatible graph definition can be given with <code>graphviz</code> tags. </p> <p> The rendering engine can optionally be given as argument in the opening tag. Supported are <code>dot</code>, <code>neato</code>, <code>twopi</code>, <code>circo</code> and <code>fdp</code> with <code>dot</code> being the default: </p> <ul> <li class="level1"><div class="li"> <code>dot</code> – “hierarchical” or layered drawings of directed graphs. This is the best tool to use if edges have directionality.</div> </li> <li class="level1"><div class="li"> <code>neato</code> – “spring model” layouts. This is the best tool to use if the graph is not too large (about 100 nodes) and you don&#039;t know anything else about it. Neato attempts to minimize a global energy function, which is equivalent to statistical multi-dimensional scaling.</div> </li> <li class="level1"><div class="li"> <code>fdp</code> – “spring model” layouts similar to those of neato, but does this by reducing forces rather than working with energy.</div> </li> <li class="level1"><div class="li"> <code>twopi</code> – radial layouts, after Graham Wills 97. Nodes are placed on concentric circles depending their distance from a given root node.</div> </li> <li class="level1"><div class="li"> <code>circo</code> – circular layout, after Six and Tollis 99, Kauffman and Wiese 02. This is suitable for certain diagrams of multiple cyclic structures, such as certain telecommunications networks.</div> </li> </ul> <p> You can also specify <code>left</code>, <code>center</code> or <code>right</code> to align the resulting image. </p> <p> A parameter in the form of <code><em>&lt;number&gt;</em>x<em>&lt;number&gt;</em></code> is interpreted as wanted output size. To only specify width <code>width=<em>&lt;number&gt;</em></code> or <code><em>&lt;number&gt;</em>x0</code> can be used, for height <code>height=<em>&lt;number&gt;</em></code> or <code>0x<em>&lt;number&gt;</em></code>. </p> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Syntax and Usage] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="syntax_and_usage" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1865-3347" /><button type="submit" title="Syntax and Usage">Edit</button></div></form></div> <h3 class="sectionedit6" id="example">Example</h3> <div class="level3"> <pre class="code">&lt;graphviz dot right 800x400&gt; digraph ATN { rankdir=LR; s25[fontsize=11, label=&quot;25&quot;, shape=doublecircle, fixedsize=true, width=.6]; s239[fontsize=24,label=&quot;239&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s240[fontsize=11,label=&quot;240&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s241[fontsize=11,label=&quot;241&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s242[fontsize=11,label=&quot;242&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s243[fontsize=11,label=&quot;{&amp;rarr;\n243\nd=24|{&lt;p0&gt;|&lt;p1&gt;}}&quot;, shape=record, fixedsize=false, peripheries=1]; s244[fontsize=11,label=&quot;&amp;larr;\n244&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s245[fontsize=11,label=&quot;245&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s246[fontsize=11,label=&quot;246&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s247[fontsize=11,label=&quot;&amp;rarr;\n247+&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s24[fontsize=11,label=&quot;24&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s248[fontsize=11,label=&quot;&amp;larr;\n248&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s249[fontsize=11,label=&quot;{249+\nd=25|{&lt;p0&gt;|&lt;p1&gt;}}&quot;, shape=record, fixedsize=false, peripheries=1]; s250[fontsize=11,label=&quot;250&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s251[fontsize=11,label=&quot;251&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s252[fontsize=11,label=&quot;252&quot;, shape=circle, fixedsize=true, width=.55, peripheries=1]; s24 -&gt; s239 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s239 -&gt; s247 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&#039;{&#039;&quot;, arrowhead = normal]; s247 -&gt; s240 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s240 -&gt; s243 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&#039;case&#039;&quot;, arrowhead = normal]; s243:p0 -&gt; s241 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s243:p1 -&gt; s242 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s241 -&gt; s244 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&#039;null&#039;&quot;, arrowhead = normal]; s242 -&gt; s244 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&lt;element&gt;&quot;, arrowhead = normal]; s244 -&gt; s245 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s245 -&gt; s246 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&#039;=&gt;&#039;&quot;, arrowhead = normal]; s246 -&gt; s248 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&lt;block&gt;&quot;, arrowhead = normal]; s248 -&gt; s249 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s249:p0 -&gt; s247 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;, style=&quot;dashed&quot;]; s249:p1 -&gt; s250 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s250 -&gt; s251 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; s251 -&gt; s252 [fontsize=11, fontname=&quot;Courier&quot;, arrowsize=.7, label = &quot;&#039;}&#039;&quot;, arrowhead = normal]; s252 -&gt; s25 [fontname=&quot;Times-Italic&quot;, label=&quot;&amp;epsilon;&quot;]; } &lt;/graphviz&gt;</pre> <p> <img src="/lib/exe/fetch.php?tok=80a046&amp;media=http%3A%2F%2Fimg97.imageshack.us%2Fimg97%2F2613%2Fdotb.png" class="mediacenter" loading="lazy" alt="" /> </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Example] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="example" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="3348-6257" /><button type="submit" title="Example">Edit</button></div></form></div> <h2 class="sectionedit7" id="how_to_display_dot_maps">how to display dot MAPs</h2> <div class="level2"> <ul> <li class="level1"><div class="li"> For UNIX users ( since assumes a PATH of /usr/bin/dot )</div> </li> </ul> <p> Using an old version of Graphviz I fixed to display <strong>dot</strong> maps <em>(nodes that when you click on them link to a <abbr title="Uniform Resource Locator">URL</abbr> ie another page in your wiki or an external link.) </em> </p> <p> This is a fragment of the render section of the syntax file ie ( I replaced my render function with this ): </p> <dl class="file"> <dt><a href="/_export/code/plugin:graphviz?codeblock=1" title="Download Snippet" class="mediafile mf_php">r.php</a></dt> <dd><pre class="code file PHP"> <span class="co4">/** * Create output */</span> <span class="kw2">function</span> render<span class="br0">&#40;</span><span class="re0">$mode</span><span class="sy0">,</span> <span class="sy0">&amp;</span><span class="re0">$renderer</span><span class="sy0">,</span> <span class="re0">$data</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw2">global</span> <span class="re0">$conf</span><span class="sy0">;</span> <span class="kw2">global</span> <span class="re0">$gr_ext</span><span class="sy0">;</span> <span class="re0">$gr_ext</span><span class="sy0">=</span><span class="st_h">'png'</span><span class="sy0">;</span> <span class="re0">$grf_ext</span><span class="sy0">=</span><span class="st_h">'.'</span><span class="sy0">.</span><span class="re0">$gr_ext</span><span class="sy0">;</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">'map'</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span><a href="http://www.php.net/is_dir"><span class="kw3">is_dir</span></a><span class="br0">&#40;</span><span class="re0">$conf</span><span class="br0">&#91;</span><span class="st_h">'mediadir'</span><span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st_h">'/graphviz'</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> io_mkdir_p<span class="br0">&#40;</span><span class="re0">$conf</span><span class="br0">&#91;</span><span class="st_h">'mediadir'</span><span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st_h">'/graphviz'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//Using dokuwiki framework</span> <span class="re0">$hash</span> <span class="sy0">=</span> <a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><a href="http://www.php.net/serialize"><span class="kw3">serialize</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$filename</span> <span class="sy0">=</span> <span class="re0">$conf</span><span class="br0">&#91;</span><span class="st_h">'mediadir'</span><span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st_h">'/graphviz/'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="re0">$grf_ext</span><span class="sy0">;</span> <span class="re0">$url</span> <span class="sy0">=</span> ml<span class="br0">&#40;</span><span class="st_h">'graphviz:'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="re0">$grf_ext</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//Using dokuwiki framework</span> &nbsp; <span class="co1">//$renderer-&gt;doc .= '&lt;p&gt; valor filename=['.$filename.']&lt;/p&gt;';</span> <span class="co1">//$renderer-&gt;doc .= '&lt;p&gt; valor url=['.$url .']&lt;/p&gt;';</span> &nbsp; <span class="co1">// if already exist render</span> <span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/is_readable"><span class="kw3">is_readable</span></a><span class="br0">&#40;</span><span class="re0">$filename</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// cached.</span> &nbsp; <span class="co1">// generate the map to variable</span> <span class="re0">$kk1</span> <span class="sy0">=</span> <span class="st0">&quot;sed '1d'|sed '<span class="es1">\$</span>d'&quot;</span><span class="sy0">;</span> <span class="re0">$cmd</span> <span class="sy0">=</span> <span class="st0">&quot;echo '<span class="es4">$data[0]</span>' | /usr/bin/dot -Tcmapx | &quot;</span><span class="sy0">.</span><span class="re0">$kk1</span><span class="sy0">;</span> <span class="co1">//$renderer-&gt;doc .= '&lt;p&gt; DSP-graph value cmd=&gt;['.$cmd.']&lt;/p&gt;'; //Debug cmd</span> <a href="http://www.php.net/exec"><span class="kw3">exec</span></a><span class="br0">&#40;</span> <span class="re0">$cmd</span><span class="sy0">,</span> <span class="re0">$map</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//$renderer-&gt;doc .= '&lt;p&gt; valor map=['.$map .']&lt;/p&gt;';</span> <span class="re0">$maphtml</span> <span class="sy0">=</span> <a href="http://www.php.net/implode"><span class="kw3">implode</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">,</span><span class="re0">$map</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add the target - cant do this with DOT</span> <span class="re0">$maphtml</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;&lt;area &quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;area target=<span class="es1">\&quot;</span>&quot;</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\&quot;</span> &quot;</span><span class="sy0">,</span><span class="re0">$maphtml</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="co1">// Include Map in the page</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;map id=&quot;'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot; name=&quot;'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot;&gt;'</span><span class="sy0">;</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="re0">$maphtml</span><span class="sy0">;</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;/map&gt;'</span><span class="sy0">;</span> &nbsp; <span class="co1">// Link the Image below with the map above by hash</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;img src=&quot;'</span><span class="sy0">.</span><span class="re0">$url</span><span class="sy0">.</span><span class="st_h">'&quot; border=&quot;0&quot; usemap=&quot;#'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot; Ismap&gt;'</span><span class="sy0">;</span> &nbsp; <span class="kw1">return</span> <span class="kw4">true</span><span class="sy0">;</span> <span class="br0">&#125;</span> &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">createImageMap</span><span class="br0">&#40;</span><span class="re0">$filename</span><span class="sy0">,</span> <span class="re0">$data</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$data</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> &nbsp; <span class="co1">// generate the map </span> <span class="re0">$kk1</span> <span class="sy0">=</span> <span class="st0">&quot;sed '1d'|sed '<span class="es1">\$</span>d'&quot;</span><span class="sy0">;</span> <span class="re0">$cmd</span> <span class="sy0">=</span> <span class="st0">&quot;echo '<span class="es4">$data[0]</span>' | /usr/bin/dot -Tcmapx | &quot;</span><span class="sy0">.</span><span class="re0">$kk1</span><span class="sy0">;</span> <span class="co1">//$renderer-&gt;doc .= '&lt;p&gt; CR-graph value cmd=&gt;['.$cmd.']&lt;/p&gt;'; //Debug cmd</span> <a href="http://www.php.net/exec"><span class="kw3">exec</span></a><span class="br0">&#40;</span> <span class="re0">$cmd</span><span class="sy0">,</span> <span class="re0">$map</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$maphtml</span><span class="sy0">=</span> <a href="http://www.php.net/implode"><span class="kw3">implode</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">,</span><span class="re0">$map</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// add the target - cant do this with DOT</span> <span class="re0">$maphtml</span><span class="sy0">=</span><a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;&lt;area &quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;area target=<span class="es1">\&quot;</span>&quot;</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\&quot;</span>&quot;</span><span class="sy0">,</span><span class="re0">$maphtml</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="co1">// Include Map in the page</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;map id=&quot;'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot; name=&quot;'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot;&gt;'</span><span class="sy0">;</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="re0">$maphtml</span><span class="sy0">;</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;/map&gt;'</span><span class="sy0">;</span> &nbsp; <span class="co1">// Link the Image below with the map above by hash</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;img src=&quot;'</span><span class="sy0">.</span><span class="re0">$url</span><span class="sy0">.</span><span class="st_h">'&quot; border=&quot;0&quot; usemap=&quot;#'</span><span class="sy0">.</span><span class="re0">$hash</span><span class="sy0">.</span><span class="st_h">'&quot; Ismap&gt;'</span><span class="sy0">;</span> &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="re0">$renderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'**ERROR RENDERING GRAPHVIZ**'</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">return</span> <span class="kw4">true</span><span class="sy0">;</span> <span class="br0">&#125;</span></pre> </dd></dl> <p> My 2 cents to this wonderful dokuwiki community that has given me so much through the years. </p> <p> Regards, <br/> Enrique M </p> <p> Sign update: “UnUZYQK2Yh4qWKI4U5rMjU9IdfGvDSWWQP+rVbQA/oo=” </p> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[how to display dot MAPs] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="how_to_display_dot_maps" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="6258-9234" /><button type="submit" title="how to display dot MAPs">Edit</button></div></form></div> <h3 class="sectionedit8" id="hyperlinks_from_graphviz_nodes">Hyperlinks from Graphviz nodes</h3> <div class="level3"> <p> If you want links from the nodes, you can use this forked version: </p> <p> <a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/12" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/12">https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/12</a> </p> <p> Hopefully the fix will be merged soon in the official version.. </p> <p> Fabio </p> </div> <div class="secedit editbutton_section editbutton_8"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Hyperlinks from Graphviz nodes] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="hyperlinks_from_graphviz_nodes" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="9235-9483" /><button type="submit" title="Hyperlinks from Graphviz nodes">Edit</button></div></form></div> <h2 class="sectionedit9" id="compatibility">Compatibility</h2> <div class="level2"> <p> It seems to be compatible with “Rincewind”, but I don&#039;t dare to list it as compatible based on only my test. </p> <blockquote><div class="no"> I use it in Rincewind, it seems to work fine for me! Thanks for this great plugin! <a href="mailto:info%20%5Bat%5D%20drost%20%5Bdash%5D%20tenfelde%20%5Bdot%5D%20de" class="mail" title="info [at] drost [dash] tenfelde [dot] de">jdt</a> </div></blockquote> <hr /> <blockquote><div class="no"> I use it in Rincewind but it <strong>did not work</strong> as all my graphics disapeared (see <a href="https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/4" class="urlextern" title="https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/4">issue 4</a>. But I seem to have found a workaround since my problem seemed to be a cache problem:<br/> <br/> <pre class="code diff">syntax.php &nbsp; /** * Return path to the rendered image on our local system */ function _imgfile<span class="br0">&#40;</span>$data<span class="br0">&#41;</span><span class="br0">&#123;</span> if<span class="br0">&#40;</span>$conf<span class="br0">&#91;</span>'debug'<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> dbglog<span class="br0">&#40;</span>$cache, 'image file cache'<span class="br0">&#41;</span>; <span class="br0">&#125;</span> $cache = $this-&gt;_cachename<span class="br0">&#40;</span>$data,'png'<span class="br0">&#41;</span>; // create the file if needed <span class="re4">+++ /*******************************************************</span> <span class="re4">+++ **** CSJ added line ****/</span> <span class="re4">+++ clearstatcache<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span> <span class="re4">+++ /*******************************************************/</span> &nbsp; &nbsp; if<span class="br0">&#40;</span>!file_exists<span class="br0">&#40;</span>$cache<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> $in = $this-&gt;_cachename<span class="br0">&#40;</span>$data,'txt'<span class="br0">&#41;</span>; if<span class="br0">&#40;</span>$this-&gt;getConf<span class="br0">&#40;</span>'path'<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> $ok = $this-&gt;_run<span class="br0">&#40;</span>$data,$in,$cache<span class="br0">&#41;</span>; <span class="br0">&#125;</span>else<span class="br0">&#123;</span> $ok = $this-&gt;_remote<span class="br0">&#40;</span>$data,$in,$cache<span class="br0">&#41;</span>; <span class="br0">&#125;</span> if<span class="br0">&#40;</span>!$ok<span class="br0">&#41;</span> return false; clearstatcache<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span> &nbsp; // resized version if<span class="br0">&#40;</span>$data<span class="br0">&#91;</span>'width'<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> $cache = media_resize_image<span class="br0">&#40;</span>$cache,'png',$data<span class="br0">&#91;</span>'width'<span class="br0">&#93;</span>,$data<span class="br0">&#91;</span>'height'<span class="br0">&#93;</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span> &nbsp; // something went wrong, we're missing the file if<span class="br0">&#40;</span>!file_exists<span class="br0">&#40;</span>$cache<span class="br0">&#41;</span><span class="br0">&#41;</span> return false; //print $cache; return $cache; <span class="br0">&#125;</span></pre> <p> <br/> <br/> So there you go!<br/> <br/> Enjoy.<br/> Claude </p> </div></blockquote> <p> —- </p> </div> <h4 id="dokuwiki_farmer_issue">Dokuwiki Farmer issue</h4> <div class="level4"> <p> It did not work for our wiki which makes use of dokuwiki-farmer. Adding unset($data[&#039;animal&#039;]); in syntax.php in the function _cachename solved the problem.: </p> <pre class="code diff">function _cachename<span class="br0">&#40;</span>$data,$ext<span class="br0">&#41;</span><span class="br0">&#123;</span> unset<span class="br0">&#40;</span>$data<span class="br0">&#91;</span>'width'<span class="br0">&#93;</span><span class="br0">&#41;</span>; unset<span class="br0">&#40;</span>$data<span class="br0">&#91;</span>'height'<span class="br0">&#93;</span><span class="br0">&#41;</span>; unset<span class="br0">&#40;</span>$data<span class="br0">&#91;</span>'align'<span class="br0">&#93;</span><span class="br0">&#41;</span>; <span class="re4">+++ unset<span class="br0">&#40;</span>$data<span class="br0">&#91;</span>'animal'<span class="br0">&#93;</span><span class="br0">&#41;</span>;</span> return getcachename<span class="br0">&#40;</span>join<span class="br0">&#40;</span>'x',array_values<span class="br0">&#40;</span>$data<span class="br0">&#41;</span><span class="br0">&#41;</span>,'.graphviz.'.$ext<span class="br0">&#41;</span>; <span class="br0">&#125;</span></pre> <p> When trying to debug I also realized that $conf[&#039;debug&#039;] is never set but i guess it is $conf[&#039;allowdebug&#039;]. </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[Compatibility] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="compatibility" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="9484-11771" /><button type="submit" title="Compatibility">Edit</button></div></form></div> <h2 class="sectionedit10" id="faq">FAQ</h2> <div class="level2"> </div> <h5 id="how_do_i_get_anti-aliased_images">How do I get anti-aliased images ?</h5> <div class="level5"> <p> Make sure you have a Graphviz version compiled against Cairo, this will cause it to use it by default, and results in anti-aliased images. </p> </div> <h5 id="does_the_server_need_an_access_to_internet">Does the server need an access to Internet ?</h5> <div class="level5"> <p> Default: Yes, it uses Google <abbr title="Application Programming Interface">API</abbr> to generate graphs.<br/> However, it can be set up to point straight to a local install of graphiz. In that case no internet access is needed. </p> </div> <h5 id="how_to_read_external_dot_file">How to read external dot File?</h5> <div class="level5"> <p> How can i render an external (autogenerated) dot file? </p> </div> <h5 id="how_to_include_images_in_html-labels">How to include images in HTML-Labels?</h5> <div class="level5"> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/plugin:graphviz"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1651762212" /><input type="hidden" name="summary" value="[FAQ] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="faq" /><input type="hidden" name="codeblockOffset" value="4" /><input type="hidden" name="range" value="11772-" /><button type="submit" title="FAQ">Edit</button></div></form></div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>plugin/graphviz.txt</bdi> · Last modified: <time datetime="2022-05-05T16:50:12+0200">2022-05-05 16:50</time> by <bdi>47.57.142.223</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/plugin:graphviz?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/plugin:graphviz?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/plugin:graphviz?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=plugin%3Agraphviz&amp;1732832666" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10