gitbook-plugin-uml

PlantUML plugin for GitBook

Usage no npm install needed!

<script type="module">
  import gitbookPluginUml from 'https://cdn.skypack.dev/gitbook-plugin-uml';
</script>

README

gitbook-plugin-uml

Build Status Coverage Status NPM Version Dependencies Status DevDependencies Status NPM Downloads

PlantUml Plugin for Honkit and GitBook.

This is a sample plugin for GitBook Honkit and is specially adapted for GitBook Honkit from PlantUML. Gitbook Honkit PlantUml plugin is used to select from markdown uml and converting it into a picture format svg.

Installation

Install honkit instead of gitbook-cli(deprecated).

Install JRE or JDK please. Ensure your system have java.

It will download plantuml jar file automatically, so in some country and region you must install it behind a proxy, or it will download fail.

Gitbook PlantUml plugin can be installed from NPM using:

npm install gitbook-plugin-uml

book.json add the plugin

{
  "plugins": ["uml"]
}

FAQ

Important:

** Please ensure your system have java!!! Or this plugin may not work, and get Error: spawn java ENOENT

** It will download plantuml jar file automatically, so in some country and region you must install it behind a proxy, or it will download fail.

Features

  • Support HTML, PDF, EPUB output(make sure your gitbook support SVG)
  • Support ```flow code block quote
  • Multi code style support

Beautiful UML

ARCHIMATE

WAVEFORM

How to use it

To include a PlantUML diagram, just wrap your definition in a "uml" code block. For example:

UML

Text format uml:

```uml
@startuml

    Class Stage
    Class Timeout {
        +constructor:function(cfg)
        +timeout:function(ctx)
        +overdue:function(ctx)
        +stage: Stage
    }
    Stage <|-- Timeout

@enduml
```

And what's more, puml and plantuml code block also OK.

```puml
@startuml

    Class Stage
    Class Timeout {
        +constructor:function(cfg)
        +timeout:function(ctx)
        +overdue:function(ctx)
        +stage: Stage
    }
    Stage <|-- Timeout

@enduml
```

Also you can put in your book block as

{% uml %}
@startuml

    Class Stage
    Class Timeout {
        +constructor:function(cfg)
        +timeout:function(ctx)
        +overdue:function(ctx)
        +stage: Stage
    }
    Stage &lt;|-- Timeout

@enduml
{% enduml %}

The block syntax also allows for a src attribute to import an external PlantUml file.

{% uml src="test.plantuml" %}{% enduml %}

Of course, you can also pass the parameters like this.

```puml { src="test.plantuml" }
```

Configuration

book.json add the uml options

Configure plugin in book.json.

"pluginsConfig": {
  "uml": {
    "format": "png",
    "nailgun": false
  }
}

Build and serve

This plugin only works in your local machine. You need to play with local gitbook (command-line tool) to pre-compile all uml images.

$ gitbook serve yourbook

or

$ gitbook build yourbook

Additional requirements:

  • Create a directory /assets/images/uml in the root of your project.

For Mac OS X users. Install graphviz package.

brew install graphviz

For Linux users, Install graphviz package.

sudo apt install graphviz
sudo yum install graphviz

Debian/Ubuntu users may need install default-jre prevent Error: spawn java ENOENT.

sudo apt-get install default-jre

This plugin original from lyhcode/gitbook-plugin-plantuml