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 gemini://ruario.flounder.online/gemlog/2022-01-04_Formatting_Gemtext_for_Gopher.gmi ~ Antenna (un aggregatore) gemini://warmedal.se/~antenna/ 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 gemini://gemini.omarpolo.com/post/text-gemini-to-html-with-awk.gmi 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. http://www.nicemice.net/par/ Senza ulteriori indugi, lo script nella sua interezza. Probabilmente bisogna aggiustare lo shebang e marcare il file come eseguibile: ~ gmi2txt gmi2txt Inoltre, per fornire un esempio del suo operato, ecco una versione trasformata di questa pagina: ~ index.txt index.txt $BlogIt: index.txt,v 1.2 2022/01/13 10:46:56 op Exp $