using awk to parse out supported templates
This commit is contained in:
parent
0ab0d57d39
commit
7448411442
@ -7,7 +7,7 @@ proj="$2"
|
|||||||
target="$3"
|
target="$3"
|
||||||
f="$4"
|
f="$4"
|
||||||
|
|
||||||
markdown_filter_cmd="awk -f $zod_lib/markdown.awk"
|
md_builtin="awk -f $zod_lib/markdown.awk"
|
||||||
|
|
||||||
[ -f "$proj/helpers.awk" ] && helper_opts="$proj/helpers.awk"
|
[ -f "$proj/helpers.awk" ] && helper_opts="$proj/helpers.awk"
|
||||||
[ -f "$proj/filters.config" ] && filter_opts="$proj/filters.config"
|
[ -f "$proj/filters.config" ] && filter_opts="$proj/filters.config"
|
||||||
@ -27,14 +27,22 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
ext=${f##*.}
|
ext=${f##*.}
|
||||||
if [ $ext == "md" ] || [ $ext == "html" ]; then
|
|
||||||
|
# Add filter support provided by the filters.config file
|
||||||
|
[ "$filter_opts" ] && supported="$supported $(zod_supported_extensions "$zod_lib" "$filter_opts")"
|
||||||
|
|
||||||
|
for supported_ext in "$supported"; do
|
||||||
|
[ $ext == "$supported_ext" ] && { is_supported=true; break }
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$is_supported" ]; then
|
||||||
|
|
||||||
meta=${f%.$ext}.meta
|
meta=${f%.$ext}.meta
|
||||||
[ -f "$meta" ] && page_meta_opts="$meta"
|
[ -f "$meta" ] && page_meta_opts="$meta"
|
||||||
|
|
||||||
set -- -f "$zod_lib/render.awk"
|
set -- -f "$zod_lib/render.awk"
|
||||||
[ "$helper_opts" ] && set -- "$@" -f "$helper_opts"
|
[ "$helper_opts" ] && set -- "$@" -f "$helper_opts"
|
||||||
set -- "$@" -v markdown_filter_cmd="$markdown_filter_cmd" \
|
set -- "$@" -v markdown_filter_cmd="$md_builtin" \
|
||||||
"$filter_opts" \
|
"$filter_opts" \
|
||||||
"$global_meta_opts" \
|
"$global_meta_opts" \
|
||||||
"$page_meta_opts" \
|
"$page_meta_opts" \
|
||||||
|
8
bin/zod_supported_extensions
Normal file
8
bin/zod_supported_extensions
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# return a list of all supported file extensions
|
||||||
|
|
||||||
|
zod_lib="$1"
|
||||||
|
filter_opts="$2"
|
||||||
|
|
||||||
|
awk -f "$zod_lib/supported_extensions.awk" "$filter_opts"
|
22
lib/supported_extensions.awk
Normal file
22
lib/supported_extensions.awk
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
BEGIN {
|
||||||
|
extensions="md html"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process lines from config
|
||||||
|
# Also ignore comments and empty lines
|
||||||
|
(NF > 0) && (!/^;.*/) {
|
||||||
|
split($0, filter_kv, ": ")
|
||||||
|
split(filter_kv[1], filter_extensions, ",")
|
||||||
|
|
||||||
|
for (i = 1; i <= length(filter_extensions); i++) {
|
||||||
|
ext = filter_extensions[i]
|
||||||
|
if (!match(extensions, ext)) {
|
||||||
|
extensions = extensions " " ext
|
||||||
|
}
|
||||||
|
}
|
||||||
|
next
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
print extensions
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user