Markdown Rendering
Convert any markdown file to a styled, self-contained HTML document and open it in the default browser.
Quick render (existing file)
nix run nixpkgs#pandoc -- \
--from=markdown-implicit_figures --to=html --embed-resources --standalone \
--css="$HOME/.pi/agent/skills/knowledge/markdown-rendering/assets/style.css" \
input.md -o output.html && xdg-open output.html
Quick render (piped stdin — no temp file)
Pandoc accepts - as the input filename to read from stdin. Use this when generating markdown on the fly:
echo '# Hello World' | nix run nixpkgs#pandoc -- \
--from=markdown-implicit_figures --to=html --embed-resources --standalone \
--css="$HOME/.pi/agent/skills/knowledge/markdown-rendering/assets/style.css" \
- -o output.html && xdg-open output.html
Stylesheet
The stylesheet lives at assets/style.css and is derived from ~/.nix/modules/nixos/defaults/colors.nix (base16 palette). It provides:
- Dark background (
#191033) with light text (#f8f8f8) - Yellow accents on headings (
#fad000) - Cyan links (
#80fcff) and green code strings (#a5ff90) - Styled tables, blockquotes, code blocks, and horizontal rules
Constraints
- Always use
nix run nixpkgs#pandoc— do not assume pandoc is on PATH - Always pass
--embed-resources --standaloneso the HTML is fully portable (no external CSS/JS dependencies) - Always pass
--css=<path>pointing toassets/style.cssfor consistent styling - Always open with
xdg-openafter rendering — the user expects to see the result - Pipe generated markdown via stdin (
-) instead of writing a temp file — pandoc reads stdin natively