Skip to content

Markdown Viewer ui-markdown

Try Demo

Allows for markdown to be defined within Node-RED editor and rendered into the UI. Can be used for rendering labels, headers or even full blog articles.

You can inject msg values into the markdown using:

{{ msg?.payload }}

This will be replaced with the value of msg?.payload when a message is received to the node. If you'd like to have a placeholder value before a message is received you can use:

{{ msg?.payload || 'Placeholder' }}

If you're looking for a quick cheat sheet on how to write Markdown, you can check out FlowFuse's guide here.

Properties

PropDynamicDescription
GroupDefines which group of the UI Dashboard this widget will render in.
ContentThe markdown to be passed to the UI and rendered

Dynamic Properties

Dynamic properties are those that can be overriden at runtime by sending a particular msg to the node.

Where appropriate, the underlying values set within Node-RED will be overriden by the values set in the received messages.

PropPayloadStructuresExample Values
Classmsg.classString

Example

Example of rendered MarkdownExample of rendered markdown in a Dashboard.

The above example is rendered using the following markdown:

md
# Markdown Content

## Secondary Header

### Third Header

Paragraph here...

inline `<code-example />` with other text either side

```js
// multiline
function () {
    console.log('hello world')
}
```

- List Item 1
- List Item 1
- List Item 1
- List Item 1

[Hyperlink](https://news.bbc.co.uk)

---

> Lorum Ipsum Quotation Over two lines 

| Header 1 | Header 2 |
|-|-|
| `msg.payload` | {{ msg.payload || 'Placeholder' }} |

Mermaid Charts Added In: v0.5.0

The ui-markdown widget also supports the injection of Mermaid. To do so, you can include a mermaid chart definition inside a Markdown fenced code block, defined with the mermaid type:

md
# Here is some Markdown

and here is a definition for a Mermaid Chart:

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

Dynamic Mermaid Charts

It is also possible to inject msg values into the mermaid chart definition using mustache templating as with the standard Markdown definition, e.g:

md
# Here is some Markdown

and here is a definition for a Mermaid Chart:

```mermaid
pie title NETFLIX
         "Time spent looking for movie" : {{ msg.payload }}
         "Time spent watching it" : 10
```

Dashboard will then render the mermaid chart in place of the code block, e.g:

Example of a Mermaid Chart in DashboardExample of a Mermaid Chart in Dashboard.

Overriding Charts

You can use msg to completely redefine a mermaid chart, however, you must include the initial code fence, with mermaid type in the ui-markdown editor, e.g:

md
```mermaid
{{ msg.payload }}
```

The content of msg.payload in this case can then be a definition of any Mermaid Chart, without the surrounding code fence, e.g:

pie title NETFLIX
         "Time spent looking for movie" : {{ msg.payload }}
         "Time spent watching it" : 10