Wiki macro for redmine. The macro render graph-image from wiki contents as dot.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Redmine Wiki Graphviz-macro plugin

Redmine Wiki Graphviz-macro plugin allow Redmine's wiki to render graph image.


  • Add wiki macro {{graphviz}}, {{graphviz_link}} and {{graphviz_me}}
  • Write wiki page as dot format, and the macros make it graph image.

{{graphviz}} macro

  • This macro render graph image from other wiki page's content.

  • format={png|jpg|svg}

  • layout={dot|neato|fdp|twopi|circo}

  • inline={true|false}

    • If svg format is specified, Its default output is inline SVG. If inline is false, img tag will be used.
  • target={_blank|any} (*1)

  • with_source : Display both image and its source(dot) (*1)

  • no_map : Disable clickable map. (*1)

  • wiki=page : Link image to specified wiki page. (*1)

  • link_to_image : Link image to itself. (*1)

  • align=value : Additional attr for IMG. (*1)
    e.g.) right, left

  • width=value : Additional attr for IMG.

    • It is recommended to use no_map option together.
      e.g.) 100px, 200%
  • height=value : Additional attr for IMG.

    • It is recommended to use no_map option together.
      e.g.) 100px, 200%
  • (*1): These options do not affect to the inline SVG.

{{graphviz_me}} macro

  • This macro render graph image from the wiki page which includes this macro.

  • Use this macro commented out like below. If it is not commented out, renderer fails syntax error.

     // {{graphviz_me()}}
     // {{graphviz_me(option=value)}}
  • options: See {{graphviz}} macro.

  • When previewing, this macro output the image into img@src with data scheme. Thus, old browsers can't render it.

{{graphviz_link}} macro

  • This macro render graph image having passing the dot description inline.

     digraph G {...}
     digraph G {...}
  • options: See {{graphviz}} macro.


  • On Windows, If you want to use the text which is NOT written in English(Such as Japanese) in the graph, You should specify "fontname" attribute to the object like below.

    somenode [label="some text in Japanese", fontname="MS Gothic"]

    NOTE: "MS Gothic" is just example. You should specify it using real font name. "MS"(ZENAKU) + HANKAKU White space + "Gothic"(ZENAKU KATAKANA)

  • Example

     digraph G {
       subgraph cluster_se {
         graph [label="Search Engine"]
         y [label="Yahoo!", URL=""]
         g [label="Google", URL=""]
       p [label="Page"]
       g -> p


  • Redmine 3.0.0 or later.
  • ruby 2.2
  • Graphviz
    • There are 2ways about setting up graphviz for this plugin.

    • The one is using Gv which is ruby binding of graphviz.

      • Recommended for unix system.
      • The plugin uses fork() and IO.pipe to capture STDERR which holds error message output from Gv.
    • The other one is using external dot command which is on the PATH.

      • For Windows system, Only this way of setting is available.
      • The dot command is executed twice by the plugin when one graph is rendered. First one to render the image. Second one to create clickable map.
    • Example of installed graphviz package.


      e.g.) CentOS 5.5 using Gv. graphviz-2.26.3-1.el5 graphviz-gd-2.26.3-1.el5 graphviz-ruby-2.26.3-1.el5 e.g.) Ubuntu (10.04) using Gv. graphviz graphviz-dev libgv-ruby e.g.) Windows XP Pro SP3(ja) using external dot command. graphviz-2.26.3 ```

  • memcached (optional)

Getting the plugin


git clone git:// wiki_graphviz_plugin


  1. Copy the plugin tree into #{RAILS_ROOT}/plugins/

  2. Make sure the temporary directory writable by the process of redmine.


    This plugin try to create follwing directory and create tmporary file under it.

  3. Restart Redmine.


  • If you want to use caching feature for rendered images, must configure your cache_store.
  • This plugin expects the store like ActiveSupport::Cache::MemCacheStore which provides marshaling when set/get the value.
  1. Setup caching environment, like memcached.

  2. Configure cache_store.

     e.g.) config/environments/production.rb
     config.action_controller.perform_caching = true
     config.action_controller.cache_store = :mem_cache_store, "localhost" 
  3. Restart Redmine.

  4. Login to Redmine as an Administrator.

  5. Setup wiki graphviz-macro settings in the Plugin settings panel.


This plugin is licensed under the GNU GPL v2.
See COPYRIGHT.txt and GPL.txt for details.


  • graphviz_link macro by rsilvestri.

My environment

  • CentOS 7.5 x64
  • ruby-2.4.3p205
  • redmine-3.4.6
  • graphviz-2.30.1-21.el7.x86_64