Markdown [ 9 ] es un lenguaje de marcado ligero para crear texto formateado usando un editor de texto plano . John Gruber creó Markdown en 2004 como un lenguaje de marcado fácil de leer . [ 9 ] Markdown se usa ampliamente para blogs , mensajería instantánea y grandes modelos de lenguaje , [ 10 ] y también se usa en otros lugares en foros en línea , software colaborativo , páginas de documentación y archivos readme .
La descripción inicial de Markdown [ 11 ] contenía ambigüedades y planteaba interrogantes sin respuesta, lo que provocó que las implementaciones divergieran, tanto intencional como accidentalmente, de la versión original. Esto se solucionó en 2014 cuando colaboradores veteranos de Markdown publicaron CommonMark , una especificación y un conjunto de pruebas inequívocos para Markdown. [ 12 ]
Historia
Markdown se inspiró en convenciones preexistentes para marcar texto plano en correos electrónicos y publicaciones de Usenet , [ 13 ] como los lenguajes de marcado anteriores setext ( c. 1992 ), Textile ( c. 2002 ) y reStructuredText ( c. 2002 ). [ 9 ]
En 2002, Aaron Swartz creó atx y lo denominó "el verdadero formato de texto estructurado". Gruber creó el lenguaje Markdown en 2004 con Swartz como su "columna de consulta". [ 14 ] El objetivo del lenguaje era permitir a las personas "escribir utilizando un formato de texto plano fácil de leer y escribir, y convertirlo opcionalmente a XHTML (o HTML ) estructuralmente válido". [ 5 ]
Otro objetivo clave del diseño era la legibilidad , que el lenguaje fuera legible tal cual, sin parecer que se le han añadido etiquetas o instrucciones de formato, [ 9 ] a diferencia del texto formateado con lenguajes de marcado "más pesados" , como el formato de texto enriquecido (RTF), HTML o incluso wikitext , cada uno de los cuales tiene etiquetas en línea obvias e instrucciones de formato que pueden dificultar la lectura del texto para los humanos.
Gruber escribió un script en PerlMarkdown.pl que convierte la entrada de texto con formato a XHTML o HTML válido y bien formado< , codificando los corchetes angulares ( , >) y las ampersands ( &), que serían malinterpretadas como caracteres especiales en esos lenguajes. Puede funcionar como un script independiente, un complemento para Blosxom o Movable Type , o como un filtro de texto para BBEdit . [ 5 ]
Auge y divergencia
A medida que la popularidad de Markdown creció rápidamente, aparecieron muchas implementaciones de Markdown , impulsadas principalmente por la necesidad de características adicionales como tablas , notas al pie , listas de definiciones, [ nota 1 ] y Markdown dentro de bloques HTML.
El comportamiento de algunos de estos divergió de la implementación de referencia, ya que Markdown solo se caracterizó por una especificación informal [ 17 ] y una implementación de Perl para la conversión a HTML.
Al mismo tiempo, varias ambigüedades en la especificación informal habían llamado la atención. [ 18 ] Estos problemas impulsaron la creación de herramientas como Babelmark [ 19 ] [ 20 ] para comparar la salida de varias implementaciones, [ 21 ] y un esfuerzo de algunos desarrolladores de analizadores de Markdown para la estandarización. Sin embargo, Gruber ha argumentado que la estandarización completa sería un error: «Diferentes sitios (y personas) tienen diferentes necesidades. Ninguna sintaxis satisfaría a todos». [ 22 ]
Gruber evitó usar llaves en Markdown para reservarlas extraoficialmente para extensiones específicas de la implementación. [ 23 ]
CommonMark
- Normalización
En 2012, un grupo de personas, entre ellas Jeff Atwood y John MacFarlane , lanzaron lo que Atwood caracterizó como un esfuerzo de estandarización. [ 12 ]
Un sitio web comunitario ahora tiene como objetivo "documentar varias herramientas y recursos disponibles para autores y desarrolladores de documentos, así como implementadores de las diversas implementaciones de Markdown". [ 26 ]
- Nombre
En septiembre de 2014, Gruber se opuso al uso de "Markdown" en el nombre de este proyecto y se le cambió el nombre a "CommonMark". [ 13 ] [ 27 ] [ 28 ] CommonMark.org publicó varias versiones de una especificación, una implementación de referencia, un conjunto de pruebas y "[planes] para anunciar una especificación y un conjunto de pruebas 1.0 finalizados en 2019". [ 29 ] No se ha publicado una especificación 1.0 finalizada, ya que aún quedan problemas importantes sin resolver. [ 30 ]
- Adopción
No obstante, varios sitios web y proyectos han adoptado CommonMark, entre ellos Codeberg , Discourse , GitHub , GitLab , Reddit , Qt , Stack Exchange ( Stack Overflow ) y Swift .
En marzo de 2016 se publicaron dos RFC informativos relevantes sobre Internet:
- RFC 7763 – " El tipo de medio text/markdown, " [ 2 ] Informativo. Introduce el tipo MIME
text/markdown. - RFC 7764 – " Guía sobre Markdown: filosofías de diseño, estrategias de estabilidad y registros seleccionados " , [ 7 ] Informativo. Analiza y registra las variantes MultiMarkdown , GitHub Flavored Markdown (GFM), Pandoc y Markdown Extra (entre otras). [ 31 ]
Variantes
Sitios web como Bitbucket , Diaspora , Discord , [ 32 ] GitHub , [ 33 ] OpenStreetMap , Reddit , [ 34 ] SourceForge [ 35 ] y Stack Exchange [ 36 ] utilizan variantes de Markdown para facilitar las discusiones entre usuarios.
Dependiendo de la implementación, es posible que se admitan etiquetas HTML básicas en línea . [ 37 ]
El texto en cursiva puede implementarse mediante _underscores_o *single-asterisks*. [ 38 ]
Muchas plataformas implementan un formato de spoiler que oculta el texto hasta que se pasa el cursor por encima, se hace clic o se toca. El marcado más común es ||spoiler|| utilizado por Discord [ 39 ] , Telegram [ 40 ] [ 41 ] , varios clientes de Matrix [ 42 ] , el ahora desaparecido Guilded [ 43 ] , un foro llamado Flarum [ 44 ] , un complemento de NodeBB [ 45 ] , el motor de tablón de imágenes JSChan [ 46 ] y posiblemente más.
Markdown con formato de GitHub
GitHub había estado utilizando su propia variante de Markdown desde ya en 2009, [ 47 ] que agregaba soporte para formato adicional como tablas y contenido de bloques anidados dentro de elementos de lista, así como características específicas de GitHub como referencias de enlaces automáticos a confirmaciones, problemas, nombres de usuario, etc.
En 2017, GitHub publicó una especificación formal de su GitHub Flavored Markdown (GFM) que se basa en CommonMark . [ 33 ] Es un superconjunto estricto de CommonMark, que sigue su especificación exactamente excepto por las tablas, el tachado , los enlaces automáticos y las listas de tareas, que GFM agrega como extensiones. [ 48 ]
En consecuencia, GitHub también modificó el analizador sintáctico utilizado en sus sitios, lo que obligó a cambiar algunos documentos. Por ejemplo, ahora GFM requiere que el símbolo de almohadilla que crea un encabezado esté separado del texto del encabezado por un espacio.
Descuento adicional
Markdown Extra es un lenguaje de marcado ligero basado en Markdown implementado en PHP (originalmente), Python y Ruby . [ 49 ] Agrega las siguientes características que no están disponibles con Markdown regular:
- Marcado Markdown dentro de bloques HTML
- Elementos con atributo id/clase
- "Bloques de código delimitados" que abarcan varias líneas de código.
- Tablas [ 49 ]
- Listas de definiciones
- Notas a pie de página
- Abreviaturas
Markdown Extra es compatible con algunos sistemas de gestión de contenido como Drupal , [ 50 ] Grav (CMS) , Textpattern CMS [ 51 ] y TYPO3 . [ 52 ]
Ejemplos
Implementaciones
Existen implementaciones de Markdown para más de una docena de lenguajes de programación ; además, muchas aplicaciones , plataformas y marcos de trabajo son compatibles con Markdown. [ 53 ] Por ejemplo, existen complementos de Markdown para todas las principales plataformas de blogs . [ 13 ]
Aunque Markdown es un lenguaje de marcado minimalista que se lee y edita con un editor de texto normal , existen editores especialmente diseñados que muestran una vista previa de los archivos con estilos, disponibles para las principales plataformas. Muchos editores de texto y código de uso general incluyen complementos de resaltado de sintaxis para Markdown o los ofrecen como descarga opcional. Algunos editores muestran una vista previa en paralelo o renderizan el código directamente en formato WYSIWYG ( lo que ves es lo que obtienes) .
Véase también
Notas explicativas
- ↑ Listas de descripción técnicamente HTML
Referencias
- ↑ Gruber, John (8 de enero de 2014). "La extensión de archivo Markdown" . The Daring Fireball Company, LLC. Archivado del original el 12 de julio de 2020. Recuperado el 27 de marzo de 2022.
Supongo que ya es tarde, pero la única extensión de archivo que recomendaría es ".markdown", por la misma razón que ofreció Hilton Lipschitz:
ya no vivimos en un mundo 8.3, así que deberíamos usar las extensiones de archivo más descriptivas. Es triste que todos nuestros sistemas operativos dependan de esta estúpida convención en lugar del mejor código creador o un modelo de metadatos, pero es genial que ahora admitan extensiones de archivo más largas.
- 1 2 3 4 S. Leonard (marzo de 2016). El tipo de medio text/markdown . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC7763 . ISSN 2070-1721 . RFC 7763 . Informativo.
- ↑ Swartz, Aaron (19 de marzo de 2004). "Markdown" . Aaron Swartz: El blog . Archivado del original el 24 de diciembre de 2017. Consultado el 1 de septiembre de 2013 .
- ↑ Gruber, John . "Markdown" . Daring Fireball . Archivado del original el 11 de marzo de 2004. Recuperado el 20 de agosto de 2022 .
- 1 2 3 Markdown 1.0.1 readme código fuente "Daring Fireball – Markdown" . 17-12-2004. Archivado del original el 02-04-2004.
- ↑ "Markdown: Licencia" . Daring Fireball. Archivado del original el 18 de febrero de 2020. Consultado el 25 de abril de 2014 .
- 1 2 3 S. Leonard (marzo de 2016). Guía sobre Markdown: filosofías de diseño, estrategias de estabilidad y registros seleccionados . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC7764 . ISSN 2070-1721 . RFC 7764 . Informativo.
- ↑ "Sitio de referencia de RMarkdown" . Archivado del original el 3 de marzo de 2020. Consultado el 21 de noviembre de 2019 .
- 1 2 3 4 Sintaxis de Markdown "Daring Fireball – Markdown – Sintaxis" . 13/06/2013.Sin embargo, la legibilidad se prioriza por encima de todo. Un documento con formato Markdown debe poder publicarse tal cual, como texto plano, sin que parezca que se le han añadido etiquetas o instrucciones de formato. Si bien la sintaxis de Markdown se ha visto influenciada por varios filtros de texto a HTML existentes —entre ellos Setext, atx, Textile, reStructuredText, Grutatext [ 15 ] y EtText [ 16 ] —, la principal fuente de inspiración para la sintaxis de Markdown es el formato del correo electrónico en texto plano.
- ↑ Dillet, Romain (6 de marzo de 2025). "Mistral añade una nueva API que convierte cualquier documento PDF en un archivo Markdown listo para IA" . TechCrunch . Consultado el 7 de septiembre de 2025 .
- ↑ "Daring Fireball: Presentando Markdown" . daringfireball.net . Archivado del original el 20 de septiembre de 2020. Consultado el 23 de septiembre de 2020 .
- 1 2 Atwood, Jeff (25-10-2012). "El futuro de Markdown" . CodingHorror.com. Archivado del original el 11-02-2014 . Recuperado el 25-04-2014 .
- 1 2 3 Gilbertson, Scott (5 de octubre de 2014). "Duelo de Markdown: ¿Qué sucede cuando el software FOSS recibe respaldo corporativo?" . Ars Technica . Archivado del original el 14 de noviembre de 2020. Recuperado el 14 de junio de 2017. La bifurcación
de CommonMark
podría resultar mejor para los usuarios... pero los creadores originales parecen no estar de acuerdo.
- ↑ @gruber (12 de junio de 2016). "Debería escribir sobre ello, pero es doloroso. Más o menos: Aaron era mi caja de resonancia, mi musa" ( Tweet ) – vía Twitter .
- ↑ "Un naufragio personal: The Grutatxt markup" . triptico.com . Archivado del original el 30-06-2022 . Recuperado el 30-06-2022 .
- ↑ "EtText: Documentación: Uso de EtText" . ettext.taint.org . Consultado el 30 de junio de 2022 .
- ↑ "Documentación de sintaxis de Markdown" . Daring Fireball. Archivado del original el 9 de septiembre de 2019. Consultado el 9 de marzo de 2018 .
- ↑ "Especificación de Markdown con formato de GitHub: ¿Por qué se necesita una especificación?" . github.github.com . Archivado del original el 3 de febrero de 2020 . Consultado el 17 de mayo de 2018 .
- ↑ "Babelmark 2 – Comparación de implementaciones de Markdown" . Johnmacfarlane.net. Archivado del original el 18 de julio de 2017. Consultado el 25 de abril de 2014 .
- ↑ "Babelmark 3 – Comparación de implementaciones de Markdown" . github.io. Archivado del original el 12/11/2020 . Consultado el 10/12/2017 .
- ↑ "Babelmark 2 – Preguntas frecuentes" . Johnmacfarlane.net. Archivado del original el 28 de julio de 2017. Consultado el 25 de abril de 2014 .
- ↑ Gruber, John [@gruber] (4 de septiembre de 2014). "@tobie @espadrine @comex @wycats Porque los diferentes sitios (y las personas) tienen diferentes necesidades. Ninguna sintaxis haría felices a todos" ( Tweet ) – vía Twitter .
- ↑ Gruber, John (19 de mayo de 2022). "Markdoc" . Daring Fireball . Archivado del original el 19 de mayo de 2022. Recuperado el 19 de mayo de 2022. Me
encantan sus extensiones de sintaxis, muy fieles al espíritu de Markdown. Usan llaves para sus extensiones; no estoy seguro de haberlo aclarado públicamente, pero evité usar llaves en Markdown mismo, aunque son caracteres muy tentadores, para reservarlas extraoficialmente para extensiones específicas de la implementación. El uso extensivo de llaves por parte de Markdoc para su sintaxis es exactamente el tipo de cosa en la que estaba pensando.
- ↑ "UTI de un documento CommonMark" . 12 de abril de 2017. Archivado del original el 22 de noviembre de 2018. Recuperado el 29 de septiembre de 2017 .
- ↑ "Especificación CommonMark" . Archivado del original el 7 de agosto de 2017. Consultado el 26 de julio de 2017 .
- ↑ "Página de la comunidad de Markdown" . GitHub. Archivado del original el 26/10/2020 . Consultado el 25/04/2014 .
- ↑ "Markdown estándar ahora es Markdown común" . Jeff Atwood. 4 de septiembre de 2014. Archivado del original el 9 de octubre de 2014. Consultado el 7 de octubre de 2014 .
- ↑ "Standard Markdown Becomes Common Markdown then CommonMark" . InfoQ . Archivado del original el 30/09/2020 . Consultado el 07/10/2014 .
- ↑ "CommonMark" . Archivado del original el 12 de abril de 2016. Consultado el 20 de junio de 2018.
La versión actual de la especificación CommonMark está completa y es bastante sólida tras un año de comentarios públicos… pero aún no es definitiva. Con su ayuda, planeamos anunciar la especificación 1.0 finalizada y el conjunto de pruebas en 2019.
- ↑ "Problemas que DEBEMOS resolver antes del lanzamiento de la versión 1.0 [ 6 restantes ] " . Discusión de CommonMark . 26 de julio de 2015. Archivado del original el 14 de abril de 2021. Consultado el 2 de octubre de 2020 .
- ↑ "Variantes de Markdown" . IANA . 28 de marzo de 2016. Archivado del original el 27 de octubre de 2020. Consultado el 6 de julio de 2016 .
- ↑ "Texto Markdown 101 (Formato de chat: Negrita, cursiva, subrayado)" . Discord . 3 de octubre de 2024. Consultado el 7 de febrero de 2025 .
- 1 2 "Especificación de Markdown con sabor a GitHub" . GitHub. Archivado del original el 3 de febrero de 2020. Recuperado el 11 de junio de 2020 .
- ↑ "Introducción al formato Markdown de Reddit. O, ¿cómo se hace todo ese formato sofisticado en los comentarios?" . Reddit. Archivado del original el 11 de junio de 2019. Consultado el 29 de marzo de 2013 .
- ↑ "SourceForge: Guía de sintaxis de Markdown" . SourceForge . Archivado del original el 13 de junio de 2019. Consultado el 10 de mayo de 2013 .
- ↑ "Ayuda para editar Markdown" . StackOverflow.com. Archivado del original el 28 de marzo de 2014. Consultado el 11 de abril de 2014 .
- ↑ "Documentación de sintaxis de Markdown" . daringfireball.net . Archivado del original el 9 de septiembre de 2019. Consultado el 1 de marzo de 2021 .
- ↑ "Sintaxis básica: cursiva" . La guía de Markdown . Matt Cone. Archivado del original el 26 de marzo de 2022. Recuperado el 27 de marzo de 2022.
Para poner un texto en cursiva, agregue un asterisco o un guion bajo antes y después de una palabra o frase. Para poner en cursiva la parte central de una palabra para enfatizarla, agregue un asterisco sin espacios alrededor de las letras.
- ↑ "¡Etiquetas de spoiler!" . Discord . 30-01-2022 . Consultado el 02-06-2026 .
- ↑ "Opciones de formato de texto de Telegram: una guía completa de Umnico" . umnico.com . 16 de diciembre de 2024. Consultado el 2 de junio de 2026 .
- ↑ "GitHub - AndyRightNow/telegram-markdown-v2: Transforma tu markdown para que esté listo y sea compatible con el modo de análisis MarkdownV2 de Telegram" . GitHub . Consultado el 2 de junio de 2026 .
- ↑ Suomalainen, Aminda. "Spoilers sobre el protocolo Matrix" . Aminda Suomalainen . Consultado el 2 de junio de 2026 .
- ↑ "Uso de Markdowns" . Guilded . 1 de julio de 2025. Archivado del original el 24 de noviembre de 2025. Consultado el 2 de junio de 2026 .
- ↑ "Spoilers de Markdown - Comunidad Flarum" . discuss.flarum.org . Consultado el 2 de junio de 2026 .
- ↑ "nodebb-plugin-extended-markdown - npm" .
- ↑ "lib/post/markdown/markdown.js · master · Thomas Lynch / jschan · GitLab" . GitLab . Consultado el 3 de junio de 2026 .
- ↑ Tom Preston-Werner . "GitHub Flavored Markdown Examples" . GitHub . Archivado del original el 13-05-2021 . Recuperado el 02-04-2021 .
- ↑ "Una especificación formal para GitHub Flavored Markdown" . GitHub Engineering . 14 de marzo de 2017. Archivado del original el 3 de febrero de 2020. Recuperado el 16 de marzo de 2017 .
- 1 2 Fortin, Michel (2018). "PHP Markdown Extra" . Sitio web de Michel Fortin . Archivado del original el 17 de enero de 2021. Recuperado el 26 de diciembre de 2018 .
- ↑ "Editor Markdown para BUEditor" . 4 de diciembre de 2008. Archivado del original el 17 de septiembre de 2020. Consultado el 15 de enero de 2017 .
- ↑ «Complemento: wet_textfilter_markdown» . Complementos de CMS de patrón de texto . 2025-04-27.
- ↑ "Markdown para TYPO3 (markdown_content)" . extensions.typo3.org . Archivado del original el 1 de febrero de 2021. Consultado el 6 de febrero de 2019 .
- ↑ "Página de la comunidad W3C sobre implementaciones de Markdown" . Wiki de Markdown del W3C . Archivado del original el 17 de septiembre de 2020. Consultado el 24 de marzo de 2016 .
Enlaces externos
- Sitio web oficial del código original de John Gruber.
- Presentaciones relacionadas con la informática en 2004
- Lenguajes de marcado ligeros
- Formatos abiertos