# Packages
# README
= Go-Wardley - Wardley maps generator David Gamba, https://github.com/DavidGamba :idprefix: :toc: macro
Wardley Maps Generator written in Golang. The generator takes an HCL based map description and generates a map in SVG format. If viewed on a browser, the SVG will have hover over functionality to get additional details on node descriptions.
toc::[]
== Usage
$ ./go-wardley -f examples/map.hcl Updated file: examples/map.svg
$ ./go-wardley -f examples/map.hcl -o examples/map.svg Updated file: examples/map.svg
Watch for file changes and update the file automatically.
$ ./go-wardley -f examples/map.hcl --watch Starting watcher on: examples Updated file: examples/map.svg Updated file: examples/map.svg
Serve the file on a webserver in localhost:8080 by default
Update the drawing by refreshing the page.
$ ./go-wardley -f examples/map.hcl --serve Serving content on: http://localhost:8080 $ ./go-wardley -f examples/map.hcl --serve 6060 Serving content on: http://localhost:6060
image::./examples/map.svg[]
== Element types
=== Size
size { width = 1280 height = 768 margin = 40 font_size = 9 }
=== Node
node user { label = "User" # Required visibility = 1 # Required evolution = "custom" # Required x = 1 # Required description = "Description" fill = "black" color = "black" }
evolution
:: genesis
, custom
, product
or commodity
.
=== Connector
connector { from = "user" # Required to = "vcs" # Required label = "Description" color = "black" type = "normal" }
type
:: normal
, bold
, change
or change-inertia
.
== Example input
A more extensive example can be found in link:./examples/map.hcl[].
[source, hcl]
Anchor
node user { label = "User" visibility = 1 evolution = "custom" x = 1 description = "User Description" fill = "black" }
node vcs { label = "On Prem VCS" visibility = node.user.visibility + 1 evolution = "product" x = 1 description = "On prem VCS" fill = "black" }
node code_commit { label = "Code Commit Mirror" visibility = node.vcs.visibility evolution = "commodity" x = 1 description = "Allows Code Pipeline to access the code." color = "red" }
connector { from = "user" to = "vcs" }
connector { from = "vcs" to = "code_commit" color = "red" type = "change-inertia" }
== Roadmap
-
Make the node label optional, read the node ID if not present and title case it (configurable?).
-
Add an optional leyend box indicating the types of elements used in the map.
-
Better looks overall. Cleaner code.
-
Allow specifying node, connector and grid font sizes independently.
-
Arch type connector.
== License
This file is part of go-wardley.
Copyright (C) 2019-2020 David Gamba Rios
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.