// Copyright (c) 2026 Petr BalvĂ­n (https://petrbalvin.org) // SPDX-License-Identifier: MIT // Package markdown renders Markdown to HTML with an engine of its own, // built on the standard library alone. Parse builds the tree of blocks // and RenderHTML serialises it; the grammar of the block structure follows // CommonMark. Inline content is escaped plain text. package markdown // RenderHTML parses source and renders it to HTML. The same input always // produces byte-identical output. func RenderHTML(source []byte) []byte { return RenderHTMLNode(Parse(source)) } // RenderHTMLNode renders a parsed document tree to HTML. func RenderHTMLNode(doc *Node) []byte { r := &renderer{refs: doc.refs, footnotes: newFootnoteTracker(doc.footnotes)} r.blocks(doc.children) r.footnoteSection() return r.out }