]> git.plutz.net Git - shellwiki/blobdiff - macros/include
Merge commit '30754740554c61775b4af949f326f1616b1718c9'
[shellwiki] / macros / include
index b1d1e776765263d0da4086cfed16d2e801520e1b..9f3339df5201e617ebfb443d7dc9f3575771eead 100755 (executable)
@@ -1,7 +1,6 @@
 #!/bin/sh
 
 . "$_EXEC/cgilite/cgilite.sh"
-. "$_EXEC/cgilite/users.sh"
 . "$_EXEC/acl.sh"
 . "$_EXEC/tools.sh"
 
@@ -35,6 +34,7 @@ if ! printf %s\\n "$items" |grep -qEx '\$|[0-9]+'; then
   exit 1
 fi
 
+printf '<div class="macro include wrapper">'
 page_glob "$page" \
 | sort $rev \
 | sed "${items}q" \
@@ -51,13 +51,20 @@ page_glob "$page" \
   else
     continue
   fi
-  printf '<div class="macro include" page="%s">' "$(HTML "$glob")"
+  hglob="$(HTML "$glob")"
+  refpfx="$(printf %s\\n "$hglob" |sed 's;[\;&\;];\\&;g')"
+  printf '<div class="macro include page"><article class="include" id="include_%s">' "${hglob}"
   ( cd -- "${mdfile%/*}"
     sed -n "${from},${to}p" <"$mdfile" \
     | md \
     | grep -vx ''
   ) | sed -E '
-    s;(<[^>]+ )(href|src)="([^#/"][^"]*)"([^>]*>);\1\2="'"$(HTML "$glob")"'\3"\4;g
+    s;(<[^>]+ )(href|src)="([^"]+://[^"]*|[mM][aA][iI][lL][tT][oO]:[^"]*)"([^>]*>);\1\2="/#safe/\3"\4;g
+    s;(<[^>]+ )(href|src)="([^#/"][^"]*)"([^>]*>);\1\2="'"${refpfx}"'\3"\4;g
+    s;(<[^>]+ )(href|src)="/#safe/([^"]*)"([^>]*>);\1\2="\3"\4;g
   '
+  printf '</article>'
+  printf '<a class="include link" href="%s">%s</a>' "${hglob}" "${hglob}"
   printf '</div>'
 done
+printf '</div>'