--- /dev/null
+#!/bin/sh
+
+[ "$include_css" ] && return 0
+include_css="$0"
+
+css(){
+ local path="${1:-${PATH_INFO}}"
+ local pagefile css=''
+ # Get directory part of PATH_INFO
+ path="${path%/*}/./"
+
+ while :; do
+ [ "$path" = / ] && break
+ path="${path%/*/}/"
+
+ if [ -f "$_DATA/pages/$path/#page.md" ]; then
+ pagefile="$_DATA/pages/$path/#page.md"
+ elif [ -f "$_EXEC/pages/$path/#page.md" ]; then
+ pagefile="$_EXEC/pages/$path/#page.md"
+ else
+ continue
+ fi
+
+ css="$(sed -En '
+ s;\r$;;;
+ /^%css([\t ]+.*)?$/bCSS;
+ 20q;
+ b;
+
+ :CSS
+ s;(%(css)?)?[\t ]*;;
+ p; n; s;\r$;;;
+ /^(%[ \t]+|%css[ \t]+|[ \t]+)[^ \t\r]+$/bCSS;
+ /^(%[ \t]*|%css[ \t]*)$/bCSS;
+ ' <"$pagefile")${css}"
+ done
+
+ printf %s\\n "${css}"
+}
#!/bin/sh
. "$_EXEC/cgilite/file.sh"
+. "$_EXEC/css.sh"
CACHE_AGE=${CACHE_AGE:-300}
export MD_MACROS="$_EXEC/macros"
elif ! acl_read "$PATH_INFO"; then
theme_error 403
else
+ PAGE_CSS="$(css "${PATH_INFO}")"
theme_page "${PATH_INFO}"
fi
return 0
. "$_EXEC/tools.sh"
theme_head(){
+ local IFS="$BR"
printf '
<meta name="viewport" content="width=device-width"/>
- <link rel="stylesheet" type="text/css" href="%s/[.]/cgilite/common.css">
- <link rel="stylesheet" type="text/css" href="%s/[.]/themes/default.css">
- ' "$_BASE"
+ '
+ for css in "$_BASE/[.]/cgilite/common.css" "$_BASE/[.]/themes/default.css" $PAGE_CSS; do
+ printf '<link rel="stylesheet" type="text/css" href="%s">' \
+ "$(HTML "${css#/}")"
+ done
}
theme_header(){