Extension:QuickGV

From MediaWiki.org
Jump to: navigation, search

Other languages:
Deutsch • ‎English • ‎español • ‎日本語 • ‎polski • ‎sicilianu • ‎中文
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png
QuickGV

Release status:Extension status stable

Quickgv-sample-default.png
ImplementationTemplate:Extension#type Tag
DescriptionTemplate:Extension#description Generate graph with few code.
Author(s)Template:Extension#username Raymond Wu (小璋丸talk)
Latest versionTemplate:Extension#version 0.2.3 (2016-03-18)
Database changesTemplate:Extension#needs-updatephp No
LicenseTemplate:Extension#license Apache v2
Download
Cache mechanism
ExampleTemplate:Extension#example http://www.graphviz.org/Gallery.php
TagsTemplate:Extension#tags
<quickgv>
Hooks usedTemplate:Extension#hook
ParserFirstCallInitManual:Hooks/ParserFirstCallInit

Translate the QuickGV extension if it is available at translatewiki.net

Check usage and version matrix.

The QuickGV extension helps you generate graph with few code.

All you have to do is giving the nodes and edges, styles are not necessary.

How to[edit]

Just a tag[edit]

Default graph.

<quickgv name="nothing" />

Quickgv-sample-default.png


Metadata[edit]

Default graph and metadata.

<quickgv name="withmeta" showmeta="true"/>

Quickgv-sample-showmeta.png


Usage option[edit]

ER Model (usage="er")[edit]

Quickgv-sample-ermodel.png

<quickgv name="ER_Model" usage="er">
   // node 123456789012345678901
   A [label="<fT> user_data | <fPK> [PK] user_id\l | <f0> user_type\l | <f1>gender\l | <f2> country\l | <f3> city\l }"];
   B [label="<fT> user_type | <fPK> [PK] user_type\l | desc\l"];
   C [label="<fT> gender | <fPK> [PK] gender\l | desc\l"];

   // edges
   A:f0 -> B:fPK [label="1 .. N"];
   A:f1 -> C:fPK [label="1 .. N"];
   A:f3 -> A:f2;
</quickgv>

Mindmap (usage="mindmap")[edit]

Quickgv-sample-mindmap.png

<quickgv name="MM" usage="mindmap">
start = "A";

A [label="Project"];
B1 [label="Budget"];
B2 [label="Risk"];
B3 [label="Members"];

A -> {B1 B2 B3};
</quickgv>

Theme option[edit]

Default (theme="default")[edit]

Quickgv-sample-theme-default.png

<quickgv name="Pointer1" usage="ram">
   A [label="RAM (0x71xx) | 0x710c\l | 0x7108\l | <fsrc> 0x7104 - 0x830c\l (int* a) | 0x7100\l "];
   B [label="RAM (0x83xx) | <fdst> 0x830c - 0x00ff\l | 0x8308\l | 0x8304\l | 0x8300\l"];
   A:fsrc -> B:fdst [label="a = 0x830c;\l*a = 0x00ff;\l"];
</quickgv>

Cold (theme="cold")[edit]

Quickgv-sample-theme-cold.png

<quickgv name="Pointer2" usage="ram" theme="cold">
   A [label="RAM (0x71xx) | 0x710c\l | 0x7108\l | <fsrc> 0x7104 - 0x830c\l (int* a) | 0x7100\l "];
   B [label="RAM (0x83xx) | <fdst> 0x830c - 0x00ff\l | 0x8308\l | 0x8304\l | 0x8300\l"];
   A:fsrc -> B:fdst [label="a = 0x830c;\l*a = 0x00ff;\l"];
</quickgv>

Warm (theme="warm")[edit]

Quickgv-sample-theme-warm.png

<quickgv name="Pointer3" usage="ram" theme="warm">
   A [label="RAM (0x71xx) | 0x710c\l | 0x7108\l | <fsrc> 0x7104 - 0x830c\l (int* a) | 0x7100\l "];
   B [label="RAM (0x83xx) | <fdst> 0x830c - 0x00ff\l | 0x8308\l | 0x8304\l | 0x8300\l"];
   A:fsrc -> B:fdst [label="a = 0x830c;\l*a = 0x00ff;\l"];
</quickgv>

Sakura (theme="sakura")[edit]

Quickgv-sample-theme-sakura.png

<quickgv name="Pointer4" usage="ram" theme="sakura">
   A [label="RAM (0x71xx) | 0x710c\l | 0x7108\l | <fsrc> 0x7104 - 0x830c\l (int* a) | 0x7100\l "];
   B [label="RAM (0x83xx) | <fdst> 0x830c - 0x00ff\l | 0x8308\l | 0x8304\l | 0x8300\l"];
   A:fsrc -> B:fdst [label="a = 0x830c;\l*a = 0x00ff;\l"];
</quickgv>

Attribute Reference[edit]

Attribute Available Values Description
name RegExp: [a-zA-Z0-9_]+ Name of the graph. (default G)
showmeta true, false Set true to show metadata. (default false)
showdot true, false Set true to show dot source code. (default false)
theme default, cold, warm, sakura See theme option.
usage default, neato (mindmap), record (er, ram) See usage option.

Installation[edit]

Install repository[edit]

Step 1: Install from GitHub[edit]

cd /path/to/wiki/extensions
git clone https://github.com/virus-warnning/mw-quickgv.git QuickGV

Install zip package[edit]

Step 1: Install from zip package[edit]

  • Download ZIP package from QuickGV Releases
  • unzip package
  • rename mw-quickgv to QuickGV

Step 2: Apply this extension[edit]

Append following code to LocalSettings.php

require_once("$IP/extensions/QuickGV/QuickGV.php");

Requirements[edit]

  • Graphviz 2.38 or later
    • OSX: brew install graphviz
    • CentOS: yum install graphviz
    • Ubuntu: sudo apt-get install graphviz
    • Windows: Install from an Installer package (Tested on Win7)
  • PHP 5.x, and need these functions
    • exec()
    • proc_open()
    • proc_close()

Changelog[edit]

  • 0.2.4 (Latest)
    • Extension registration.
    • JSON format language file.
  • 0.2.3 (2016-03-18)
    • Support URL attribute of node, open the link in new tab.
    • Set arrowsize=0.6.
    • Set splines=ortho for usage not set.
    • Set splines=curved for usage="neato".
    • Set splines=spline for usage="record".

The project is hosted at wikimedia.org since 0.2.4, see project dashboard.