From 911eca714c5c13cde26a79854ee636330fec6850 Mon Sep 17 00:00:00 2001 From: Lauren Liberda Date: Wed, 23 Jun 2021 00:40:35 +0200 Subject: [PATCH] html_encode: support for data from stdin --- src/misc.sh | 6 +++++- src/template.sh | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/misc.sh b/src/misc.sh index f6516a1..ee13638 100755 --- a/src/misc.sh +++ b/src/misc.sh @@ -39,7 +39,11 @@ function post_dump() { # html_encode(string) function html_encode() { - sed 's/\&/\&/g;s//\>/g;s/%/\%/g;s/\//\//g;s/\\/\\/g;s/'"'"'/\'/g;s/"/\"/g;s/`/\`/g;s/?/\?/g;' <<< "$1" + if [[ "$1" == "" ]]; then + sed 's/\&/\&/g;s//\>/g;s/%/\%/g;s/\//\//g;s/\\/\\/g;s/'"'"'/\'/g;s/"/\"/g;s/`/\`/g;s/?/\?/g;' + else + sed 's/\&/\&/g;s//\>/g;s/%/\%/g;s/\//\//g;s/\\/\\/g;s/'"'"'/\'/g;s/"/\"/g;s/`/\`/g;s/?/\?/g;' <<< "$1" + fi } # url_encode(string) diff --git a/src/template.sh b/src/template.sh index 68ad0c2..d75434a 100755 --- a/src/template.sh +++ b/src/template.sh @@ -7,8 +7,12 @@ function render() { local -n ref=$1 local tmp=$(mktemp) for key in ${!ref[@]}; do - local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/�UwU�/g')" - echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp" + if [[ "${ref[$key]}" != "" ]]; then + local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/�UwU�/g')" + echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp" + else + echo 's/\{\{\.'"$key"'\}\}//g' >> "$tmp" + fi done template="$(sed -E -f "$tmp" <<< "$template")" sed -E 's/�UwU�/\&/g' <<< "$template"