Syntax and Structure
How each markup language marks up structure in a document.
HTML
Uses paired opening/closing tags (<p>...</p>) with attributes for metadata, organized into a nested tree of elements that browsers parse into the DOM; many tags may be self-closing or optionally closed.
XML
Uses strictly paired, case-sensitive tags with attributes, requiring every element to be properly closed and nested — there is no tolerance for the ambiguity HTML allows.
Markdown
Uses lightweight, punctuation-based conventions — # for headings, */_ for emphasis, -/numbers for lists, backticks for code — designed to visually resemble the plain-text formatting people already used.
AsciiDoc
Uses similar lightweight punctuation for inline formatting but adds explicit block syntax (==== for examples, ---- for listings, attribute lines) for the richer document structures Markdown doesn’t natively define.
reStructuredText
Uses indentation and punctuation patterns — section titles underlined with repeated symbols, :: for literal blocks, directives like .. note:: — with every construct following one strict, documented form.
LaTeX
Uses backslash-prefixed commands and environments (\section{}, \begin{itemize}...\end{itemize}) rather than tags, describing document structure and semantics that the TeX engine then typesets.