Lenguaje de marcado de texto sin formato
Markdown [9] es un lenguaje de marcado ligero para crear texto formateado utilizando un editor de texto sin formato . John Gruber creó Markdown en 2004 como un lenguaje de marcado fácil de leer . [9] Markdown se usa ampliamente para blogs y mensajería instantánea , y también se usa en foros en línea , software colaborativo , páginas de documentación y archivos Léame .
La descripción inicial de Markdown [10] contenía ambigüedades y generó preguntas sin respuesta, lo que provocó que las implementaciones divergieran de la versión original, tanto intencionada como accidentalmente. Esto se solucionó en 2014 cuando los colaboradores de Markdown de larga data lanzaron CommonMark, una especificación inequívoca y un conjunto de pruebas para Markdown. [11]
Historia
Markdown se inspiró en convenciones preexistentes para marcar texto sin formato en correos electrónicos y publicaciones de Usenet , [12] 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 llamó "el verdadero formato de texto estructurado". Gruber creó el lenguaje Markdown en 2004 con Swartz como su "caja de resonancia". [13] El objetivo del lenguaje era permitir a las personas "escribir utilizando un formato de texto plano fácil de leer y escribir, y opcionalmente convertirlo a XHTML estructuralmente válido (o HTML )". [5]
Su objetivo clave de diseño era la legibilidad , que el lenguaje fuera legible tal como está, sin que parezca que ha sido marcado con 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 obvias en línea e instrucciones de formato que pueden hacer que el texto sea más difícil de leer para los humanos).
Gruber escribió un script en PerlMarkdown.pl
, que convierte la entrada de texto marcado a XHTML o HTML válido y bien formado<
y reemplaza los corchetes angulares ( , >
) y los símbolos ( &
) con sus correspondientes referencias de entidades de caracteres . Puede asumir el papel de un script independiente, un complemento para Blosxom o Movable Type , o un filtro de texto para BBEdit . [5]
Ascenso y divergencia
A medida que la popularidad de Markdown creció rápidamente, aparecieron muchas implementaciones de Markdown , impulsadas principalmente por la necesidad de funciones adicionales como tablas , notas al pie , listas de definiciones, [nota 1] y Markdown dentro de bloques HTML.
El comportamiento de algunos de ellos divergía de la implementación de referencia, ya que Markdown solo se caracterizaba por una especificación informal [16] y una implementación de Perl para la conversión a HTML.
Al mismo tiempo, habían llamado la atención varias ambigüedades en la especificación informal. [17] Estos problemas estimularon la creación de herramientas como Babelmark [18] [19] para comparar el resultado de varias implementaciones, [20] y un esfuerzo por parte de algunos desarrolladores de analizadores Markdown para la estandarización. Sin embargo, Gruber ha argumentado que una estandarización completa sería un error: "Diferentes sitios (y personas) tienen diferentes necesidades. Ninguna sintaxis haría felices a todos". [21]
Gruber evitó el uso de llaves en Markdown para reservarlas extraoficialmente para extensiones específicas de implementación. [22]
Normalización
A partir de 2012, un grupo de personas, entre ellos Jeff Atwood y John MacFarlane , lanzaron lo que Atwood caracterizó como un esfuerzo de estandarización. [11]
Un sitio web comunitario ahora tiene como objetivo "documentar varias herramientas y recursos disponibles para los autores y desarrolladores de documentos, así como para los implementadores de las diversas implementaciones de Markdown". [25]
En septiembre de 2014, Gruber se opuso al uso de "Markdown" en nombre de este esfuerzo y fue rebautizado como CommonMark. [12] [26] [27] CommonMark.org publicó varias versiones de una especificación, implementación de referencia, conjunto de pruebas y "[planes] anunciar una especificación 1.0 finalizada y un conjunto de pruebas en 2019". [28]
Desde entonces no se ha publicado ninguna especificación 1.0 ya que aún quedan problemas importantes sin resolver. [29]
No obstante, los siguientes sitios web y proyectos han adoptado CommonMark: Discourse , GitHub , GitLab , Reddit , Qt , Stack Exchange ( Stack Overflow ) y Swift .
En marzo de 2016, se publicaron dos RFC de Internet informativos relevantes:
- RFC 7763 introdujo el tipo MIME
text/markdown
. - RFC 7764 discutió y registró las variantes MultiMarkdown , GitHub Flavored Markdown (GFM), Pandoc y Markdown Extra, entre otras. [30]
Variantes
Sitios web como Bitbucket , Diaspora , GitHub , [31] OpenStreetMap , Reddit , [32] SourceForge , [33] y Stack Exchange [34] utilizan variantes de Markdown para facilitar las discusiones entre usuarios.
Dependiendo de la implementación, es posible que se admitan etiquetas HTML en línea básicas . [35]
El texto en cursiva puede implementarse mediante _underscores_
o *single-asterisks*
. [36]
Rebaja con sabor a GitHub
GitHub había estado usando su propia variante de Markdown desde 2009, [37] que agregó soporte para formatos adicionales, como tablas y contenido de bloques anidados dentro de elementos de lista, así como características específicas de GitHub, como referencias de enlace automático a confirmaciones. , problemas, nombres de usuario, etc.
En 2017, GitHub lanzó una especificación formal de su GitHub Flavored Markdown (GFM) que se basa en CommonMark. [31] Es un superconjunto estricto de CommonMark, que sigue exactamente su especificación, excepto tablas, tachados , enlaces automáticos y listas de tareas, que GFM agrega como extensiones. [38]
En consecuencia, GitHub también cambió el analizador utilizado en sus sitios, lo que requirió que se cambiaran algunos documentos. Por ejemplo, GFM ahora requiere que el símbolo de almohadilla que crea un encabezado esté separado del texto del encabezado por un carácter de espacio.
Rebaja adicional
Markdown Extra es un lenguaje de marcado ligero basado en Markdown implementado en PHP (originalmente), Python y Ruby . [39] Agrega las siguientes características que no están disponibles con Markdown normal:
- Marcado de rebajas dentro de bloques HTML
- Elementos con atributo id/clase
- "Bloques de código vallados" que abarcan varias líneas de código
- Mesas [40]
- Listas de definiciones
- Notas a pie de página
- Abreviaturas
Markdown Extra es compatible con algunos sistemas de gestión de contenidos como Drupal , [41] Grav (CMS) y TYPO3 . [42]
LiaScript
LiaScript [43] es un dialecto Markdown que fue diseñado para crear contenido educativo interactivo. Se implementa en Elm y TypeScript y agrega elementos de sintaxis adicionales para definir características como:
Ejemplos
Implementaciones
Hay implementaciones de Markdown disponibles para más de una docena de lenguajes de programación ; Además, muchas aplicaciones , plataformas y marcos son compatibles con Markdown. [44] Por ejemplo, existen complementos de Markdown para todas las principales plataformas de blogs . [12]
Si bien Markdown es un lenguaje de marcado mínimo y se lee y edita con un editor de texto normal , existen editores especialmente diseñados que obtienen una vista previa de los archivos con estilos, que están disponibles para todas las plataformas principales. Muchos editores de texto y código de uso general tienen complementos de resaltado de sintaxis para Markdown integrados o disponibles como descarga opcional. Los editores pueden presentar una ventana de vista previa de lado a lado o representar el código directamente en forma WYSIWYG .
Algunas aplicaciones, servicios y editores admiten Markdown como formato de edición, entre ellos:
- Bugzilla utiliza una versión personalizada de Markdown. [45]
- ChatGPT : el cliente ChatGPT representará la salida del LLM formateada en Markdown en LaTeX y HTML, y se recomienda que el modelo utilice Markdown para formatear su salida. El cliente no formateará el Markdown proporcionado por el usuario, pero aún así se pasará al modelo sin modificaciones.
- Discord : mensajes de chat [46]
- Discourse utiliza la versión CommonMark de Markdown en el compositor de publicaciones del foro.
- Doxygen : un generador de documentación de código fuente que admite Markdown con funciones adicionales [47]
- GitHub Flavored Markdown (GFM) ignora los guiones bajos en las palabras y agrega resaltado de sintaxis , listas de tareas , [48] y tablas [31].
- El cliente de correo electrónico GNOME Evolution admite la redacción de mensajes en formato Markdown, [49] con la capacidad de enviar y representar correos electrónicos en formato Markdown puro (
Content-Type: text/markdown;
) o convertir Markdown a texto sin formato o correo electrónico HTML al enviar. - Joplin : una aplicación para tomar notas que admite el formato Markdown [50]
- JotterPad : un editor WYSIWYG en línea que admite Markdown y Fountain [51]
- Kanboard utiliza la sintaxis estándar de Markdown como única sintaxis de formato para las descripciones de tareas. [52]
- La función wiki de Microsoft Azure DevOps tiene su propia implementación [53]
- Microsoft Teams : mensajes de chat [54]
- Misskey , sus numerosas bifurcaciones y otras plataformas Fediverse como Akkoma [55] utilizan un formato de texto personalizado llamado engañosamente "Misskey-Flavored Markdown (MFM)", con soporte para comillas en bloque anidadas estándar
>
y énfasis en línea _*`
, así como extensiones vistas en otros lugares para @
menciones. , etiquetas, emoji#
personalizados , detección automática de URL y vista previa de destino de enlace alternable, pero no admite encabezados, listas, enlaces de referencia y otras funciones estándar de Markdown. Admite un puñado de etiquetas similares a HTML ( ) y una notación especial con palabras clave en inglés o pares clave-valor para intervalos con efectos estilísticos aplicados, por ejemplo, fuentes, desenfoques, bordes y transformaciones como voltear, desplazar, rotar, escalar y animar. pero también para furigana y cuadros de búsqueda. [56] El formato de mensaje de dichos objetos ActivityPub que se pueden consumir como mensajes es . :foo:
<small> <center> <plain>
$[key=value content]
text/x.misskeymarkdown
- El cliente de correo electrónico Mozilla Thunderbird admite Markdown a través del complemento "Markdown here Revival".
- Nextcloud Notes : la aplicación predeterminada para tomar notas en la plataforma Nextcloud admite el formato mediante Markdown [57]
- Obsidian es un software para tomar notas basado en archivos Markdown. [58]
- Rebaja [59]
- RStudio : un IDE para R. Proporciona una función contenedora de C++ para una variante de rebajas llamada sundown [60]
- Nota simple [61]
Ver 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". La empresa Daring Fireball, LLC. Archivado desde el original el 12 de julio de 2020 . Consultado el 27 de marzo de 2022 .
Supongo que ya es demasiado tarde, pero la única extensión de archivo que recomendaría es ".markdown", por la misma razón que ofrece Hilton Lipschitz:
ya no vivimos en un mundo 8.3, por lo que deberíamos usar las extensiones de archivo más descriptivas. Es triste que todos nuestros sistemas operativos se basen en esta estúpida convención en lugar del mejor código de creador o un modelo de metadatos, pero es fantástico que ahora admitan extensiones de archivos más largas.
- ^ abc Leonard, Sean (marzo de 2016). "El tipo de medio de texto/rebaja". Solicitud de comentarios: 7763 . Grupo de trabajo de ingeniería de Internet. Archivado desde el original el 22 de marzo de 2022 . Consultado el 27 de marzo de 2022 .
Este documento registra el tipo de medio de texto/markdown para su uso con Markdown, una familia de sintaxis de formato de texto sin formato que opcionalmente se puede convertir a lenguajes de marcado formales como HTML.
- ^ Swartz, Aaron (19 de marzo de 2004). "Reducción". Aaron Swartz: el blog . Archivado desde el original el 24 de diciembre de 2017 . Consultado el 1 de septiembre de 2013 .
- ^ Gruber, John . "Reducción". Bola de fuego atrevida . Archivado desde el original el 11 de marzo de 2004 . Consultado el 20 de agosto de 2022 .
- ^ Código fuente Léame de abc Markdown 1.0.1 "Daring Fireball - Markdown". 2004-12-17. Archivado desde el original el 2 de abril de 2004.
- ^ "Rebaja: licencia". Bola de fuego atrevida. Archivado desde el original el 18 de febrero de 2020 . Consultado el 25 de abril de 2014 .
- ^ ab Leonard, Sean (marzo de 2016). "Orientación sobre rebajas: filosofías de diseño, estrategias de estabilidad y registros seleccionados". Solicitud de comentarios: 7764 . Grupo de trabajo de ingeniería de Internet. Archivado desde el original el 17 de abril de 2022 . Consultado el 27 de marzo de 2022 .
Este documento detalla el tipo de medio de texto/markdown para usar con Markdown, una familia de sintaxis de formato de texto sin formato que opcionalmente se puede convertir a lenguajes de marcado formales como HTML. Se proporciona información general, estrategias de almacenamiento local y registros de sintaxis adicionales.
- ^ "Sitio de referencia de RMarkdown". Archivado desde el original el 3 de marzo de 2020 . Consultado el 21 de noviembre de 2019 .
- ^ Abcd Sintaxis de Markdown "Daring Fireball - Markdown - Sintaxis". 2013-06-13."Sin embargo, la legibilidad se enfatiza por encima de todo. Un documento con formato Markdown debe poder publicarse tal cual, como texto sin formato, sin que parezca que ha sido marcado con etiquetas o instrucciones de formato. Mientras que la sintaxis de Markdown ha sido influenciada por varios textos existentes filtros -a-HTML, incluidos Setext, atx, Textile, reStructuredText, Grutatext [14] y EtText [15] , la mayor fuente de inspiración para la sintaxis de Markdown es el formato del correo electrónico de texto sin formato".
- ^ "Daring Fireball: Presentación de Markdown". daringfireball.net . Archivado desde el original el 20 de septiembre de 2020 . Consultado el 23 de septiembre de 2020 .
- ^ ab Atwood, Jeff (25 de octubre de 2012). "El futuro de las rebajas". CodificaciónHorror.com. Archivado desde el original el 11 de febrero de 2014 . Consultado el 25 de abril de 2014 .
- ^ abc Gilbertson, Scott (5 de octubre de 2014). "Lanzamiento de rebajas: ¿Qué sucede cuando el software FOSS obtiene respaldo corporativo?". Ars Técnica . Archivado desde el original el 14 de noviembre de 2020 . Consultado el 14 de junio de 2017 . La bifurcación
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 fue mi caja de resonancia, mi musa" ( Tweet ) – vía Twitter .
- ^ "Un naufragio personal: El marcado Grutatxt". triptico.com . Consultado el 30 de junio de 2022 .
- ^ "EtText: Documentación: uso de EtText". ettext.taint.org . Consultado el 30 de junio de 2022 .
- ^ "Documentación de sintaxis de Markdown". Bola de fuego atrevida. Archivado desde el original el 9 de septiembre de 2019 . Consultado el 9 de marzo de 2018 .
- ^ "Especificación de Markdown con sabor a GitHub: ¿Por qué se necesita una especificación?". github.github.com . Archivado desde el original el 3 de febrero de 2020 . Consultado el 17 de mayo de 2018 .
- ^ "Babelmark 2: comparar implementaciones de rebajas". Johnmacfarlane.net. Archivado desde el original el 18 de julio de 2017 . Consultado el 25 de abril de 2014 .
- ^ "Babelmark 3: comparar implementaciones de Markdown". github.io. Archivado desde el original el 12 de noviembre de 2020 . Consultado el 10 de diciembre de 2017 .
- ^ "Babelmark 2 - Preguntas frecuentes". Johnmacfarlane.net. Archivado desde el 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 diferentes sitios (y personas) tienen diferentes necesidades. Ninguna sintaxis haría felices a todos" ( Tweet ) - vía Twitter .
- ^ Gruber, John (19 de mayo de 2022). "Marcodoc". Bola de fuego atrevida . Archivado desde el original el 19 de mayo de 2022 . Consultado 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 haber dejado esto claro públicamente, pero evité el uso de llaves en Markdown (aunque son caracteres muy tentadores) para reservarlas extraoficialmente para extensiones específicas de implementación. El uso extensivo de llaves por parte de Markdoc para su sintaxis es exactamente el tipo de cosas en las que estaba pensando.
- ^ "ITU de un documento CommonMark". 12 de abril de 2017. Archivado desde el original el 22 de noviembre de 2018 . Consultado el 29 de septiembre de 2017 .
- ^ "Especificación de CommonMark". Archivado desde el original el 7 de agosto de 2017 . Consultado el 26 de julio de 2017 .
- ^ "Página de la comunidad Markdown". GitHub. Archivado desde el original el 26 de octubre de 2020 . Consultado el 25 de abril de 2014 .
- ^ "El descuento estándar ahora es el descuento común". Jeff Atwood. 4 de septiembre de 2014. Archivado desde el original el 9 de octubre de 2014 . Consultado el 7 de octubre de 2014 .
- ^ "Standard Markdown se convierte en Common Markdown y luego en CommonMark". InfoQ . Archivado desde el original el 30 de septiembre de 2020 . Consultado el 7 de octubre de 2014 .
- ^ "Marca común". Archivado desde el 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 después de un año de comentarios del público... pero no es del todo definitiva. Con su ayuda, planeamos anunciar una especificación 1.0 finalizada y un conjunto de pruebas en 2019.
- ^ "Problemas que DEBEMOS resolver antes del lanzamiento 1.0 [quedan 6]". Discusión de CommonMark . 2015-07-26. Archivado desde el original el 14 de abril de 2021 . Consultado el 2 de octubre de 2020 .
- ^ "Variantes de rebajas". IANA . 2016-03-28. Archivado desde el original el 27 de octubre de 2020 . Consultado el 6 de julio de 2016 .
- ^ abc "Especificación de rebajas con sabor a GitHub". GitHub. Archivado desde el original el 3 de febrero de 2020 . Consultado el 11 de junio de 2020 .
- ^ "Introducción a las rebajas de Reddit. O, de todos modos, ¿cómo haces todo ese formato elegante en tus comentarios?". Reddit. Archivado desde el original el 11 de junio de 2019 . Consultado el 29 de marzo de 2013 .
- ^ "SourceForge: Guía de sintaxis de Markdown". FuenteForge . Archivado desde el original el 13 de junio de 2019 . Consultado el 10 de mayo de 2013 .
- ^ "Ayuda para la edición de Markdown". StackOverflow.com. Archivado desde el original el 28 de marzo de 2014 . Consultado el 11 de abril de 2014 .
- ^ "Documentación de sintaxis de Markdown". daringfireball.net . Archivado desde el original el 9 de septiembre de 2019 . Consultado el 1 de marzo de 2021 .
- ^ "Sintaxis básica: cursiva". La guía de rebajas . Cono mate. Archivado desde el original el 26 de marzo de 2022 . Consultado el 27 de marzo de 2022 .
Para poner texto en cursiva, agregue un asterisco o guión bajo antes y después de una palabra o frase. Para poner en cursiva la mitad de una palabra para darle énfasis, agregue un asterisco sin espacios alrededor de las letras.
- ^ Tom Preston-Werner . "Ejemplos de rebajas con sabor a GitHub". GitHub . Archivado desde el original el 13 de mayo de 2021 . Consultado el 2 de abril de 2021 .
- ^ "Una especificación formal para GitHub Flavored Markdown". Ingeniería de GitHub . 14 de marzo de 2017. Archivado desde el original el 3 de febrero de 2020 . Consultado el 16 de marzo de 2017 .
- ^ Fortín, Michel (2018). "Rebaja adicional de PHP". Sitio web de Michel Fortin . Archivado desde el original el 17 de enero de 2021 . Consultado el 26 de diciembre de 2018 .
- ^ "Rebaja adicional de PHP". Michel Fortín . Archivado desde el original el 17 de enero de 2021 . Consultado el 26 de diciembre de 2018 .
- ^ "Editor de rebajas para BUEditor". 4 de diciembre de 2008. Archivado desde el original el 17 de septiembre de 2020 . Consultado el 15 de enero de 2017 .
- ^ "Rebaja para TYPO3 (markdown_content)". extensiones.typo3.org . Archivado desde el original el 1 de febrero de 2021 . Consultado el 6 de febrero de 2019 .
- ^ Dietrich, André. "LiaScript". liascript.github.io . Archivado desde el original el 19 de enero de 2022 . Consultado el 17 de enero de 2022 .
- ^ "Página de la comunidad W3C sobre implementaciones de Markdown". Wiki de rebajas del W3C . Archivado desde el original el 17 de septiembre de 2020 . Consultado el 24 de marzo de 2016 .
- ^ "330707 - Agregar soporte opcional para MarkDown". bugzilla.mozilla.org . Archivado desde el original el 11 de octubre de 2022 . Consultado el 11 de octubre de 2022 .
- ^ "Texto Markdown 101 (formato de chat: negrita, cursiva, subrayado)". discordia.com . Archivado desde el original el 26 de junio de 2020.
- ^ "Manual de Doxygen: compatibilidad con rebajas". Archivado desde el original el 9 de agosto de 2019 . Consultado el 9 de agosto de 2019 .
- ^ "Escribiendo en GitHub". ayuda.github.com . GitHub, Inc. Archivado desde el original el 4 de junio de 2018 . Consultado el 9 de julio de 2014 .
- ^ @EvolutionGnome (23 de marzo de 2022). "¡Evolution 3.44 ya está disponible en #Flathub! Además de muchas mejoras y correcciones menores, trae un editor de rebajas para redactar mensajes. 👇" ( Tweet ) - vía Twitter .
- ^ "Guía de rebajas". joplinapp.org . Archivado desde el original el 23 de septiembre de 2022 . Consultado el 14 de julio de 2022 .
- ^ "Por qué necesita un editor WYSIWYG al escribir en Markdown y Fountain". Blog de JotterPad . 2020-11-17. Archivado desde el original el 27 de noviembre de 2020 . Consultado el 6 de diciembre de 2020 .
- ^ "Sintaxis de Markdown: documentación de Kanboard". docs.kanboard.org . Archivado desde el original el 11 de octubre de 2022 . Consultado el 11 de octubre de 2022 .
- ^ "Sintaxis de Markdown para archivos, widgets y wikis: Azure DevOps". 25 de marzo de 2024. Archivado desde el original el 18 de abril de 2024 . Consultado el 18 de abril de 2024 .
- ^ "Usar formato Markdown en Teams". Microsoft . Archivado desde el original el 13 de enero de 2022 . Consultado el 13 de enero de 2022 .
- ^ "Akkoma: redes sociales mágicamente expresivas". akkoma.social . Archivado desde el original el 5 de abril de 2023 . Consultado el 18 de abril de 2024 .
- ^ "MFM". Centro Misskey . Archivado desde el original el 24 de marzo de 2024 . Consultado el 18 de abril de 2024 .
- ^ "Aplicación Nextcloud Notes *". Aplicaciones de NextCloud . Archivado desde el original el 18 de febrero de 2022 . Consultado el 18 de febrero de 2022 .
- ^ "Obsidiana". obsidiana.md . Archivado desde el original el 12 de julio de 2022 . Consultado el 14 de julio de 2022 .
- ^ R Markdown: la guía definitiva. Archivado desde el original el 13 de abril de 2021 . Consultado el 23 de agosto de 2021 .
- ^ Allaire, JJ ; cada uno (30 de junio de 2015). "Markdown.cpp". Proyecto GitHub RStudio . Archivado desde el original el 26 de julio de 2017 . Consultado el 7 de julio de 2016 .
- ^ "Ayuda". Nota simple . 2015-07-30. Archivado desde el original el 14 de julio de 2022 . Consultado el 14 de julio de 2022 .
Enlaces externos
- Sitio web oficial para el marcado original de John Gruber