Stamattina mi sono divertito non solo per aver lavorato da manovale per conto di mio padre, ma anche per aver scritto delle funzioni che mi permettono di creare un feed Atom v1.0 nel quasi completo rispetto delle specifiche indicate in questa pagina.
Prima di inserire il codice da me usato per creare il feed, vorrei evidenziare che in ogni pagina ho inserito del <head≶, i seguenti tag per i feed sia atom e che rss: <link rel="alternate" type="application/atom+xml" title="Il mio feed Atom 1.0" href="http://nuvolesparse.altervista.org/atom.xml"> <link rel="alternate" type="application/rss+xml" title="Il mio feed RSS" href="http://nuvolesparse.altervista.org/rss.xml">
Ecco il codice per generare il feed Atom: atom(){ local title_atom="farBlog, il weblog di farthest" local subtitle="Questo &egrave; il weblog di \ Maurizio a.k.a. farthest in cui parlo di economia, musica, \ cose personali, e varie altre." local link_atom="http://nuvolesparse.altervista.org/" local id="http://nuvolesparse.altervista.org/" local link_feed_atom="atom.xml" local generator="Script post, fatto da me." local logo="http://nuvolesparse.altervista.org/pictures/logo.png" local name="Maurizio a.k.a. farthest" local link_author="http://nuvolesparse.altervista.org/chisono.html" local email="maurizio.farthest@gmail.com" # # echo | grep -v EOF > ../atom.xml <<EOF <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title type="html"><![CDATA[$title_atom]]></title> <subtitle type="html"><![CDATA[$subtitle]]></subtitle> <link rel="alternate" type="text/html" hreflang="it" class="link_esterno" rel="nofollow" href="$link_atom"/> <link rel="self" type="application/atom+xml" class="link_esterno" rel="nofollow" href="$link_feed_atom"/> <generator version="1.0">$generator</generator> <updated></updated> <logo>$logo</logo> <rights>$licenza</rights> <author> <name>$name</name> <uri>$link_author</uri> <email>$email</email> </author> <id>$id</id> </feed> EOF } ... entry(){ echo | grep -v EOF >> temp <<EOF <entry> <title type="html"><![CDATA[$titolo]]></title> <link rel="alternate" type="text/html" hreflang="it" class="link_esterno" rel="nofollow" href="$link_atom"/> <id>$link_atom</id> <updated>$data_atom</updated> <published>$data_atom</published> <summary type="html"><![CDATA[$summary]]></summary> </entry> EOF } ... num_pag_atom(){ num_linea_atom=`sed -n '/<\/id>/=' "$*"` num_linea_succ_atom=$(( num_linea_atom+1 )) tot_linee_atom=`wc -l "$*"|awk '{ print $1 }'` } ... # rss link_rss="$link_chan""$archivio_corrente"#"$data""$ora_pre" testo_rss="`echo "$testo" | sed "s/<[^>]*>//g"`" ### -e "s/\&/_/g"`" descr="${testo_rss:0:250}" data_rss="`date -R`" # lung_testo=${#testo_rss} [ "$lung_testo" -gt 250 ] && descr="$descr"[...] # ... # atom link_atom="$link_chan""$archivio_corrente"#"$data""$ora_pre" id_post="$archivio_corrente"#"$data""$ora_pre" summary="$descr" GMT="`date -R | awk '{ print $6 }'| \ sed "s/[[:digit:]][[:digit:]]/&:/"`" data_atom="`date +%F`"T"`date -R | awk '{ print $5 }'`"$GMT"" # num_pag_atom ../atom.xml sed -n 1,"$num_linea_atom"p "../atom.xml" | sed \ "s/<updated>.*<\/updated>/<updated>""$data_atom""<\/updated>/" \ > temp entry sed -n "$num_linea_succ_atom","$tot_linee_atom"p "../atom.xml" >> temp cp -f ../atom.xml backup-page/ mv temp ../atom.xml