From 8c1b0d1c11d754250c87df3a54cfd5343b743ac9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Wed, 7 Feb 2024 13:56:44 +0100 Subject: [PATCH] prevent double escape in page title --- tools.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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" } -- 2.39.2