Extension:PlantUML

The PlantUML extension allows to easily add UML diagrams into Wiki using a simple text description.

Reporting issues

 * Please report issues, changequest and questions via: https://github.com/pjkersten/PlantUML/issues

Diagrams supported
The following diagrams are available:
 * sequence diagram,
 * use case diagram,
 * class diagram,
 * activity diagram,
 * component diagram,
 * state diagram

The language is explained in this document: Language Reference Guide.pdf

Usage
Just put a PlantUML model description between the tag.

Attributes

 * redraw
 * force diagram to be redrawn by deleting cached image.

Example 1
Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Come on over

Example 2
skinparam usecaseBackgroundColor DarkSeaGreen skinparam usecaseArrowColor Olive skinparam actorBorderColor black skinparam usecaseBorderColor DarkSlateGray skinparam usecaseActorFontName Courier

User << Human >>
 * Main Database: as MySql << Application >>

(Start) << One Shot >> (Use the application) as (Use) << Main >>

User -> (Start) User --> (Use) MySql --> (Use)

Example 3
package "Classic Collections" #DDDDDD Object <|-- ArrayList

package net.sourceforge.plantuml Object <|-- Demo1 Demo1 *- Demo2

Example 4 - new features of 0.6
Using umlauts and international characters and modifying the format per uml tag is now possible  hide circle class ÄÖÜäöüßéÈô東京都 { }

Installation
This extension depends on the Graphviz extension. You should install it first.

Then the code of the PlantUML extension is available here.


 * On Windows, you must set the read & execute permissions on C:\Windows\system32\cmd.exe for the account the PHP web service extension is running under. PHP needs those permissions to "fork" other process.
 * If using WAMP (and possibly other stacks) on Windows, you must set the "wampapache" service to "Allow service to interact with desktop".

In order to install this plugin, please follow the steps below.

wfLoadExtension( 'PlantUML' );
 * 1) Go to the extensions folder of your MediaWiki installation.  #cd extensions
 * 2) Git clone the PlantUML sources git clone https://github.com/pjkersten/PlantUML.git
 * 3) Choose your usage style. You can either process images locally (on the server where MediaWiki was installed) or in the cloud. The local version supports SVG-images and embedded urls, at the cost of local processing. The cloud version is lightweight for your server, but does not support embedded urls (yet) and is (still) stuck with PNG-images. Default local processing is expected. If you want to use the cloud, please edit the PlantUML.php file and change $usecloud to true.
 * 4) When using local processing: get the plantuml.jar from SourceForge and put it in your extensions/PlantUML/ directory. wget https://downloads.sourceforge.net/project/plantuml/plantuml.jar
 * 5) (Optional) Change the Format from svg to png. Edit your LocalSettings.php and add the variable $wgPlantUmlFormat to your preference e.g. $wgPlantUmlFormat="png";  You can also change the format of the uml rendering using the "format" attribute of the uml tag e.g. with  Mind that SVG produces the superior graphics, but that only PNG-images and image maps are "rock solid". If you use the cloud, it will always generate PNG images. Local processing defaults to SVG.
 * 6) (Optional) Adapt the getUploadPath and getUploadDirectory to your preference if you want these different from MediaWiki's standard settings. Mind that these directories must be writeable by the system user who runs MediaWiki.
 * 7) Put the following line near the end of your LocalSettings.php in MediaWiki's root folder to include the extension:
 * 1) When using SVG, check your mediawiki SVG settings
 * 2) When using the cloud, make sure that httpd can submit HTTP-requests.
 * 3) Reload http server

Debugging
To turn on debugging log messages you might want to add: $wgPlantUmlDebug=true to your LocalSettings.php.