3 . "$_EXEC/cgilite/cgilite.sh"
11 path_info="$PATH_INFO"
13 while [ $# -gt 0 ]; do case $1 in
14 --from) from="$2"; shift 2;;
15 from=*) from="${1#*=}"; shift 1;;
16 --to) to="$2"; shift 2;;
17 to=*) to="${1#*=}"; shift 1;;
18 --items) items="$2"; shift 2;;
19 items=*) items="${1#*=}"; shift 1;;
20 --rev|--reverse) rev="-r"; shift 1;;
21 *) page="$1"; shift 1;;
24 if ! printf %s\\n "$from" |grep -qEx '[0-9]+|/([^/\\]|\\/|\\.)*/'; then
25 debug 'Include macro invalid argument: "from"'
28 if ! printf %s\\n "$to" |grep -qEx '[0-9]+|/([^/\\]|\\/|\\.)*/'; then
29 debug 'Include macro Invalid argument: "to"'
32 if ! printf %s\\n "$items" |grep -qEx '\$|[0-9]+'; then
33 debug 'Include macro Invalid argument: "items"'
42 /*) export PATH_INFO="$(PATH "$glob")";;
43 *) export PATH_INFO="$(PATH "$path_info/$glob")";;
46 if [ -f "$_DATA/pages/$PATH_INFO/#page.md" ]; then
47 mdfile="$_DATA/pages/$PATH_INFO/#page.md"
48 elif [ -f "$_EXEC/pages/$PATH_INFO/#page.md" ]; then
49 mdfile="$_EXEC/pages/$PATH_INFO/#page.md"
53 printf '<div class="macro include" page="%s">' "$(HTML "$glob")"
54 refpfx="$(HTML "$glob" |sed 's;[\;&\;];\\&;g')"
55 ( cd -- "${mdfile%/*}"
56 sed -n "${from},${to}p" <"$mdfile" \
60 s;(<[^>]+ )(href|src)="([^"]+://[^"]*|[mM][aA][iI][lL][tT][oO]:[^"]*)"([^>]*>);\1\2="/#safe/\3"\4;g
61 s;(<[^>]+ )(href|src)="([^#/"][^"]*)"([^>]*>);\1\2="'"${refpfx}"'\3"\4;g
62 s;(<[^>]+ )(href|src)="/#safe/([^"]*)"([^>]*>);\1\2="\3"\4;g