summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorHayden Hamilton <hayden@hhvn.uk>2026-06-07 17:14:50 +0100
committerHayden Hamilton <hayden@hhvn.uk>2026-06-07 17:14:50 +0100
commitcd71e96046587ae0b2297a3992db4c5b71a283c7 (patch)
tree5f08d15aeaa5dfc5def0d1f3caa7db183dcbbab6 /www
parent627411f75fe98eb44cf286ca6c31c11de807c6c2 (diff)
www/generate/breadcrumb to generate 'breadcrumb' links for a page
Diffstat (limited to 'www')
-rwxr-xr-xwww/generate/breadcrumb44
1 files changed, 44 insertions, 0 deletions
diff --git a/www/generate/breadcrumb b/www/generate/breadcrumb
new file mode 100755
index 0000000..6b9f821
--- /dev/null
+++ b/www/generate/breadcrumb
@@ -0,0 +1,44 @@
+#!/bin/rc
+
+uri = $1 # eg, '/hbspbar/log.html'
+domain = $2 # eg, hhvn.uk
+subdomain = $3 # eg, src
+elems = `('/' $nl){echo $uri}
+
+if (~ $domain ()) {
+ domain = `hostname
+}
+
+fn plink {
+ printf '<a href="%s">%s</a>' $1 $2
+}
+
+fn text {
+ printf '%s' $1
+}
+
+if (! ~ $subdomain ()) {
+ plink '/' $subdomain
+ text '.'
+ plink 'https://'^$domain $domain
+} else {
+ plink '/' $domain
+}
+
+curi = ''
+for (e in $elems) {
+ # special case for stagit
+ if (~ $subdomain src && ~ $e log.html) {
+ exit 0
+ }
+
+ # we're done
+ if (~ $e index.html) {
+ exit 0
+ }
+
+ curi = $curi ^ '/' ^ $e
+
+ text ' &gt; '
+ plink $curi `$nl{echo $e | sed 's/\.html$//'}
+}