渲染Markdown
FCV_ShowMarkdown
If you keep notes, logs, or documentation inside your ComfyUI graphs - and you should - FCV_ShowMarkdown (渲染Markdown) is the renderer half of FlowCV's note-taking pair. It takes a Markdown string and renders it as styled, formatted text in a panel on the node, with proper headings, bold, and code styling out of the box. It's an output-only node: one STRING in, nothing out, and it just displays.
The natural companion is FCV_MarkdownEditor, which gives you an editable box and a STRING output; this node is where you'd render that output (or any other Markdown) somewhere visible. You could also wire it to a text-generation node and watch it format whatever comes out.
How it works
Like the other display nodes, the Python side is a pass-through: it takes 内容 (content) and pushes it to the frontend as a ui payload. The JavaScript creates a DOM container with baked-in styles (dark background, styled headings, proper spacing - it looks genuinely decent) and runs the text through the marked library, loaded from a CDN, on each execution. So rendering is fully client-side: fast, and it doesn't touch your Python environment.
Using it
One input, 内容 (content) - drop a Markdown string in, run, read. It's flagged as an output node, so ComfyUI knows it's a terminal display. To keep it editable, wire the editor's markdown代码 output straight in; to keep it static, type (or paste) the content in the field itself. Multi-line strings work fine, so paste a whole doc.
Installing
Ships in FlowCV. ComfyUI Manager, search "FlowCV"; or:
cd ComfyUI/custom_nodes
git clone https://github.com/Koren-cy/FlowCV
Restart ComfyUI. Pack dependencies are light (opencv-python, numpy, pyserial); rendering is frontend-only. The README notes the migration to ComfyUI_For_Academic - archived repo, still works fine.
Gotchas
The CDN dependency is the one real catch: marked loads from cdn.jsdelivr.net, so on an offline or firewalled browser you get raw Markdown text instead of rendered output - the node itself still runs. Don't feed it arbitrary HTML expecting it to stay inert; the marked pipeline sanitizes a lot but this is a display convenience, not a security boundary. And everything displays on execution, so content updates only when the workflow runs.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| 内容 | STRING | # Hello World This is **markdown** content. | 要显示的Markdown内容 |
Outputs (0)
No outputs