Introduction
Introduction Statistics Contact Development Disclaimer Help
New menu implementation, removes the recursive calls to rc/awk, also makes use …
git clone git://git.suckless.org/swerc
Log
Files
Refs
README
---
commit 8cfa2fc1024d44d456a7d8d14e03e55a57c18b9b
parent fba68f47c79cddfb22927ba799e5cdee2a43b009
Author: [email protected] <unknown>
Date: Mon, 27 Oct 2008 00:41:23 +0100
New menu implementation, removes the recursive calls to rc/awk, also makes use …
Other minnor cleanups.
Diffstat:
M bin/werc.rc | 73 +++++++++++++++++------------…
M lib/sitemap.tpl | 2 +-
M pub/style/style.css | 6 ++++++
3 files changed, 47 insertions(+), 34 deletions(-)
---
diff --git a/bin/werc.rc b/bin/werc.rc
@@ -20,8 +20,9 @@ fn gentitle {
echo '<h1 class="headerTitle"><a href="/">' ^ $"siteTitle ^ ' <span id="he…
}
-# Don't change var name or trailing ';', some dirs change the filter!
-dirfilter = '/\/[._]/d; /'^$forbidden_uri_chars^'/d; /\/robots.\txt$/d; /\/sit…
+# Don't change var name or trailing ';', dirfilter might be changed from _werc…
+# TODO: Specify the canonical path input format handled by dirfilter
+dirfilter = '/\/[._]/d; /'^$forbidden_uri_chars^'/d; /\/(robots.\txt|sitemap\.…
# To be used from config files
fn hide_paths {
@@ -30,38 +31,41 @@ fn hide_paths {
}
# Sidebar
-# PERF: menu takes ~30% of werc's runtime, even for top level pages.
-# Maybe a combination of du -a/find|sort could let us avoid the recursive awk …
fn menu {
- ls -F $1 | sed $dirfilter | awk -F/ '
- BEGIN { print "<ul class=\"side-bar\">" }
- END { print "</ul>" }
- # Should add \. to the list of allowed chars in file names, but need to fi…
- /^([a-zA-Z0-9+_\-]+[\/*]?)+$/ && $NF != "index" {
- isdir = match($0, "/$")
- sub("[*/]$", "")
-
- path = bname = $0
- sub("^(.*/)?([0-9]+_)?", "", bname)
- gsub("_", " ", bname)
+ dirs = ./
+ dd = .
+ for(d in $args) {
+ dd=$dd^'/'^$d
+ dirs = ( $dd $dirs )
+ }
+ # Ignore stderr, last item in path might be a file that doesn't exist (eg.…
+ ls -F $dirs >[2]/dev/null | sed 's/[@*]$//; '^$dirfilter|sort -u | awk -F/…
+ function p(x, y, s) {
+ for( i=0; i < x-y; i+=1)
+ print s
+ }
+ /^([a-zA-Z0-9+_\-]+[*\/]?)+$/ {
- if(isdir) {
- bname = bname "/"
- path = $0 "/"
- }
+ d = ""
+ if(match($0, "/$"))
+ d = "/"
+ sub("/$", "") # Strip trailing / for dirs so NF is consistent
- if(index(ENVIRON["REQUEST_URI"] "/", "/" path) == 1) {
- if(isdir) {
- print "<li><a href=\"/" path "\" class=\"thisPage\">&raquo;<i>…
- system("rc -c ''menu " path "''")
- } else {
- print "<li><a href=\"/" path "\" class=\"thisPage\">&raquo;<i>…
- }
- } else
- print "<li><a href=\"/" path "\">&rsaquo; " bname "</a>"
+ p(NF, lNF, "<ul class=\"side-bar\">")
+ p(lNF, NF, "</ul>")
+ lNF = NF
- print "</li>"
- }'
+ bname = $NF d
+ path = "/" $0 d
+ gsub("_", " ", bname)
+
+ if(index(ENVIRON["REQUEST_URI"] "/", path) == 1)
+ print "<li><a href=\"" path "\" class=\"thisPage\">&raquo;<i> " bn…
+ else
+ print "<li><a href=\"" path "\">&rsaquo; " bname "</a></li>"
+ }
+ END { p(lNF, 0, "</ul>") }
+ '
}
fn gensidebar {
@@ -116,9 +120,10 @@ fn txt_handler {
fn dir_listing_handler {
d = `{basename -d $1}
- echo '<h1 style="text-transform: capitalize;">' `{echo $d|sed -e 's,.*//,,…
- echo '<ul style="text-transform: capitalize;">'
- ls -F $d | sed -e $dirfilter' s,^'$sitedir'/.*/([^$].*),<li><a href="\1">\…
+ dt = `{echo $d|sed -e 's,.*//,,g' -e 's,/$,,' -e 's,/, / ,g'}
+ echo '<h1 class="dir-list-head">'^$dt^'</h1> <ul class="dir-list">'
+ # XXX I'm not sure what the [^$] does there
+ ls -F $d | sed -e $dirfilter' s,^'$sitedir'/.*/([^$].*),<li><a href="\1">\…
echo '</ul>'
}
@@ -311,6 +316,8 @@ if (test -d $body) {
select_handler
+dprint $handler
+
# Template/body selection
master_template= `{get_lib_file $master_template}
diff --git a/lib/sitemap.tpl b/lib/sitemap.tpl
@@ -25,7 +25,7 @@ fn listDir {
if(! ~ $#redirectPermanent 1)
{
- for ( i in `{ ls -d $d/*/ $d/*.md $d/*.html $d/*.txt >[2]/dev/null |sed $d…
+ for ( i in `{ ls -d $d/*/ $d/*.md $d/*.html $d/*.txt >[2]/dev/null |sed $d…
desc = ''
if (test -f $i.md) {
desc = `{ getMdDesc $i.md }
diff --git a/pub/style/style.css b/pub/style/style.css
@@ -363,3 +363,9 @@ blockquote {
border-left: 1px solid blue;
font-style: italic;
}
+
+/* PAGE/HANDLER SPECIFIC */
+h1.dir-list-head, ul.dir-list {
+ text-transform: capitalize;
+ font-weight: bold;
+}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.