Skip to content

Instantly share code, notes, and snippets.

@victorhck
Created October 31, 2021 20:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save victorhck/77b4e4f95658e54d7fe082bf6b585c42 to your computer and use it in GitHub Desktop.
Save victorhck/77b4e4f95658e54d7fe082bf6b585c42 to your computer and use it in GitHub Desktop.
Introducción rápida del lenguaje de marcado para Gemini
# 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, como parece suceder en este texto, 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
```
Que dará como resultado lo siguiente:
# 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 cursus quam nisi sit amet orci
```
Que dará como resultado lo siguiente:
* 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 cursus 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.
```
Que dará como resultado lo siguiente:
> 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
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment