En informática, el marcado de texto (en inglés, markup) consiste en añadir a un texto unas marcas o etiquetas que indican su estructura o su formato: qué fragmento es un título, cuál un párrafo, qué palabra va en cursiva, dónde hay un enlace o una lista. Esas marcas no forman parte del contenido que lee el destinatario, sino que las interpreta un programa, un navegador o un procesador de textos, para mostrar el resultado con su formato. El conjunto de marcas disponibles y sus reglas forman un lenguaje de marcado (markup language), entre los que los más conocidos son HTML y XML.
La palabra viene del mundo editorial. Antes de la informática, los correctores y editores anotaban a mano en los márgenes de los manuscritos instrucciones para el tipógrafo, como «negrita», «cuerpo 12» o «sangrar», y a esas anotaciones se las llamaba en inglés markup. Los lenguajes de marcado hacen lo mismo dentro del propio texto. En HTML, por ejemplo, un título de primer nivel se escribe entre las etiquetas (tags) <h1> y </h1>, y una palabra destacada entre <em> y </em>:
<h1>Marcado de texto</h1>
<p>Una palabra <em>destacada</em> dentro de un párrafo.</p>
El origen de los lenguajes actuales está en GML, que Charles Goldfarb, Edward Mosher y Raymond Lorie crearon en IBM en 1969, y en su sucesor, SGML, aprobado como norma internacional en 1986. Su idea central fue separar el marcado descriptivo (descriptive markup), que dice qué es cada parte del texto, del marcado de presentación (presentational markup), que dice cómo debe verse. Si un texto marca sus títulos como títulos, basta cambiar una regla para que todos cambien de tamaño o de color a la vez. Tim Berners-Lee se basó en SGML para crear HTML en 1991, el lenguaje de la web, y en 1998 el consorcio W3C publicó XML, una versión simplificada de SGML para intercambiar datos estructurados entre programas. En la edición científica se usa LaTeX, que Leslie Lamport construyó en 1984 sobre el sistema TeX de Donald Knuth, y que es el estándar para escribir textos con fórmulas matemáticas.
En 2004, John Gruber, con la colaboración de Aaron Swartz, creó Markdown, un lenguaje de marcado ligero (lightweight markup language) cuyas marcas son tan discretas que el texto se lee bien aunque no se interprete: una palabra entre asteriscos va en cursiva y una línea que empieza con una almohadilla es un título. Markdown se ha convertido en el formato habitual de la documentación técnica, de los foros de programación y de muchas aplicaciones de notas, y es también el formato en el que se escriben los artículos de este sitio.