ref: a3e059a8a4ba10b79f6a281de82be427eea56030
parent: 4c28995d75dad5d22b00e09ca387b691957da85b
author: uriel <[email protected]>
date: Tue Jul 28 21:41:18 EDT 2009
Implement the sitemaps.org standard 'protocol' with sitemap.xml.
--- a/tpl/sitemap.tpl
+++ b/tpl/sitemap.tpl
@@ -2,6 +2,7 @@
%{
tmpfile=/tmp/werc_sitemap_$pid.txt
+tmpfilex=/tmp/werc_sitemapx_$pid.txt
saveddf=$dirfilter
fn listDir {
@@ -21,6 +22,7 @@
n=`{echo /$u|sed 's/[\-_]/ /g; s,.*/([^/]+)/?$,\1,'}
echo '<li><a href="'$u'">'^$"n^'</a>' $"desc '</li>'
echo $base_url^$u >> $tmpfile
+ echo '<url><loc>'$base_url^$u'</loc></url>' >> $tmpfilex
if(test -d $i)
@{ listDir $i }
}
@@ -28,9 +30,30 @@
}
}
+
fltr_cache listDir $sitedir/
-if(test -s $tmpfile)
+if(test -s $tmpfile) {
mv $tmpfile $sitedir/sitemap.txt &
+}
+if not if(test -f $tmpfile)
+ rm $tmpfile
+
+if(test -s $tmpfilex) {
+ {
+ echo '<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
+
+ cat $tmpfilex
+ rm $tmpfilex &
+ echo '</urlset>'
+ # TODO Enable automaic search engine update notification.
+ #hget 'http://google.com/ping?sitemap='^`{url_encode $base_url'/sitemap.gz'} > /dev/null
+
+ } | gzip > $sitedir/sitemap.gz &
+ #} > $sitedir/sitemap.xml &
+}
+if not if(test -f $tmpfilex)
+ rm $tmpfilex
%}