]> git.plutz.net Git - serve0/blobdiff - list.sh
improved display of different resolutions
[serve0] / list.sh
diff --git a/list.sh b/list.sh
index e7b856c81346cf3d96488de569dd3d36f768ad53..60609b62c2f26c05dbeef788979d163ac0c178c3 100644 (file)
--- a/list.sh
+++ b/list.sh
@@ -35,8 +35,8 @@ list_item() {
       "$link" "$link" "${name##/}" \
       "$((length / 60))" "$((length % 60))" \
       "$width" "$height" \
-      "$(printf '%s\n' "${tags#tags=}" \
-         | sed -r "$UNSTRING"' s;^;,;; s;,+;,;g; s;,$;;;
+      "$(UNSTRING "${tags#tags=}" \
+         | sed -r 's;^;,;; s;,+;,;g; s;,$;;;
                    :X s;,-?([^,]+)(,|$); [span .tag\n \1]\2;; tX;'
       )" "$name" "$link" "$link"
   else
@@ -51,10 +51,14 @@ list_item() {
   STRING "$FILTER^" \
   | sed -E 's;\^;\n;g; s;[]\/\(\)\\\^\$\?\.\+\*\;\[\{\}];\\&;g' \
   | while read -r f; do
-    [ "${f#\~}" ] || continue
-    [ "${f#\~}" = "$f" ] \
-    && fex="/(\ttags=([^\t]*,)?)(${f})((,[^\t]*)?\t)/{${fex}}" \
-    || fex="/(\ttags=([^\t]*,)?)(${f#\~})((,[^\t]*)?\t)/d; ${fex}"
+    [ "${f##*[A-Z]*}" ] && tl="y;ABCDEFGHIJKLMNOPQRSTUVWXYZ;abcdefghijklmnopqrstuvwxyz;;"
+    case $f in
+      ''|~) continue;;
+      ~\\\$:*) fex="h; ${tl} /${f#~\\\$:}/d; g;${fex}";;
+      \\\$:*) fex="h; ${tl} /${f#\\\$:}/{g;${fex}}";;
+      ~*) fex="/(\ttags=([^\t]*,)?)(${f#\~})((,[^\t]*)?\t)/d; ${fex}";;
+       *) fex="/(\ttags=([^\t]*,)?)(${f})((,[^\t]*)?\t)/{${fex}}";;
+    esac
     printf '%s\n' "${fex}"
   done \
   | tail -n1
@@ -207,13 +211,13 @@ printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
   printf ' by %s]' "$ORDER"
   printf '
   [meta name="viewport" content="width=device-width"]
+  [link rel=stylesheet href="/cgilite/common.css" ]
   [link rel=stylesheet href="/style.css" ]
 ] [body
   [div #navigation
     [a #t_bookmarks href="#bookmarks" ★]'
     w_search
     printf '
-    [a #t_avsearch href="#advsearch" Advanced]
     [a #t_prefs href="#prefs" ⚙]
   ]'
   w_bookmarks