Categorygithub.com/DavidGamba/go-wardley
repositorypackage
0.3.0
Repository: https://github.com/davidgamba/go-wardley.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# 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/.