thirdculture-werc/apps/blagh/app.rc
2008-12-28 11:51:03 +01:00

39 lines
1.4 KiB
Text

fn blagh_init {
if(~ $#blaghDirs 0 && ~ $req_path */[bB]log/index)
blaghDirs=( . )
# Should not match sub-dirs!
if(! ~ $#blaghDirs 0) {
# && test -d / `{echo '-a -d '^$req_path^$blaghDirs}
if(~ $req_path */[0-9][0-9][0-9][0-9]/ */[0-9][0-9][0-9][0-9]/[0-9][0-9]/ */[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/*)
status='Use default handler'
if not if(~ $req_path */index) {
app_body_handler='blagh_body'
#u=`{cleanname $baseuri^`{basename -d '/'^$uri}|sed 's,:/,://,'} # Sed recovers '/' in 'http:/' stripped by cleanname
u=`{cleanname $baseuri^$req_path'index}
extraHeaders=$"extraHeaders ^ \
'<link rel="alternate" type="application/rss+xml" title="RSS" href="'$"u'.rss" />' ^ \
'<link rel="alternate" type="application/atom+xml" title="ATOM" href="'$"u'.atom" />'
}
if not if(~ $req_path */index.atom)
app_body_handler='blagh_body'
if not if(~ $req_path */index.rss)
app_body_handler='blagh_body'
}
}
fn blagh_body {
d=$sitedir$req_path^$blaghDirs^/./[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/
posts=`{ls -F $d >[2]/dev/null | sed -n 's,/\./,/|/,; /\/$/p' | sort -r '-t|' +1 | sed 's,/+\|/+,/,'}
for(p in $posts)
show_post $p | $formatter
}
fn show_post {
l=`{echo $1 | sed 's|'$sitedir$req_path'||'}
sed '1s|.*|[&]('$l')|' < $1/index.md
}