This page temporarily redirects to gemini://it.omarpolo.com/articoli/text-gemini-a-testo-semplice/.

Convertire text/gemini in testo semplice

Mi sono imbattuto su un post interessante su antenna poco fa che mi ha fatto tornare in mente l'idea di servire, eventualmente, una qualche variante delle mie capsule anche nel gopherspace.

=> Formatting Gemtext for Gopher | Antenna (un aggregatore)

Non ho ancora provato a servire nulla via gopher, ma avere un qualche sistema per formattare i post automaticamente non mi dispiace e, quindi, ispirato dall'articolo (grazie Ruario!) ho aperto sam (cosa dire? mi piace cambiare editor in questo periodo) e buttato un piccolo script in AWK.

NB: sto usando la versione di awk presente su OpenBSD che, se non ho capito male, dovrebbe essere più o meno il "One and True AWK". Non credo di aver fatto uso di funzionalità non standard però, quindi dovrebbe funzionare anche con altre implementazioni.

Ho usato il mio convertitore text/gemini => HTML come base. La novità questa volta è l'uso delle pipe in awk che sapevo esistessero ma non avevo mai avuto l'occasione di usarle.

=> text/gemini to html with AWK

L'idea delle pipe in awk è utile e strana allo stesso tempo. La sintassi è la seguente

expression | cmd
close(cmd)

La funzione close' va chiamata con la stessa stringa usata per avviare il processo, questo perchè AWK non aspetta la terminazione di cmd' altrimenti.

Ho avuto anche l'occasione di giocare un po' con par, una piccala utility per formattare il testo. Funziona in modo simile a fmt(1), solo con una valanga di opzioni in più e una pagina di manuale decisamente più complessa. Dopo un po' di tentativi ed errori, e con l'aiuto di sed, sono riuscito a domarlo e fargli produrre l'output desiderato.

=> par, una piccola utility per formattare il testo.

Senza ulteriori indugi, lo script nella sua interezza. Probabilmente bisogna aggiustare lo shebang e marcare il file come eseguibile:

=> gmi2txt

Inoltre, per fornire un esempio del suo operato, ecco una versione trasformata di questa pagina:

=> index.txt

$BlogIt: index.gmi,v 1.1 2022/01/04 16:32:32 op Exp $

Proxy Information
Original URL
gemini://it.omarpolo.com/articoli/text-gemini-a-testo-semplice
Status Code
Success (20)
Meta
text/gemini;lang=it
Capsule Response Time
1016.454881 milliseconds
Gemini-to-HTML Time
0.653478 milliseconds

This content has been proxied by September (ba2dc).