Ipywardley
Bringing Wardley Map magic to Jupyter notebooks
Install / Use
/learn @anjackson/IpywardleyREADME
ipywardley
Bringing Wardley Map magic to Jupyter notebooks
Introduction
This plugin makes it easy to generate Wardley Maps using Jupyter Notebooks.
It supports a subset of the syntax defined by the Online Wardley Maps service. This simple language can be use to specify the map via the %%wardley cell magic.
Try it out!
Installation
First, install Jupyter. Then before running it, install ipywardley. e.g. if you are using pip:
pip install ipywardley
Then, run Jupyter:
jupyter-lab
Usage
Open up a new Python 3 notebook, and use this command to enable the module:
%load_ext ipywardley
Now you can use the %%wardley directive and create maps. See this example notebook for a detailed example of how to do this.
Screenshot

To Do
- Support more of the OWM syntax and features (?=maybe?):
- [ ]
evolution Novel->Emerging->Good->Bestandevolution Xoffering the different sets of x-axis labels. - [ ]
y-axis Value Chain->Invisible->Visibleory-axis noneto make 'Visibility' axis optional. - [x]
evolve - [ ]
annotation&annotations? - [x]
note? - [ ]
marketnodes? - [ ]
pipelinenodes? - [ ] node
inertia? - [x]
+<>links to indicate flow. - [ ]
+>links to indicate flow. - [ ]
+<links to indicate flow. - [ ]
Hot Water+'$0.10'>Kettleflow labels? - [ ]
build,buy,outsourcenode augmentation? - [ ]
submapand related syntax? - [ ]
pioneer,settler,townplannerareas/boxes?
- [ ]
- [ ] Add 'Uncharted' and 'Industrialised' labels
- [ ] Support rendering from a file, via e.g.
%wardley file=example.owm style=plain - [ ] Make it easier to download the SVG/rendered version?
Development
- Clone this directory.
- Set up a
virtualenvand activate it. - Modify the code.
- Run
flit install - Run
jupyter-laband test your changes. - Repeat 3-5 ad infinitum.
- Turn your changes into a pull request.
Making a Release
As per https://flit.pypa.io/en/stable/
- Update version in
\_\_init\_\_.py - Commit, tag, push.
flit publish
Change Log
- 0.0.7:
- Switch from
plt.grid(visibility=True, ...)toplt.grid(visible=True, ...).
- Switch from
- 0.0.6:
- 0.0.5:
