diff options
| author | Philipp Schafft <lion@lion.leolix.org> | 2017-05-17 11:34:45 +0000 |
|---|---|---|
| committer | Philipp Schafft <lion@lion.leolix.org> | 2017-05-17 11:34:45 +0000 |
| commit | e3c5f28ecebe89f5712c369d5c4d25854fcddf0e (patch) | |
| tree | b20d94b922a4d58e25e1200a36415c284f1e6847 | |
| parent | a3419bf83a044571ae280b818a7eec00b75710f3 (diff) | |
Feature: Added support for postprocessors
| -rwxr-xr-x | webgen | 29 |
1 files changed, 26 insertions, 3 deletions
@@ -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() { |
