# genera atom feed desde índice gemini # # modo de uso: # awk -f gemfeed.awk -v url=gemini://blabla/ index.gmi > atom.xml # # index.gmi: índice gemini de acuerdo a la especificación # atom.xml: atom feed correspondiente BEGIN{ # número de entry n = 0 } # primera línea, extrae el título de la feed NR == 1 { # borra el "# " del inicio sub("#[[:blank:]]+","",$0) titulofeed = $0 } # links con fecha # regex sencilla: "líneas cuyo tercer campo sea una fecha YYYY-MM-DD" # $3 ~ /[0-9]{4}-[0-9]{2}-[0-9]{2}/{ # regex completa de acuerdo a la spec (?) : $0 ~ /^=>[[:blank:]]*[[:graph:]]+gmi[[:blank:]]+[0-9]{4}-[0-9]{2}-[0-9]{2}.+$/{ # borra flecha del inicio sub("^=>","",$0) # el primer campo es el nombre del archivo/link archivo[n] = $1 # el segundo campo es la fecha YYYY-MM-DD fecha[n] = $2 # del tercer campo en adelante son el título de la entrada. # concatena los elementos que corresponden al título titulo = $3 for(i=4; i<=NF; i++){ titulo = titulo" "$i } title[n] = titulo # aumenta el índice de la "entry" n++ } END{ # genera la atom feed print "" print "" print "" print ""url"" print ""titulofeed"" print ""strftime("%Y-%m-%dT12:00:00Z")"" print "" print "" print "" # por cada entrada for(i=0; i" print ""entryurl"" print ""title[i]"" print ""fecha[i]"T12:00:00Z" print "" print "" print "" } print "" }