From: Paul Hänsch Date: Sat, 26 Jan 2019 18:48:25 +0000 (+0100) Subject: Use page titles based on content X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=b9192aa3f4cb8f563cdf233f81176e00d4a0e6fb;p=serve0 Use page titles based on content --- diff --git a/list.sh b/list.sh index 08cef51..cdb99e0 100644 --- a/list.sh +++ b/list.sh @@ -209,7 +209,10 @@ printf 'Content-Type: text/html;charset=utf-8\r\n\r\n' { printf ' [!DOCTYPE HTML] -[html [head [title Listing] +[html [head [title ' + w_bmname + printf ' by %s]' "$ORDER" + printf ' [meta name="viewport" content="width=device-width"] [link rel=stylesheet href="/style.css" ] ] [body diff --git a/view.sh b/view.sh index 887876d..4ee5fb5 100644 --- a/view.sh +++ b/view.sh @@ -11,7 +11,9 @@ printf 'Content-Type: text/html;charset=utf-8\r\n\r\n' { printf ' [!DOCTYPE HTML] -[html [head [title View] +[html [head [title \n' + HTML "${ITEM##*/}" + printf '] [meta name="viewport" content="width=device-width"] [link rel=stylesheet href="/style.css" ] ] [body #view diff --git a/widgets.sh b/widgets.sh index a4ec856..25ec01e 100644 --- a/widgets.sh +++ b/widgets.sh @@ -7,6 +7,9 @@ include_widgets="$0" w_refuri="$(URL "$PATH_INFO")?$(HTML "$QUERY_STRING")" +w_str_s="$(STRING "$SEARCH")" +w_str_f="$(STRING "$FILTER")" + w_ascii=' s-0-0-g; s-1-1-g; s-2-2-g; s-3-3-g; s-4-4-g; s-5-5-g; s-6-6-g; s-7-7-g; s-8-8-g; s-9-9-g; @@ -58,23 +61,33 @@ fi [ "$ORDER" = Length ] && w_colength=checked [ "$ORDER" = Group ] && w_cogroup=checked +w_bmname= +w_bmname(){ + [ "$w_bmname" ] || w_bmname="$( + bm="$_DATA/.index/bookmarks" + name="$(grep -m1 -aF " search=${w_str_s} filter=${w_str_f}${CR}" "$bm" 2>&-)" + + if [ "$name" ]; then + printf '%s' "$name" |cut -f1 |UNSTRING |HTML + else + printf '%s\t%s' "$SEARCH" "$FILTER" \ + | sed -r '/^\t$/{ s;\t;All;; q;} + /.*\t$/{ s;\t$;;; q;} + /^\t.*/{ s;^\t;;; + :x; s;(^|[~^|])([^|^~:]+):;\1;; tx; + s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}' \ + | HTML + fi + )" + printf '%s' "$w_bmname" +} + w_bookmarks(){ - local name='' cf='' cs='' bm="$_DATA/.index/bookmarks" proposed_name='' + local bm="$_DATA/.index/bookmarks" name='' search='' filter='' [ ! -d "${bm%/*}" ] && return 0 [ ! -f "$bm" ] && touch "$bm" - [ "$SEARCH" ] && cs="$(STRING "$SEARCH")" - [ "$FILTER" ] && cf="$(STRING "$FILTER")" - - name="$(grep -m1 -aF " search=$cs filter=$cf${CR}" "$bm" |cut -f1 |UNSTRING)" - [ ! "$name" ] && proposed_name="$( - printf '%s\t%s' "$SEARCH" "$FILTER" \ - |sed -r '/^\t$/{ s;\t;All;; q;} - /.*\t$/{ s;\t$;;; q;} - /^\t.*/{ s;^\t;;; - :x; s;(^|[~^|])([^|^~:]+):;\1;; tx; - s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}' - )" + grep -qaF " search=$w_str_s filter=${w_str_f}${CR}" "$bm" && name=Update || name=Add printf '[form #bookmarks action=?a=bookmark method=POST [a href="#" x] @@ -85,22 +98,21 @@ w_bookmarks(){ [button type="submit" %s]' \ "$w_refuri" \ "$(HTML "$SEARCH")" "$(HTML "$FILTER")" \ - "$(HTML "${name:-${proposed_name}}")" \ - "${name:+Update}${proposed_name:+Add}" + "$(w_bmname)" "${name}" [ "$name" ] && printf ' [submit "delete" "delete" Delete]' sort "$bm" |while read -r name search filter; do search="${search#search=}" filter="${filter#filter=}" filter="${filter%${CR}}" - [ "$search" = "${cs}" -a "$filter" = "${cf}" ] && continue + [ "$search" = "${w_str_s}" -a "$filter" = "${w_str_f}" ] && continue name="$(UNSTRING "$name")"; search="$(UNSTRING "${search}" |URL)"; filter="$(UNSTRING "${filter}" |URL)"; printf '[label .link %s] - [a .link target=blank href="?o=Name&s=%s&f=%s" by Name] - [a .link target=blank href="?o=Date&s=%s&f=%s" by Date] - [a .link target=blank href="?o=Length&s=%s&f=%s" by Length] - [a .link target=blank href="?o=Group&s=%s&f=%s" by Group] + [a .link target=blank href="/?o=Name&s=%s&f=%s" by Name] + [a .link target=blank href="/?o=Date&s=%s&f=%s" by Date] + [a .link target=blank href="/?o=Length&s=%s&f=%s" by Length] + [a .link target=blank href="/?o=Group&s=%s&f=%s" by Group] [br]' \ "$(HTML "$name" |sed 's;,\;;&[wbr];g;')" \ "$search" "$filter" \