sitemap.tpl - swerc - anselm's simpler werc fork
(HTM) git clone git://git.suckless.org/swerc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
sitemap.tpl (1751B)
---
1 <h1>Site map</h1>
2
3 %{
4 tmpfile=/tmp/werc_sitemap_$pid.txt
5 tmpfilex=/tmp/werc_sitemapx_$pid.txt
6 saveddf=$dirfilter
7
8 MON2NUM='s/Jan/01/; s/Feb/02/; s/Mar/03/; s/Apr/04/; s/May/05/; s/Jun/06/; s/Jul/07/; s/Aug/08/; s/Sep/09/; s/Oct/10/; s/Nov/11/; s/Dec/12/;'
9
10 fn get_mdate {
11 t=`{mtime $1}
12 t=`{date $t(1) | sed -e $MON2NUM -e 's/ ([0-9]) / 0\1 /g'} # Make sure day of the month is two digits.
13 echo $t(6)^'-'^$t(2)^'-'^$t(3)
14 }
15
16 fn listDir {
17 d=$1
18 dirfilter=$saveddf
19 if(test -f $d/_werc/config)
20 . $d/_werc/config
21
22 if(~ $#perm_redir_to 0) {
23 echo '<ul class="sitemap-list">'
24
25 for(i in `{ls -dF $d^*/ $d^*.md $d^*.html $d^*.txt >[2]/dev/null | sed $dirfilter}) {
26 desc=`{get_file_title $i}
27 u=`{echo $i|sed 's!'$sitedir'!!; '$dirclean's!/index$!/!; '}
28 if(! ~ $#desc 0 && ! ~ $desc '')
29 desc=' - '$"desc
30 n=`{echo /$u|sed 's/[\-_]/ /g; s,.*/([^/]+)/?$,\1,'}
31 echo '<li><a href="'$u'">'^$"n^'</a>' $"desc '</li>'
32 echo $base_url^$u >> $tmpfile
33 echo '<url><loc>'$base_url^$u'</loc><lastmod>'^`{get_mdate $i}^'</lastmod></url>' >> $tmpfilex
34 if(test -d $i)
35 @{ listDir $i }
36 }
37 echo '</ul>'
38 }
39 }
40
41
42 fltr_cache listDir $sitedir/
43
44 if(test -s $tmpfile) {
45 mv $tmpfile $sitedir/sitemap.txt &
46 }
47 if not if(test -f $tmpfile)
48 rm $tmpfile
49
50 if(test -s $tmpfilex) {
51 {
52 echo '<?xml version="1.0" encoding="UTF-8"?>
53 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
54
55 cat $tmpfilex
56 rm $tmpfilex &
57 echo '</urlset>'
58 } | gzip > $sitedir/sitemap.gz &
59 #} > $sitedir/sitemap.xml &
60 }
61 if not if(test -f $tmpfilex)
62 rm $tmpfilex
63
64 %}