markdown-it-textual-uml

Markdown-it markdown parser plugin to create uml diagrams from text, based on plantuml, mermaid, etc.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
markdown-it-textual-uml
1960.17.14 months ago5 years agoMinified + gzip package size for markdown-it-textual-uml in KB

Readme

markdown-it-textual-uml
  1. Overview
  1. UML examples
1. [PlantUML](#plantuml)
2. [DOT](#dot)
3. [ditaa](#ditaa)
4. [mermaid](#mermaid)
  1. Installation
  1. Usage
1. [Additional steps for mermaid](#additional-steps-for-mermaid)
  1. Development
  1. References
  1. License

Overview

npm NPM npm GitHub Super-Linter More project metadata badges here. More CI/CD badges here. This is a markdown-it markdown parser plugin to create uml diagrams from text, based on plantuml, mermaid, etc. At this point the following textual uml offerings are supported: | UML Offering | Markdown fence identifier | | ----------------------------------------------------------- | ------------------------- | | PlantUML | plantuml | | DOT | dot | | ditaa | ditaa | | mermaid | mermaid |

UML examples

PlantUML

````markdown ```plantuml Bob -> Alice : hello ``` ````

DOT

````markdown ```dot digraph example1 {
1 -> 2 -> { 4, 5 };
1 -> 3 -> { 6, 7 };
} ``` ````

ditaa

````markdown ```ditaa +--------+ +-------+ +-------+ | +---+ ditaa +--> | | | Text | +-------+ |diagram| |Document| |!magic!| | | | {d}| | | | | +---+----+ +-------+ +-------+ : ^ | Lots of work | +-------------------------+ ``` ````

mermaid

````markdown ```mermaid graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
``` ````

Installation

node.js, browser: ```text npm install markdown-it-textual-uml --save ```

Usage

```javascript const md = require('markdown-it')()
.use(require('markdown-it-textual-uml'));
``` Or, ```javascript import markdownItTextualUml from 'markdown-it-textual-uml' const md = require('markdown-it')()
.use(markdownItTextualUml);
```

Additional steps for mermaid

For mermaid, you have to include the mermaid js file in your application and initialize it after the window has loaded. Just using this plugin is not enough to ensure that the diagram is rendered correctly. Note: mermaid js has a dependency on the browser window being loaded before it can initialize. Related GitHub issue. So you should have the following in your html page in order for the mermaid text definitions to be translated into svg. ```html ``` Details here. When using some sort of framework, be aware that mermaid.initialize would have to be called after the page has loaded. For example, with vue.js or nuxt.js, this could look like: ```javascript ```

Development

It is highly recommended to use VS Code. I have an open issue to make development, testing and deployments easier but for now following steps have to be followed:
  1. Make changes in this project.
  1. Update version in package.json.
  1. npm run build
  1. npm run pack
  1. In a separate test project that includes this npm package:
1. Change the entry in its package.json to: `"markdown-it-textual-uml": "file:./markdown-it-textual-uml-0.1.3.tgz"`. Change version (last released version) to version from step 2.
2. Run `npm cache clean --force`.
3. Delete its package-lock.json.
4. Delete folder for `markdown-it-textual-uml` from within the node_modules folder.
5. Run `npm install`.
Once we have the changes tested out, revert back all changes in the test project. Now, in this project:
  1. Run npm run publish.
1. <https://simplernerd.com/update-published-npm-package/>
  1. Merge develop to main using Github PR.
  1. Create a GitHub release with the semantically versioned tag against main.
  1. Pull repo to local (optional) if you have main branch locally.

References

Here are some alternative npm packages:

License

MIT