Introducción rápida del lenguaje de marcado para el protocolo Gemini

La forma más común de ofrecer contenido de texto en Gemini es utilizando un lenguaje de marcado ligero llamado «Gemtext», muy similar a MarkDown pero con diferencias

Navegador Lagrange mostrando la guía en Gemini

En una entrada anterior del blog, escribí sobre el protocolo Gemini. Un protocolo para servir archivos por la red como puede ser el hipetexto en https, pero con un ojo puesto en los orígenes de la red.

Primando el texto escrito sin más distracciones, sin rastreadores, sin peticiones de sitios de terceros. Una manera de difundir y centrarse en el mensaje sin más añadidos.

En el artículo daba a conocer el navegador Lagrange para navegar por estos servidores especiales. Puedes ver el artículo en este enlace:

El amigo David Ochobits, tiene un gran artículo de recomendable lectura en su web donde detalla más sobre el protocolo Gemini:

En este artículo veremos de qué manera podemos crear documentos .gmi para que se vean renderizados en navegadores para este protocolo en nuestra cápsula.

Yo he utilizado el editor Vim para crear el texto, con un resaltado específico para este tipo de archivos .gmi

Pero los podéis crear con el editor con el que estéis más cómodos.

Este artículo es una traducción de la documentación en inglés que puedes encontrar en estos enlace:

Introducción rápida del lenguaje de marcado para Gemini

La forma más común de ofrecer contenido de texto en Gemini no es mediante texto plano, sino utilizando un lenguaje de marcado ligero llamado «Gemtext». Este documento es una introducción rápida a ese lenguaje de marcado.

Tiene algunas semejanzas superficiales con Markdown, lo que hará que sea fácil de aprender si conoce MD, pero es bastante diferente en otros aspectos.

Además, el primer párrafo después de un encabezado principal es mostrado con un formato de letra resaltado de los párrafos siguientes.

Vamos a ver los distintos formatos que cubre el marcado Gemtext.

Texto

El texto en los documentos de Gemtext se escribe usando «líneas largas», y es el propio cliente receptor de Gemini quién lo formatea para ajustarlo a la pantalla. De esta manera, el contenido de Gemtext se ve bien y es fácil de leer en monitores de escritorio, pantallas de portátiles, tabletas y teléfonos inteligentes.

Hay que tener en cuenta que si bien los clientes de Gemini dividirán líneas de texto que sean más largas que la pantalla del usuario, no unirán líneas que sean más cortas que la pantalla del usuario, como sucedería en Markdown, HTML o LaTeX.

Esto significa que, p. Ej. Las listas de «puntos» o poemas con líneas deliberadamente cortas se mostrarán correctamente sin que el autor tenga que hacer ningún trabajo adicional o el cliente tenga que ser más inteligente para reconocer y manejar ese tipo de contenido correctamente.

Para la mayoría de los escritos «cotidianos», este enfoque significa que probablemente solo desee utilizar una línea por párrafo.También hay que tener en cuenta que los clientes interpretan literalmente las líneas en blanco, es decir, si colocas dos o tres líneas en blanco entre los párrafos, el lector verá dos o tres líneas en blanco.

Enlaces

Al igual que Gopher (y a diferencia de Markdown o HTML), Gemtext solo le permite colocar enlaces a otros documentos en una línea propia. No puede convertir una sola palabra en medio de una oración en un enlace.

Esto requiere un poco de tiempo para acostumbrarse, pero significa que los enlaces son extremadamente fáciles de encontrar y los clientes pueden diseñarlos de manera diferente (por ejemplo, para dejar en claro qué protocolo usan o mostrar el nombre de dominio para ayudar a los usuarios a decidir si quieren seguirlos o no) sin interferir con la legibilidad de su contenido textual real.

Los enlaces tienen este aspecto:

=> https://victorhckinthefreeworld.com Mi blog
=> gemini://sitio.bitsandlinux.com/ Enlace a la cápusla Gemini de David Ochobits

Es decir:

  • Empiezan con los dos caracteres =>
  • seguido de espacios en blanco opcionales (espacios o tabulaciones, tantos o tan pocos como desee)
  • seguido de una URL (cualquier protocolo que desee).
  • Pueden terminar allí mismo si lo deseas.O pueden ir seguidos de al menos un espacio o tabulación,
  • Y luego una etiqueta amigable para los humanos, que puede ser tan larga como quieras

Encabezados

Gemtext admite tres niveles de títulos. Los títulos están limitados a una sola línea y comienzan con uno, dos o tres símbolos # seguidos de un carácter de espacio obligatorio:

# Encabezado nivel 1
## Encabezado nivel 2
### Encabezado nivel 3

Esta es la única sintaxis de encabezado admitida. Subrayar sus títulos con símbolos – o = como en Markdown no hará nada.

Es estrictamente opcional que los clientes hagan algo especial con los títulos. Muchos clientes los reconocerán y usarán una fuente más grande o un color diferente o algún otro tipo de estilo, pero algunos no lo harán y simplemente los tratarán como líneas de texto ordinarias y las imprimirán como están.

Esto está bien, porque se supone que los encabezados no deben usarse para controlar la apariencia de su contenido.

Más bien, proporcionan información semántica importante sobre la estructura de su contenido. Algunos clientes usarán encabezados para generar automáticamente una tabla de contenido para su usuario, lo que puede ser útil para navegar por documentos grandes.

El software para generar feeds Atom o RSS puede usar encabezados para detectar automáticamente los títulos de las publicaciones de gemlog.

Listas

Gemtext admite listas sin numeración. Cada elemento de una lista se escribe como una sola línea larga, que comienza con un solo símbolo * seguido de un carácter de espacio obligatorio:

* Elemento 1
* Elemento 2
* Elemento 3
* Elemento más largo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam iaculis, massa ut varius dignissim, neque lorem accumsan tellus, sit amet cursu
s quam nisi sit amet orci  

Ésta es la única sintaxis de lista admitida. Usar – en lugar de * como en Markdown no hará nada. No se admiten listas anidadas.

Es estrictamente opcional que los clientes hagan algo especial con los elementos de la lista, y algunos los tratarán como cualquier otra línea de texto.

La única razón por la que están definidos es para que los clientes más avanzados puedan reemplazar el * con un símbolo de viñeta más atractivo y, por lo tanto, cuando los elementos de la lista que son demasiado largos para caber en la pantalla del dispositivo se dividen en varias líneas, las líneas después de la primera pueden estar desplazado del margen por la misma cantidad de espacio que el símbolo de viñeta. Es solo una sutileza tipográfica.

Bloques de citas

Gemtext admite blockquotes. El contenido citado está escrito como una sola línea larga, que comienza con un solo carácter > :

> Esta es una línea de cita.

Es estrictamente opcional que los clientes hagan cualquier cosa especial con blockquotes, y algunos los tratarán como cualquier otra línea de texto.

Al igual que con los elementos de la lista, se definen estrictamente para permitir una tipografía más agradable en clientes ambiciosos.

Texto preformateado

Gemtext está cuidadosamente diseñado para ser muy, muy fácil de analizar y renderizar. Los clientes de Gemini procesan Gemtext una línea a la vez, renderizando cada línea independientemente de las líneas anteriores o posteriores, simplemente mirando los primeros caracteres de una línea para buscar algo como =>, #, *, etc.

Una línea que comienza con «` (es decir, con tres comillas invertidas) le dice al cliente que cambie entre su modo de análisis ordinario y el «modo preformateado».

En el modo preformateado, los clientes no comprueban si una línea es un enlace, un encabezado o cualquier otra cosa. Simplemente se imprimen tal cual. Además, mientras que los clientes pueden usar fuentes de ancho variable para el resto del texto normal, en el modo preformateado los clientes deben usar una fuente de ancho fijo.

Por lo tanto, un par de líneas «` actúa de manera muy similar a las etiquetas <pre> y </pre> en HTML.

El texto preformateado se puede usar para incluir arte ASCII, código fuente o contenido similar en un documento de Gemtext sin que los clientes interpreten erróneamente las líneas como encabezados, elementos de lista, etc.

También se puede usar para escribir documentos como este, que explican la sintaxis de Gemtext con ejemplos: puede ver los ejemplos de sintaxis anteriores sin que su cliente los interprete como lo haría normalmente porque se representan en modo preformateado.

Todo el texto que se escriba después de los caracteres «` de una línea que puede tratarse como «texto alternativo» para el contenido preformateado.

En general, no debe contar con que este contenido sea visible para el usuario, pero, por ejemplo, los motores de búsqueda pueden indexarlo y los lectores de pantalla pueden leerlo a los usuarios para ayudar al usuario a decidir si el contenido preformateado debe leerse en voz alta (por ejemplo, ASCII art generalmente no debería serlo, pero el código fuente quizás debería ser leído).

Actualmente no existen convenciones establecidas sobre cómo se debe formatear el texto alternativo.

``` texto alt
Línea preformateada con texto alternativo
```

Y esta es la manera de empezar a crear contenido en una cápsula (o servidor) Gemini. Como véis es un formato muy sencillo de aprender.

Para poder ver este texto y archivo en un navegador para Gemini (por ejemplo Lagrange) podéis descargaros el archivo con este texto formateado para Gemini y abrirlo con el navegador de Gemini.

Así que en una consola ejecutamos lo siguiente:

  • Descargamos el texto formateado mediante: wget https://gist.githubusercontent.com/victorhck/77b4e4f95658e54d7fe082bf6b585c42/raw/31c855a776bc7663dc78da1b5c7d18e86651f75b/marcado_gemini.gmi -O marcado-gemini.gmi
  • Abrimos el archivo con el navegador mediante: lagrange marcado-gemini.gmi

Y con esto deberíamos ver el texto renderizado como en la captura que abre el artículo. Si en vez de Lagrange utilizas otro navegador Gemini sustituye en el último comando lagrange por el navegador que uses.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.