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
+ if ! mdfile="$(mdfile "${1:-${PATH_INFO%/*}}")"; then
return 1
fi
+ 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;
+ '
+ )"
+ if [ ! "${PAGE_TITLE}" ]; then
+ PAGE_TITLE="${1:-${PATH_INFO%/*}}"
+ PAGE_TITLE="${PAGE_TITLE##*/}"
+ fi
+ printf %s\\n "$PAGE_TITLE"
}