# The md dialect One hand-rolled parser (`mrlycore::md`) feeds both faces: the site renders blocks to html, the pixel face lays the same blocks out as plain text lines. Anything the parser refuses degrades to literal text - never an error page, never raw html on the wire. ## Accepted - `#` and `##` headings. Blank lines separate blocks. - Paragraphs; consecutive lines join with a space. - `-` bullets and `1.` numbered lists. - Fenced code blocks (triple backtick), contents escaped verbatim. - `**bold**`, `*italic*`, and backtick code spans. Nothing is parsed inside a span; an unclosed backtick stays literal. ASCII math like `a*b*c` belongs in a span or the asterisks italicize. - Links: absolute http(s) URLs open in a new tab. Relative links become slugs the site build resolves against tracked md files - a broken link fails the build. - Images: `![alt](path)` alone on a line, local paths only. The build resolves the path against git-tracked files, copies the asset into dist at its repo path, and fails on any miss. - Pipe tables: header row, `|---|` separator (colons tolerated, alignment ignored), body rows. Every row piped at both ends, same cell count throughout; cells take the full inline pass. - Blockquotes: `>` lines; consecutive lines merge into one quote. ## Refused - `###` and deeper headings. - Raw html - escaped and shown as text. - Remote images, inline-position images, and any `javascript:` or other protocol in a link or image. - Malformed tables (missing separator, ragged rows, unpiped ends). - Everything else degrades to the literal text that was typed.