Mermrender

?‍♀️ RESTful rendering pipeline for generating sequence and UML diagrams using Mermaid for Markdown docs (Diagrams as a Service)

  • 所有者: Schachte/Mermrender
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

?‍♀️ Mermrender

RESTful rendering pipeline for generating sequence and UML diagrams using Mermaid to embed in Github readmes, Markdown docs and more! Mermrender uses Mermaid.JS and Mermaid CLI under the hood.

Feel free to contribute by making a pull request!

Maintainer: code@ryan-schachte.com

Mermaid
Credit: https://mermaidjs.github.io/

Run Mermrender in Gitpod, a free online dev environment for GitHub:

Open in Gitpod

Hit the API! (Demo)

https://3000-cebcfedc-d281-4f38-b13a-cc6312da177b.ws-us0.gitpod.io/diagram/2VxdWVuY2VEaWF

img

Setup in VSCode

Check out this awesome guide for setting up diagram rendering within VSCode: https://quintussential.com/archive/2017/12/10/Diagraming-with-Mermaid/

Motivation

Github doesn't support rendering Mermaid diagrams in their Markdown editor. Mermaid is a powerful tool that uses a well-defined schema to then interpret diagrams into an SVG. The idea of this tool is to allow embedding images dynamically via a REST endpoint to add UML/Sequence diagrams into your documentation/readmes/markdown files easily, whether the editor supports Mermaid or not.

Demo

demo

Usage

1) Generate the diagram code with Mermaid OR PlantUML

sequenceDiagram
    participant A as Alice
    participant J as John
    A->>J: Hello John, how are you?
    J->>A: Great!

or

@startuml
object Object01
object Object02
object Object03
object Object04
object Object05
object Object06
object Object07
object Object08

Object01 <, -- Object02
Object03 *-- Object04
Object05 o-- "4" Object06
Object07 .. Object08 : some labels
@enduml

You can edit and render them live on this website: https://mermaidjs.github.io/mermaid-live-editor/

2) Escape the diagram to encode it

Next, you need to run it through an escaper like the following: https://www.freeformatter.com/java-dotnet-escape.html#ad-output

Send a POST request to http://localhost:3000/encode/plantuml or http://localhost:3000/encode/mermaid depending on the type with a diagram key in the body with the above escaped diagram:

Example Body:

{
  "diagram": "sequenceDiagram\r\n    participant Alice\r\n    participant Bob\r\n    Alice->>John: Hello John, how are you?\r\n    loop Healthcheck\r\n        John->>John: Fight against hypochondria\r\n    end\r\n    Note right of John: Rational thoughts <br/>prevail...\r\n    John-->>Alice: Great!\r\n    John->>Bob: How about you?\r\n    Bob-->>John: Jolly good!"
}

This will generate a respose:

{
  "embed_link": "http://localhost:3000/diagram/2VxdWVuY2VEaWF"
}

You can embed the following embed_link by using the following syntax:

Markdown

![alt_caption](http://localhost:3000/diagram/2VxdWVuY2VEaWF)

HTML

<img src="http://localhost:3000/diagram/2VxdWVuY2VEaWF"/>

BBCode (Forums)

[img]http://localhost:3000/diagram/2VxdWVuY2VEaWF[/img]

Additional Options

Add the following optional query parameters to add custom dimensions to your images:

(Not yet implemented)

How To Run

  1. npm i to install dependencies
  2. node index.js
  3. sudo npm install -g node-plantuml
  4. sudo npm install -g mermaid.cli

or run Mermrender in Gitpod, a free online dev environment for GitHub:

Open in Gitpod

主要指標

概覽
名稱與所有者Schachte/Mermrender
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證
所有者活动
創建於2019-04-14 18:51:59
推送於2019-04-19 15:57:02
最后一次提交2019-04-19 08:57:01
發布數0
用户参与
星數0.9k
關注者數6
派生數27
提交數45
已啟用問題?
問題數10
打開的問題數9
拉請求數2
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?