Embed demo
@nowline/embed live demo
Drop a <script> tag and ```nowline fenced blocks
render in place. This page loads
@nowline/embed@latest from jsDelivr and exercises three API surfaces:
auto-scan, manual render, and parse + diagnostics.
1. Auto-scan
The fenced code block below is the standard markdown-renderer output
<pre><code class="language-nowline">…</code></pre>.
The bundle finds every match and replaces it with the rendered SVG on load.
Source
nowline v1
roadmap "Generative AI" start:2026-04-06 scale:2w calendar:business
swimlane "Platform"
item "Technology Selection" duration:2w status:done
item api "API" duration:3w status:done
item "Agent Instructions" duration:3w status:in-progress
item api-integration "Agent Integration" duration:4w status:planned
item "Agent MCP" duration:2w status:planned
item platform-e2e-test "E2E Test" duration:2w status:planned
swimlane "Web"
item "Web Prototype" duration:4w status:done
item "Web SDK" duration:2w status:planned after:api
item "Web Integration" duration:4w status:planned
item web-e2e-test "E2E Test" duration:2w status:planned after:api-integration
swimlane "Mobile"
parallel
group "iOS"
item "iOS Prototype" duration:4w status:done
item "iOS SDK" duration:2w status:planned after:api
item "iOS Integration" duration:4w status:planned
item ios-e2e-test "E2E Test" duration:2w status:planned after:api-integration
group "Android"
item "Android Prototype" duration:4w status:done
item "Android SDK" duration:2w status:planned after:api
item "Android Integration" duration:4w status:planned
item android-e2e-test "E2E Test" duration:2w status:planned after:api-integration
milestone "AI Release" after:[platform-e2e-test, web-e2e-test, ios-e2e-test, android-e2e-test] Rendered
nowline v1
roadmap "Generative AI" start:2026-04-06 scale:2w calendar:business
swimlane "Platform"
item "Technology Selection" duration:2w status:done
item api "API" duration:3w status:done
item "Agent Instructions" duration:3w status:in-progress
item api-integration "Agent Integration" duration:4w status:planned
item "Agent MCP" duration:2w status:planned
item platform-e2e-test "E2E Test" duration:2w status:planned
swimlane "Web"
item "Web Prototype" duration:4w status:done
item "Web SDK" duration:2w status:planned after:api
item "Web Integration" duration:4w status:planned
item web-e2e-test "E2E Test" duration:2w status:planned after:api-integration
swimlane "Mobile"
parallel
group "iOS"
item "iOS Prototype" duration:4w status:done
item "iOS SDK" duration:2w status:planned after:api
item "iOS Integration" duration:4w status:planned
item ios-e2e-test "E2E Test" duration:2w status:planned after:api-integration
group "Android"
item "Android Prototype" duration:4w status:done
item "Android SDK" duration:2w status:planned after:api
item "Android Integration" duration:4w status:planned
item android-e2e-test "E2E Test" duration:2w status:planned after:api-integration
milestone "AI Release" after:[platform-e2e-test, web-e2e-test, ios-e2e-test, android-e2e-test] 2. Manual render
For dynamically loaded blocks or custom containers, call
nowline.render(source) and write the SVG yourself.
nowline.render(source) → SVG string 3. Parse + diagnostics
Editor-style flows can call nowline.parse(source) to get the AST plus
lexer / parser / validator errors without the layout + render cost. Edit the source
below to introduce a typo.
nowline.parse(source) → { ast, errors } Click "Parse" to run.