Skip to content

markup language

A markup language is a system of tags or annotations that you embed in plain text to describe a document’s structure, meaning, or presentation. The annotations, collectively called markup, stay distinct from the content, so software can interpret them while the source remains readable as plain text:

A teal source file box splits into two boxes, Content text and Markup annotations, which both feed a Processor box pointing to a yellow Rendered document box.
The processor reads the annotations alongside the content to produce the rendered document.

The name comes from traditional publishing, where editors marked up manuscripts with handwritten typesetting instructions. In HTML, the tag pair in <em>important</em> marks a span of text as emphasized, while Markdown expresses the same idea with lighter punctuation, such as *important*.

Markup languages fall into a few broad families:

  • Descriptive markup: Labels what each part of a document is, leaving rendering decisions to a stylesheet or processor, as in XML and semantic HTML.
  • Procedural and presentational markup: Encodes how the text should look, whether as ordered instructions for a typesetting program, as in TeX and troff, or as the hidden formatting codes a word processor writes.
  • Lightweight markup: Favors unobtrusive punctuation that stays easy to read and write, as in Markdown and reStructuredText.

Despite the name, a markup language isn’t a programming language, since it describes documents rather than expressing computation. It also differs from data serialization formats like JSON and YAML, which encode structured data for exchange between programs rather than annotated text for people to read.

A Roadmap to XML Parsers in Python

Tutorial

A Roadmap to XML Parsers in Python

In this tutorial, you'll learn what XML parsers are available in Python and how to pick the right parsing model for your specific use case. You'll explore Python's built-in parsers as well as major third-party libraries.

intermediate stdlib tools

For additional information on related topics, take a look at the following resources:


By Martin Breuss • Updated Sept. 5, 2026