npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

markdown-it-textual-uml

v0.17.1

Published

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

Downloads

12,832

Readme

markdown-it-textual-uml

  1. Overview
  2. UML examples
    1. PlantUML
    2. DOT
    3. ditaa
    4. mermaid
  3. Installation
  4. Usage
    1. Additional steps for mermaid
  5. Development
  6. References
  7. 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

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

DOT

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

ditaa

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

mermaid

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

Installation

node.js, browser:

npm install markdown-it-textual-uml --save

Usage

const md = require('markdown-it')()
           .use(require('markdown-it-textual-uml'));

Or,

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.

<script src="mermaid.min.js"></script>
<script>mermaid.initialize({startOnLoad:true});</script>

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:

<script setup>
import mermaid from 'mermaid'
mermaid.initialize({ startOnLoad: false });
await mermaid.run()
}
</script>

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.
  2. Update version in package.json.
  3. npm run build
  4. npm run pack
  5. 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/
  2. Merge develop to main using Github PR.
  3. Create a GitHub release with the semantically versioned tag against main.
  4. Pull repo to local (optional) if you have main branch locally.

References

Here are some alternative npm packages:

License

MIT