#!/bin/sh
-# Copyright 2023 Paul Hänsch
+# Copyright 2023, 2024 Paul Hänsch
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-if acl_read ${PATH_INFO}; then
- mdfile="$(mdfile "${PATH_INFO%/*}")"
-else
- PAGE_TITLE="${SITE_TITLE}"
- return 1
+if acl_read "${PATH_INFO}"; then
+ PAGE_TITLE="$(page_title "${PATH_INFO%/*}")"
fi
-if [ "$mdfile" ]; then
- PAGE_TITLE="$(
- sed -nE '
- s;^%title[ \t]+([[:graph:]][[:print:]]+)\r?$;\1;p; tQ;
- b; :Q q;
- ' "$mdfile"
- )"
- [ ! "${PAGE_TITLE}" ] && PAGE_TITLE="$(
- MD_MACROS="" md <"$mdfile" \
- | sed -nE '
- s;^.*<h1[^>]*>(.*>)?([^<]+)(<.*)?</h1>.*$;\2;p; tQ;
- s;^.*<h2[^>]*>(.*>)?([^<]+)(<.*)?</h2>.*$;\2;p; tQ;
- b; :Q q;
- '
- )"
-else
- PAGE_TITLE="${SITE_TITLE}"
- return 1
-fi
-
-case $PATH_INFO in
- *"/[attachment]")
- PAGE_TITLE="${PAGE_TITLE} ($(_ Attachments))"
- ;;
- *"/[revision]")
- PAGE_TITLE="${PAGE_TITLE} ($(_ Revisions))"
- ;;
-esac
-
-[ "$PAGE_TITLE" ] \
-&& PAGE_TITLE="${PAGE_TITLE}${SITE_TITLE:+ - ${SITE_TITLE}}" \
-|| PAGE_TITLE="${SITE_TITLE}"
+PAGE_TITLE="${PAGE_TITLE:-${SITE_TITLE:-${PATH_INFO}}}${PAGE_TITLE:+${SITE_TITLE:+ - ${SITE_TITLE}}}"
return 1
done
return 1
}
+
+page_title() {
+ local mdfile PAGE_TITLE
+
+ if mdfile="$(mdfile "${1:-${PATH_INFO%/*}}")"; then
+ PAGE_TITLE="$(
+ sed -nE '
+ s;^%title[ \t]+([[:graph:]][[:print:]]+)\r?$;\1;p; tQ;
+ b; :Q q;
+ ' "$mdfile"
+ )"
+ [ ! "${PAGE_TITLE}" ] && PAGE_TITLE="$(
+ MD_MACROS="" md <"$mdfile" \
+ | sed -nE '
+ s;^.*<h1[^>]*>(.*>)?([^<]+)(<.*)?</h1>.*$;\2;p; tQ;
+ s;^.*<h2[^>]*>(.*>)?([^<]+)(<.*)?</h2>.*$;\2;p; tQ;
+ b; :Q q;
+ '
+ )"
+ printf %s\\n "$PAGE_TITLE"
+ else
+ return 1
+ fi
+}