shithub: werc

Download patch

ref: a3e059a8a4ba10b79f6a281de82be427eea56030
parent: 4c28995d75dad5d22b00e09ca387b691957da85b
author: uriel <uriel@vm41.cat-v.org>
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
 
 %}