X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=tools.sh;fp=tools.sh;h=2ee1818f569685c8bd848ba2e7e9fe01bb6d0626;hb=8c1b0d1c11d754250c87df3a54cfd5343b743ac9;hp=a85e63c5e4ca12a1bffb2b3da5220d194cb8f21a;hpb=18890d81240129f9561517ee6ae992e7a3d1e00a;p=shellwiki diff --git a/tools.sh b/tools.sh index a85e63c..2ee1818 100755 --- a/tools.sh +++ b/tools.sh @@ -193,23 +193,33 @@ page_title() { return 1 fi 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;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;p; tQ; - s;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;p; tQ; - b; :Q q; + s;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;; tQ; + s;^.*]*>(.*>)?([^<]+)(<.*)?.*$;\2;; tQ; + b; :Q + # reverse escapes of cgilite HTML function, + # to prevent later double escaping + # later escaping must not be omited + s/<//g; s/"/'\"'/g; s/'/'\''/g; + s/[/[/g; s/]/]/g; s/ /\r/g; s/&/\&/g; + p; q; ' )" if [ ! "${PAGE_TITLE}" ]; then + # use last part of page URL as title PAGE_TITLE="${1:-${PATH_INFO}}" PAGE_TITLE="${PAGE_TITLE%/*}" PAGE_TITLE="${PAGE_TITLE##*/}" fi + debug "TITLE: $PAGE_TITLE" printf %s\\n "$PAGE_TITLE" }