Skip to content
New in 1.0

Media, the Markdown way

Video, audio, and third-party embeds used to be the one place a Markdown page fell back to raw HTML — <video> tags, <iframe> soup, privacy footguns, and copy-pasted attributes. Darkmown gives you three one-line directives instead. Each compiles to a hardened, accessible, lazy player, and — because they emit no data-wd-*this entire page ships zero framework JavaScript.

:video — a hardened HTML5 player

preload="metadata" and controls are added for you; an autoplay clip silently implies muted, because browsers block sound-on autoplay. The source URL runs through the same scheme guard as :fetch — only relative paths and http(s) get through.

:audio — same guarantees, for sound

A 440 Hz reference tone. :audio shares the :video defaults and validation; flags you don't set never appear in the markup, so there are no surprise behaviors.

:embed — privacy-friendly, responsive iframes

A YouTube or Vimeo URL is rewritten to its no-cookie / player form, wrapped in a 16/9 box, and marked loading="lazy" with a locked-down referrerpolicy. Paste a share link; get a responsive, tracking-light embed.

View source — three lines
:video /media/clip.mp4 poster=/media/clip-poster.jpg controls
:audio /media/tone.mp3 controls
:embed https://youtu.be/aqz-KE-bpKQ title="Big Buck Bunny (open movie)"

That's the whole page's interactivity. No <script>, no runtime — open DevTools and watch the Network tab stay empty of framework JS.