stringtranslate.com

Lenguaje de marcado ligero

Un lenguaje de marcado ligero ( LML ), también denominado lenguaje de marcado simple o humano , es un lenguaje de marcado con una sintaxis simple y discreta. Está diseñado para que sea fácil de escribir con cualquier editor de texto genérico y fácil de leer en su forma original. Los lenguajes de marcado ligero se utilizan en aplicaciones en las que puede ser necesario leer el documento original y el resultado final.

Por ejemplo, una persona que descarga una biblioteca de software puede preferir leer la documentación en un editor de texto en lugar de en un navegador web. Otra aplicación de estos lenguajes es facilitar la entrada de datos en publicaciones basadas en la web, como blogs y wikis , donde la interfaz de entrada es un simple cuadro de texto . A continuación, el software del servidor convierte la entrada en un lenguaje de marcado de documentos común, como HTML .

Historia

Los lenguajes de marcado ligeros se utilizaban originalmente en pantallas de solo texto que no podían mostrar caracteres en cursiva o negrita , por lo que se tuvieron que desarrollar métodos informales para transmitir esta información. Esta opción de formato se trasladó naturalmente a las comunicaciones por correo electrónico en texto sin formato. Los navegadores de consola también pueden recurrir a convenciones de visualización similares.

En 1986, el estándar internacional SGML proporcionó herramientas para definir y analizar lenguajes de marcado ligeros utilizando gramáticas e implicación de etiquetas. El XML del W3C de 1998 es un perfil de SGML que omite estas herramientas. Sin embargo, no se conoce ninguna definición de tipo de documento (DTD) SGML para ninguno de los lenguajes que se enumeran a continuación.

Tipos

Los lenguajes de marcado ligeros se pueden clasificar por sus tipos de etiquetas. Al igual que HTML ( ), algunos lenguajes utilizan elementos con nombre que comparten un formato común para las etiquetas de inicio y fin (por ejemplo, BBCode ), mientras que los lenguajes de marcado ligeros adecuados se limitan a los signos de puntuación de solo ASCII y otros símbolos que no sean letras para las etiquetas, pero algunos también mezclan ambos estilos (por ejemplo, Textile ) o permiten HTML incrustado (por ejemplo, Markdown ), posiblemente ampliado con elementos personalizados (por ejemplo, MediaWiki ).<b>bold</b> [b]bold[/b] bq. <ref>'''source'''</ref>

La mayoría de los lenguajes distinguen entre marcado para líneas o bloques y para fragmentos de texto más cortos, pero algunos solo admiten marcado en línea.

Algunos lenguajes de marcado están diseñados para un propósito específico, como documentar código informático (por ejemplo, POD , reST , RD ) o convertirse a un determinado formato de salida (normalmente HTML o LaTeX ) y nada más; otros tienen una aplicación más general. Esto incluye si están orientados a la presentación textual o a la serialización de datos. [ Aclaración necesaria ]

Los lenguajes orientados a la presentación incluyen AsciiDoc , atx , BBCode , Creole , Crossmark, Djot, Epytext , Haml , JsonML , MakeDoc , Markdown , Org-mode , POD (Perl) , reST (Python) , RD (Ruby) , Setext , SiSU , SPIP , Xupl, Texy!, Textile, txt2tags , UDO y Wikitext .

Los lenguajes orientados a la serialización de datos incluyen Curl ( homoicónico , pero también lee JSON; cada objeto se serializa), JSON y YAML .

Comparación de las características del lenguaje

La sintaxis propia de Markdown no admite atributos de clase ni atributos de identificación; sin embargo, dado que Markdown admite la inclusión de código HTML nativo, estas funciones se pueden implementar utilizando HTML directo. (Algunas extensiones pueden admitir estas funciones).

La sintaxis propia de txt2tags no admite atributos de clase o atributos de identificación; sin embargo, dado que txt2tags admite la inclusión de código HTML nativo en áreas etiquetadas, estas características se pueden implementar utilizando HTML directo al guardar en un destino HTML. [25]

Comparación de características de implementación

Comparación de la sintaxis de lenguajes de marcado ligeros

Sintaxis de span en línea

Aunque normalmente se documenta que produce texto en cursiva y negrita, la mayoría de los procesadores de marcado ligeros generan elementos HTML semánticos emy, strongen su lugar, el texto monoespaciado puede generar elementos semánticos codeo de presentación tt. Pocos lenguajes hacen una distinción, por ejemplo, Textile, o permiten al usuario configurar la salida fácilmente, por ejemplo, Texy.

Los LML a veces difieren para el marcado de varias palabras, ya que algunos requieren que los caracteres de marcado reemplacen los espacios entre palabras ( infijo ). Algunos idiomas requieren un solo carácter como prefijo y sufijo, otros necesitan caracteres duplicados o incluso triples o admiten ambos con un significado ligeramente diferente, por ejemplo, diferentes niveles de énfasis.

Gemtext no tiene ningún formato en línea, el texto monoespaciado (llamado texto preformateado en el contexto de Gemtext) debe tener la apertura y el cierre ```en sus propias líneas.

Sintaxis de énfasis

En HTML, el texto se enfatiza con los tipos de elementos <em>y <strong>, mientras que <i>y <b>tradicionalmente marcan el texto para que esté en cursiva o negrita, respectivamente.

Microsoft Word y Outlook, y por consiguiente otros procesadores de texto y clientes de correo que buscan una experiencia de usuario similar, admiten la convención básica de utilizar asteriscos para negrita y guiones bajos para cursiva. Mientras que Word elimina los caracteres, Outlook los conserva.

Sintaxis editorial

En HTML, el texto eliminado o borrado e insertado se marca con los tipos de elementos <del>y <ins>, respectivamente. Sin embargo, los tipos de elementos heredados <s>o <strike>y <u>también siguen estando disponibles para fragmentos de texto tachados y subrayados.

AsciiDoc, ATX, Creole, MediaWiki, PmWiki, reST, Slack, Textile, Texy! y WhatsApp no ​​admiten marcado específico para subrayar texto. Sin embargo, Textile admite la inserción a través de la +inserted+sintaxis.

AsciiDoc, ATX, Creole, MediaWiki, PmWiki, reST, Setext y Texy! no admiten marcado dedicado para tachar texto.

Sintaxis de programación

El código informático citado se presenta tradicionalmente en fuentes similares a las de las máquinas de escribir, donde cada carácter ocupa el mismo ancho fijo. HTML ofrece los tipos de elementos semánticos <code>y de presentación obsoletos <tt>para esta tarea.

Mediawiki y Gemtext no proporcionan marcado ligero para tramos de código en línea.

Sintaxis de encabezado

Los encabezados suelen estar disponibles en hasta seis niveles, pero el superior suele reservarse para contener lo mismo que el título del documento, que puede establecerse externamente. Algunos documentos pueden asociar niveles con tipos de división, por ejemplo, parte, capítulo, sección, artículo o párrafo.

La mayoría de los LML siguen uno de dos estilos para los encabezados, ya sea subrayados tipo Setext o marcadores de línea tipo atx [47] , o admiten ambos.

Encabezados subrayados

Título de nivel 1===============Título de nivel 2---------------Título de nivel 3~~~~~~~~~~~~~~~

El primer estilo utiliza subrayados, es decir, caracteres repetidos (por ejemplo, igual =, guion -o tilde ~, normalmente al menos dos o cuatro veces) en la línea debajo del texto del encabezado.

RST determina los niveles de encabezado de forma dinámica, lo que hace que la creación sea más individual por un lado, pero complica las fusiones desde fuentes externas por el otro.

Encabezados con prefijo

# Título de nivel 1## Título de nivel 2 ##### Título de nivel 3 ###

El segundo estilo se basa en marcadores repetidos (por ejemplo, almohadilla #, igual =o asterisco *) al comienzo del encabezado, donde el número de repeticiones indica el nivel del encabezado (a veces inverso). La mayoría de los idiomas también admiten la reduplicación de los marcadores al final de la línea, pero mientras que algunos los hacen obligatorios, otros ni siquiera esperan que sus números coincidan.

Org-mode admite la sangría como un medio para indicar el nivel.

BBCode no admite encabezados de sección en absoluto.

POD y Textile eligen la convención HTML de niveles de encabezado numerados.

Microsoft Word admite el formato automático de párrafos como encabezados si no contienen más de unas pocas palabras, no tienen punto al final y el usuario presiona la tecla Intro dos veces. Para los niveles inferiores, el usuario puede presionar la tecla de tabulación la cantidad de veces que corresponda antes de ingresar el texto, es decir, de una a ocho tabulaciones para los niveles de encabezado del dos al nueve.

Sintaxis de enlace

Los hipervínculos se pueden agregar en línea, lo que puede saturar el código debido a las URL largas, o con referencias aliasnumeradas o con nombre ida líneas que no contienen nada más que la dirección y los atributos relacionados y, a menudo, pueden estar ubicados en cualquier parte del documento. La mayoría de los lenguajes permiten al autor especificar el texto Textque se mostrará en lugar de la dirección simple http://example.comy algunos también proporcionan métodos para establecer un título de vínculo diferente Titleque puede contener más información sobre el destino.

Los LML que están diseñados para configuraciones especiales, por ejemplo, wikis o documentación de código, pueden generar automáticamente anclas con nombre (para encabezados, funciones, etc.) dentro del documento, vincular a páginas relacionadas (posiblemente en un espacio de nombres diferente) o proporcionar una búsqueda textual para palabras clave vinculadas.

La mayoría de los idiomas utilizan corchetes (dobles) o angulares para encerrar los enlaces, pero casi no hay dos idiomas que sean totalmente compatibles. Muchos pueden reconocer y analizar automáticamente las URL absolutas dentro del texto sin necesidad de más marcado.

Los enlaces Gemtext y Setext deben estar en una línea aparte, no se pueden usar en línea.

La sintaxis de enlace normal de Org-mode realiza una búsqueda de texto del archivo. También puedes incluir destinos dedicados con <<id>>.

Sintaxis de lista

HTML requiere un elemento explícito para la lista, que especifique su tipo, y uno para cada elemento de la lista, pero la mayoría de los lenguajes de marcado ligeros solo necesitan prefijos de línea diferentes para las viñetas o los elementos enumerados. Algunos lenguajes dependen de la sangría para las listas anidadas, mientras que otros utilizan marcadores de lista padre repetidos.

Microsoft Word convierte automáticamente los párrafos que comienzan con un asterisco *, un guión-menos -o un corchete de mayor que >seguido de un espacio o una tabulación horizontal como elementos de lista con viñetas. También iniciará una lista enumerada para el dígito 1 y las letras a (para listas alfabéticas) o i (para números romanos) que no distinguen entre mayúsculas y minúsculas, si están seguidas de un punto ., un paréntesis de cierre ), un signo de mayor que >o un guión-menos -y un espacio o tabulación; en el caso del paréntesis redondo, (también se admite un paréntesis de apertura opcional antes del marcador de lista.

Los idiomas difieren en cuanto a si admiten dígitos opcionales u obligatorios en elementos de listas numeradas, qué tipos de enumeradores entienden (por ejemplo, dígito decimal 1 , números romanos i o I , letras alfabéticas a o A ) y si admiten mantener valores explícitos en el formato de salida. Algunos dialectos de Markdown, por ejemplo, respetarán un valor inicial distinto de 1, pero ignorarán cualquier otro valor explícito.

Slack ayuda al usuario a ingresar listas enumeradas y con viñetas, pero en realidad no las formatea como tales, es decir, solo incluye un dígito inicial seguido de un punto y un espacio o un carácter de viñeta delante de una línea.

Formatos históricos

Los siguientes lenguajes de marcado ligero, si bien son similares a algunos de los ya mencionados, aún no se han agregado a las tablas de comparación de este artículo:

Véase también

Referencias

  1. ^ "Registro de cambios de AsciiDoc" . Consultado el 24 de febrero de 2017 .
  2. ^ "Versiones WikiCreole" . Consultado el 24 de febrero de 2017 .
  3. ^ ab "djot" . Consultado el 26 de agosto de 2023 .
  4. ^ "djot 0.1.0". GitHub . Consultado el 26 de agosto de 2023 .
  5. ^ de Jira. "Ayuda para la notación de formato de texto". Atlassian . Consultado el 22 de diciembre de 2020 .
  6. ^ "Markdown". Aaron Swartz: El blog . 19 de marzo de 2004.
  7. ^ "Daring Fireball: Markdown". Archivado desde el original el 2 de abril de 2004. Consultado el 25 de abril de 2014 .
  8. ^ "PHP Markdown Extra". Michel Fortin . Consultado el 8 de octubre de 2013 .
  9. ^ "PHP Markdown: Historia". Michel Fortin . Consultado el 23 de diciembre de 2020 .
  10. ^ "Historia de MediaWiki" . Consultado el 24 de febrero de 2017 .
  11. ^ abc Pandoc, que está escrito en Haskell , analiza Markdown (en dos formas) y ReStructuredText , así como HTML y LaTeX; escribe desde cualquiera de estos formatos a HTML , RTF , LaTeX , ConTeXt , OpenDocument , EPUB y varios otros formatos, incluido (a través de LaTeX) PDF.
  12. ^ "Modo Org para Emacs: tu vida en texto sin formato". orgmode.org . Equipo OrgMode . Consultado el 9 de diciembre de 2016 .
  13. ^ "PmWiki Cookbook - Export addons" (Libro de recetas de PmWiki: complementos de exportación) . Consultado el 7 de enero de 2018 .
  14. ^ "Introducción a reStructuredText" . Consultado el 24 de febrero de 2017 .
  15. ^ "TidBITS en nuevo formato". TidBITS . 1992-01-06 . Consultado el 2022-07-01 .
  16. ^ "Centro de ayuda de Slack > Cómo usar Slack > Enviar mensajes > Dar formato a los mensajes" . Consultado el 7 de agosto de 2018 .
  17. ^ "Documentación de la API de Slack: formato básico de mensajes" . Consultado el 7 de agosto de 2018 .
  18. ^ "Historia de TiddlyWiki". tiddlywiki.com .
  19. ^ "Textism › Tools › Textiles". textism.com . Archivado desde el original el 26 de diciembre de 2002.
  20. ^ "¿Qué es Texy?" . Consultado el 24 de febrero de 2017 .
  21. ^ "Módulo txt2tags de HTML2wiki". cpan.org . Consultado el 30 de enero de 2014 .
  22. ^ "Guía del usuario de Txt2tags". Txt2tags.org . Consultado el 24 de febrero de 2017 .
  23. ^ "Registro de cambios de txt2tags" . Consultado el 24 de febrero de 2017 .
  24. ^ "Preguntas frecuentes de WhatsApp: Cómo formatear los mensajes" . Consultado el 21 de noviembre de 2017 .
  25. ^ "Guía del usuario de Txt2tags". Txt2tags.org . Consultado el 24 de febrero de 2017 .
  26. ^ "Conversores". WikiCreole . Consultado el 8 de octubre de 2013 .
  27. ^ pegdown: una biblioteca Java para el procesamiento de Markdown
  28. ^ ab gfms: servidor Markdown con estilo Github
  29. ^ ab marked: Un analizador y compilador de Markdown con todas las funciones, escrito en JavaScript. Diseñado para la velocidad.
  30. ^ ab node-gfm: convertidor de Markdown a HTML con estilo de GitHub
  31. ^ Parsedown: analizador de Markdown escrito en PHP
  32. ^ ab Ciconia: analizador de Markdown escrito en PHP
  33. ^ ab Grip: GitHub Readme Vista previa instantánea
  34. ^ github-markdown: Analizador de Markdown autónomo para GitHub
  35. ^ peg -markdown es una implementación de markdown en C.
  36. ^ El descuento también es una implementación de Markdown en C.
  37. ^ "Python-Markdown". Github.com . Consultado el 8 de octubre de 2013 .
  38. ^ Bruce Williams <http://codefluency.com>, para Ruby Central <http://rubycentral.org>. "kramdown: Información del proyecto". RubyForge. Archivado desde el original el 2013-08-07 . Consultado el 2013-10-08 .
  39. ^ ab "A través de ox-pandoc y el propio pandoc". GitHub .
  40. ^ Atlassian. "Editor de Confluence 4.0: qué ha cambiado para los usuarios de Wiki Markup (Confluence Wiki Markup ha dejado de existir)" . Consultado el 28 de marzo de 2018 .
  41. ^ Docutils es una implementación de ReStructuredText en Python
  42. ^ Sphinx es una implementación de ReStructuredText en Python y Docutils con varios generadores de formatos de salida
  43. ^ Aurelio Jargas www.aurelio.net (11 de enero de 2012). "txt2tags". txt2tags . Consultado el 8 de octubre de 2013 .
  44. ^ "txt2tags.class.php - conversor en línea [sic]". Txt2tags.org . Consultado el 8 de octubre de 2013 .
  45. ^ "Sintaxis de Markdown". Daringfireball.net . Consultado el 8 de octubre de 2013 .
  46. ^ ab Sintaxis textil Archivado el 12 de agosto de 2010 en Wayback Machine.
  47. ^ "atx, el verdadero formato de texto estructurado" de Aaron Swartz (2002)
  48. ^ "El Manual de la Organización: sección "Una vista de esquema más clara"" . Consultado el 14 de junio de 2020 .
  49. ^ "usando org-adapt-indentation".
  50. ^ "usando org-indent-mode o org-indent".
  51. ^ Nota al pie en el manual oficial: "Cuando se utiliza "*" como viñeta, las líneas deben sangrarse para que no se interpreten como títulos. Además, cuando se ocultan las estrellas iniciales para obtener una vista de esquema clara, los elementos de lista simples que comienzan con una estrella pueden ser difíciles de distinguir de los títulos verdaderos. En resumen: aunque se admite "*", puede ser mejor no usarlo para elementos de lista simples".
  52. ^ "EtText: Documentación: Uso de EtText". ettext.taint.org . Consultado el 30 de junio de 2022 .originalmente del proyecto WebMake[1].
  53. ^ "Un naufragio personal: El marcado Grutatxt". triptico.com . Consultado el 30 de junio de 2022 .Formato de dominio público (desde la versión 2.20); utilizado originalmente en el sistema Gruta CMS .

Enlaces externos