From: Paul Hänsch Date: Wed, 7 Feb 2024 12:56:44 +0000 (+0100) Subject: prevent double escape in page title X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=8c1b0d1c11d754250c87df3a54cfd5343b743ac9;p=shellwiki prevent double escape in page title --- 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" }