ref: 831f5ae93c3ddaf23aa33275e7a188229c458c89
parent: 18f3f886cf6bd3301360edc8f1e007dcc6063522
author: uriel <uriel@engel.se.cat-v.org>
date: Sun Jun 17 21:45:45 EDT 2007
Add feature to handle shared templates in pub/ and use it for a new sitemap template
--- a/bin/controller.rc
+++ b/bin/controller.rc
@@ -93,6 +93,8 @@
cat $body | /bin/sed -i '0,/<body[^>]*>/d;/<\/body>/,$d'
if not if ( ~ $body */[bB]log/index */[bB]log//index && ~ $#blogDirs 0 )
blogDirs = `{basename -d $body}
+ if not if ( test -f pub/^$reqpath^.tpl )
+ template.awk pub/^$reqpath^.tpl | rc $rcargs
if not if(~ $body */index && ~ $#blogDirs 0) {
echo '<h1>' `{basename `{basename -d $body}}'</h1>'
echo '<ul>'
@@ -146,6 +148,7 @@
if (! ~ $#sidebar 0)
sidebar=tpl/_inc/$sidebar.tpl
+reqpath=$body
body=$sitedir/$body
rssuri=$uri
if (test -d $body) {
--- /dev/null
+++ b/pub/sitemap.tpl
@@ -1,0 +1,48 @@
+<h1>Site map</h1>
+
+%{
+
+saveddf = $dirfilter
+cpath = ''
+rpath = `{pwd}
+rpath = $rpath^'/'^$sitedir
+
+fn listDir {
+ cd $1
+ dirfilter = $saveddf
+ if (test -f _config)
+ . _config
+
+ echo '<ul>'
+ for ( i in `{ls -d */ *.md *.html >[2] /dev/null |sed $dirfilter^'/index$/d;' } ) {
+ cpath = `{ pwd | sed 's,^'^$"rpath/?^',,; s,//*,/,;' }
+ if( ~ $#cpath 0 )
+ cpath = ''
+
+ desc = ''
+ if (test -f $i.md) {
+ desc = `{ sed 1q < $i.md }
+ }
+ if (test -f $i/index.md) {
+ desc = `{ sed 1q < $i/index.md }
+ }
+ if (test -f $i.html) {
+ # H1 is not reliable because htmlroff doesn't use it :(
+ #desc = `{ cat $i.html |sed 32q | grep '<[Hh]1>' |sed 's/<[Hh]1>(.*)(<\/[Hh]1>|$)/\1/;s/<[^>]*>//g;1q' }
+ # Pick the first line of body instead
+ desc = `{ cat $i.html |/bin/sed '0,/<[Bb][Oo][Dd][Yy]/d;s/<[^>]*>//g;/^$/d'|sed 1q }
+ }
+ if (! ~ $desc '')
+ desc = ' - '$"desc
+ tit = `{echo $i|sed 's/_/ /g'}
+ echo '<li><a style="text-transform: capitalize" href="'$cpath/$i'">'^$"tit^'</a>' $desc '</li>'
+ if (test -d $i)
+ listDir $i
+ }
+ echo '</ul>'
+ cd ..
+}
+cd $sitedir
+listDir .
+
+%}