X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;ds=sidebyside;f=tools.sh;h=65327d7c38f229e3815b207f173d86823245ae50;hb=eb87f73d7209b74f25c4ca796cfda705af034ee7;hp=248a2542b2a86df0d57877cc8330a150a437d88f;hpb=8013758c0165b050d45b11e550ced3576bb520df;p=shellwiki diff --git a/tools.sh b/tools.sh index 248a254..65327d7 100755 --- a/tools.sh +++ b/tools.sh @@ -3,7 +3,7 @@ [ "$include_tools" ] && return 0 include_tools="$0" -# Copyright 2022 - 2023 Paul Hänsch +# Copyright 2022 - 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 @@ -187,27 +187,35 @@ has_tag() { } page_title() { - local mdfile PAGE_TITLE - - if ! mdfile="$(mdfile "${1:-${PATH_INFO%/*}}")"; then - return 1 + local mdfile='' PAGE_TITLE='' + + if mdfile="$(mdfile "${1}")"; then + PAGE_TITLE="$( + # pick title from %title pragma + sed -nE ' + s;^%title[ \t]+([[:graph:]][[:print:]]+)\r?$;\1;p; tQ; + b; :Q q; + ' "$mdfile" + )" + [ ! "${PAGE_TITLE}" ] && PAGE_TITLE="$( + # pick title from first h1/h2 headline + MD_MACROS="" md <"$mdfile" \ + | sed -nE ' + s;^.*