From 8013758c0165b050d45b11e550ced3576bb520df Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Tue, 6 Feb 2024 23:49:23 +0100 Subject: [PATCH] page_title: fall back to page's path name when title cannot be determined --- tools.sh | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/tools.sh b/tools.sh index dfa4594..248a254 100755 --- a/tools.sh +++ b/tools.sh @@ -189,23 +189,26 @@ has_tag() { 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;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;p; tQ; - s;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\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;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;p; tQ; + s;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\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" } -- 2.39.2