pm_tools is a framework for authoring technical documentation in markdown. Basic markdown capabilities are provided by pandoc. Pm_tools extends pandoc-flavored markdown with "plugin" syntax that allows embedding:
- Plantuml diagrams
- Graphviz charts
- Wavedrom waveform diagrams
- Ditaa diagrams
- Flowchart.js diagrams
- Schemdraw circuit diagrams
- Mathjax formulas
- Arbitrary python code output
- Data structure (registers, packets) definitions
- MS Visio diagrams (as zoomable SVG)
- Excel tables (as HTML tables)
- Excel "screenshots" (as PNG)
- csv/tsv
- XSD schemas
Main output format is HTML (single-file), with PDF also supported.
Principles of pm_doc:
- Ability to edit documents fully offline
- Ability to view documents fully offline (Mathjax formulas currently require online connection or cached Mathjax)
- Single output document contained in a single HTML file (to make easy to copy / send by e-mail)
- Windows
- Python 2.7
- MS Visio (for embedding Visio diagrams)
- MS Excel (for embedding Excel "screenshots")
Create a file named hello.md
with the following content:
# Quick start example
## Hello, World
```plantuml("Communication to the world")
Pm_doc -> World: Hello there
```
Run from the git bash (recommended) console:
python $PM_DOC/scripts/mmd2doc.py hello.md
Above command should produce hello.html file similar to this.
An overview of all features with the examples can be found here: example.html. The source of this document is in doc/example.mmd. Best way to learn pm_tools features is to display source example.mmd and output example.html side-by-side and compare.
Note: PM_TOOLS rendering of the README.md you are reading right now can be viewed here: README.html.
The following features are missing from this pm_doc distribution:
- Word2mmd conversion
- Test/regressions
- Build/release automation
- Python 3 support
- Linux support
- Firefox and Safari browser support