van-markdown
v0.2.0
Published
Render Markdown strings to VanJS nodes.
Downloads
179
Readme
VanMD
van-markdown renders Markdown strings into VanJS nodes in browsers and plain tree objects in SSR runtimes.
Install
bun add van-markdown
# or
npm install van-markdownQuick Start
import van from "vanjs-core";
import { render } from "van-markdown";
const app = document.getElementById("app")!;
van.add(
app,
render("# Hello\\n\\nThis is **VanMD**.")
);API
render(markdown, options?)
markdown: stringoptions?: RenderOptions
Returns:
- Browser runtime: VanJS node (default wrapper:
<div>) - SSR runtime (no
document): plain tree object{ type, tag, props, children }
RenderOptions
parseHtml?: boolean(default:true)true: raw HTML in markdown is parsed and re-created as Van tags.false: raw HTML is treated as text.
wrapperTag?: keyof HTMLElementTagNameMap(default:"div")className?: string
VanMD(props)
Thin convenience wrapper around render:
VanMD({ markdown: "# Title", parseHtml: true });renderWithMiniVanPlate(markdown, env, options?)
Optional adapter for mini-van-plate/shared-style environments:
import { renderWithMiniVanPlate } from "van-markdown";
const node = renderWithMiniVanPlate("# Title", env);Runtime Notes
VanMD supports:
- Browser rendering through VanJS tags
- SSR fallback through plain tree objects
- Optional adapter for
mini-van-plate/sharedviarenderWithMiniVanPlate
Security Note
When parseHtml is true, raw HTML is parsed and rendered as elements. Do not pass untrusted markdown/HTML without sanitization.
Development
bun install
bun run dev
bun run test
bun run lint
bun run build
bun run checkDemo
Run bun run dev and open the local Vite URL.
Publish Checklist
bun run checknpm publish --dry-runnpm publish
