Why Embed?
The blog platform now supports inline embedding of the platform's clinical tools. Instead of linking out and breaking the reader's flow, you can drop a full decision tree or calculator directly into the article.
Every component on this page is rendered inline. Reading progress, table of contents, and related-article suggestions are wired up automatically.
Charts Without a JS Library
Lightweight bar and line charts render as static SVG — no Chart.js, no Plotly,
no client-side JavaScript at all. Pass data as a JSON string via the dataJson prop:
Math Without KaTeX
For simple formulas, the MathBlock component renders readable equations using
semantic HTML — no MathJax bundle:
Rate (mL/hr) = 4 · kg(first 10) + 2 · kg(next 10) + 1 · kg(over 20)
CI = CO / BSA = HR · SV / BSA
Inline Decision Tree
Embed an existing decision tree from the platform — readers can interact with it right inside the article:
Inline Calculator
Same for calculators — reference patient context flows through naturally:
When to Use Each Format
MDX articles
Use for posts with prose, code samples, callouts, and inline embeds. Get TOC, reading progress, and SEO metadata automatically.
HTML articles
Use for posts that need full custom JavaScript visualizations, complex interactive widgets, or D3-style data exploration. Runs in a sandboxed iframe.
Charts component
Use for static summary data inside MDX. Renders as SVG — zero client JS, works in RSS readers and email previews.
DataPlayground
Use when readers should explore their own data. WASM-powered descriptive stats, histograms, and normalization run locally.
Try the Playground
Author Tools
# Scaffold a new post (HTML or MDX)
npm run blog:new
# Validate all posts before commit
npm run blog:validate
# Preview locally
npm run devThe blog:validate script checks slug formatting, required metadata fields,
date format, broken internal links, and content file presence. Run it in CI
to prevent bad commits.
Get new articles by email.
Powered by mailto. Your address is never sold or shared.
Discussion
Comments are powered by Giscus via GitHub Discussions. Set NEXT_PUBLIC_GISCUS_* environment variables to enable them.