1. blockdiag
  2. Untitled project
  3. blockdiag

Source

blockdiag /

Filename Size Date modified Message
examples
src
393 B
Fix drone.io.sh; --use-mirrors option was deprecated
150 B
Convert CR/LF chars to LF
5.1 KB
Added tag 1.5.3 for changeset 5617f62328fa
10.1 KB
Bump version
11.1 KB
* Change license to Apache License 2.0
333 B
Improve test skipper
2.9 KB
Move changelogs to CHANGES.rst
2.3 KB
Update MAN page
5.6 KB
Update bootstrap.py
1008 B
Update buildout.cfg
255 B
Enable flake8-copyright
3.5 KB
Fix dependency; webcolors-1.5 does not support py32
557 B
Use flake8-copyright at testing

blockdiag generate block-diagram image file from spec-text file.

drone.io CI build status Latest PyPI version Number of PyPI downloads

Features

  • Generate block-diagram from dot like text (basic feature).
  • Multilingualization for node-label (utf-8 only).

You can get some examples and generated images on blockdiag.com .

Setup

Use easy_install or pip:

$ sudo easy_install blockdiag

Or

$ sudo pip install blockdiag

If you want to export as PDF format, give pdf arguments:

$ sudo easy_install "blockdiag[pdf]"

Copy and modify ini file. example:

$ cp <blockdiag installed path>/blockdiag/examples/simple.diag .
$ vi simple.diag

Please refer to spec-text setting sample section for the format of the simpla.diag configuration file.

spec-text setting sample

Few examples are available. You can get more examples at blockdiag.com .

simple.diag

simple.diag is simply define nodes and transitions by dot-like text format:

diagram admin {
  top_page -> config -> config_edit -> config_confirm -> top_page;
}

screen.diag

screen.diag is more complexly sample. diaglam nodes have a alternative label and some transitions:

diagram admin {
  top_page [label = "Top page"];

  foo_index [label = "List of FOOs"];
  foo_detail [label = "Detail FOO"];
  foo_add [label = "Add FOO"];
  foo_add_confirm [label = "Add FOO (confirm)"];
  foo_edit [label = "Edit FOO"];
  foo_edit_confirm [label = "Edit FOO (confirm)"];
  foo_delete_confirm [label = "Delete FOO (confirm)"];

  bar_detail [label = "Detail of BAR"];
  bar_edit [label = "Edit BAR"];
  bar_edit_confirm [label = "Edit BAR (confirm)"];

  logout;

  top_page -> foo_index;
  top_page -> bar_detail;

  foo_index -> foo_detail;
               foo_detail -> foo_edit;
               foo_detail -> foo_delete_confirm;
  foo_index -> foo_add -> foo_add_confirm -> foo_index;
  foo_index -> foo_edit -> foo_edit_confirm -> foo_index;
  foo_index -> foo_delete_confirm -> foo_index;

  bar_detail -> bar_edit -> bar_edit_confirm -> bar_detail;
}

Usage

Execute blockdiag command:

$ blockdiag simple.diag
$ ls simple.png
simple.png

Requirements

  • Python 2.6, 2.7, 3.2, 3.3, 3.4
  • Pillow 2.2.1 or later
  • funcparserlib 0.3.6 or later
  • reportlab (optional)
  • wand and imagemagick (optional)
  • setuptools

License

Apache License 2.0