From e3c5f28ecebe89f5712c369d5c4d25854fcddf0e Mon Sep 17 00:00:00 2001 From: Philipp Schafft Date: Wed, 17 May 2017 11:34:45 +0000 Subject: Feature: Added support for postprocessors --- webgen | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/webgen b/webgen index 92b19c9..206b6b8 100755 --- a/webgen +++ b/webgen @@ -45,6 +45,7 @@ END=end PAGE_SUFFIX='.html' DEFAULT_MENU='-menu-none' PREPROCESSOR='none' +POSTPROCESSOR='none' LANGUAGE='' TEMPLATES='' @@ -214,7 +215,7 @@ list_dependencies() { } show_help() { - echo "Usage: webgen [--preprocessor PP] [--language LANG] [{+|~|=}][TPL]" + echo "Usage: webgen [--preprocessor PP] [--postprocessor OP] [--language LANG] [{+|~|=}][TPL]" echo " or: webgen [--language LANG] --list-dependencies [{+|~|=}]TPL" echo " or: webgen --setup" echo " or: webgen --list" @@ -228,6 +229,10 @@ do PREPROCESSOR="$2" shift ;; + '--postprocessor') + POSTPROCESSOR="$2" + shift + ;; '--language') if [ "$2" = 'default' ] then @@ -292,6 +297,24 @@ cat_file() { esac } +postprocessor() { + _of="$1" + case "$POSTPROCESSOR" in + none) + cat - > "$_of" + ;; + xmllint) + xmllint -o "$_of" --format - + ;; + xmllint-html) + xmllint -o "$_of" --format --html - + ;; + *) + echo "Error: Unknown postprocessor: $POSTPROCESSOR" >&2 + ;; + esac +} + gen_news() { if [ ! -d NEWS/ ] then @@ -383,7 +406,7 @@ proc_page() { } | \ sed "$SECTIONS_REGEX" | \ sed "$TRANSLATE_REGEX" | \ - sed 's#href="[+~]\([^"\#(]*\)(same-language)\(\#*[^"]*\)"#href="\1'"$LANGUAGE_SUFFIX""$PAGE_SUFFIX"'\2"#g; s#href="(same-page)\([^"\#(]*\)\(\#*[^"]*\)"#href="'"$CLEANTPLNAME"'\1'"$PAGE_SUFFIX"'\2"#g; s#href="[+~]\([^"\#]*\)\(\#*[^"]*\)"#href="\1'"$PAGE_SUFFIX"'\2"#g; s#href="=\([^"]*\)"#href="\1"#g' > "$OF" + sed 's#href="[+~]\([^"\#(]*\)(same-language)\(\#*[^"]*\)"#href="\1'"$LANGUAGE_SUFFIX""$PAGE_SUFFIX"'\2"#g; s#href="(same-page)\([^"\#(]*\)\(\#*[^"]*\)"#href="'"$CLEANTPLNAME"'\1'"$PAGE_SUFFIX"'\2"#g; s#href="[+~]\([^"\#]*\)\(\#*[^"]*\)"#href="\1'"$PAGE_SUFFIX"'\2"#g; s#href="=\([^"]*\)"#href="\1"#g' | postprocessor "$OF" } proc_raw() { @@ -391,7 +414,7 @@ proc_raw() { CLEANTPLNAME=$(echo "$_tpl" | sed 's/^=//') OF="$OUT"/"$CLEANTPLNAME" echo "Compiling $CLEANTPLNAME -> $OF" - cat_file "$_tpl" > "$OF" + cat_file "$_tpl" | postprocessor "$OF" } proc() { -- cgit v1.2.3