A markup language is a text-encoding system which specifies the structure and formatting of a document and potentially the relationships among its parts.
A lightweight markup language (LML) uses a simple and unobtrusive syntax that aims on maintaining human readability on its raw form and minimizing the use of tags.
Markup languages focuses on text format. Do not confuse them with data serialization languages that focuses on data itself, though both terms may overlap sometimes.
Markup Languages Classification
Types of markup languages, articulated in Coombs, Renear, and DeRose (1987) and Bray (2003):
- Presentational
- Procedural
- Descriptive
Presentational
A presentational markup languages is used within a WYSIWYG application to hide the markup code to the user. The text is formatted directly on screen.
An example of presentational markup is a word processor such as LibreOffice.
Procedural
A procedural markup language is embedded within the text to provide instructions about how to process the code. They may use macros to apply on the given text.
Procedural examples are Markdown and TeX.
You can read this post about procedural markup languages.
Descriptive
A descriptive, logical or conceptual markup language are used to label text components based on what they are, rather than how they should be processed.
Examples of descriptive markup languages are HTML, XHTML or LaTeX.
You can read this post about descriptive markup languages.