]> git.plutz.net Git - shellwiki/blobdiff - tools.sh
Merge commit 'a5df8624a4d04031ed1497b959b576c989af438f'
[shellwiki] / tools.sh
index 7069227d960f71d32fc87cc01ebd2143be8e1d27..6388e3f3219b53c36fadf39511c9d88990fefd87 100755 (executable)
--- a/tools.sh
+++ b/tools.sh
@@ -3,19 +3,19 @@
 [ "$include_tools" ] && return 0
 include_tools="$0"
 
-if [ "$(which awk)" ]; then
-  md() {
-    awk -f "$_EXEC/md_macros.awk" -f "$_EXEC/cgilite/markdown.awk" \
-    | sed -E 's;(<[^>]+ )href="((/[^"/]+|[^"/]+[^:/]|)/([^"/]+/)*)"([^>]*>);\1href="\2:'"${LANGUAGE}"'"\5;g'
-  }
-elif [ "$(which busybox)" ]; then
-  md() {
-    busybox awk -f "$_EXEC/md_macros.awk" -f "$_EXEC/cgilite/markdown.awk" \
-    | sed -E 's;(<[^>]+ )href="((/[^"/]+|[^"/]+[^:/]|)/([^"/]+/)*)"([^>]*>);\1href="\2:'"${LANGUAGE}"'"\5;g'
-  }
-else
-  md() { cat; }
-fi
+md(){
+  local parser
+
+  if [ "$#" = 0 ]; then
+    md "${_EXEC}"/parsers/*
+  elif [ "$#" = 1 ]; then
+    "$1"
+  else
+    parser="$1"
+    shift 1
+    "$parser" |md "$@"
+  fi
+}
 
 mdfile(){
   #  Check if page exists, if possible fall
@@ -83,6 +83,7 @@ attachment_glob(){
   esac \
   | sort -u \
   | while read -r glob; do
+    [ -e "$glob" ] || continue
     pagedir="$(page_abs "${glob%%/#attachments/*}/")"
     [ -d "$_DATA/pages/$pagedir" -o -d "$_EXEC/pages/$pagedir" ] \
     && printf '%s\n' "${glob%%/#attachments/*}/${glob#*/#attachments/}"