* fix for strings exceeding sed's length limit
parent
68e1c1b06c
commit
ecf582c1da
|
@ -5,22 +5,26 @@
|
|||
function render() {
|
||||
local template="$(cat "$2")"
|
||||
local -n ref=$1
|
||||
local tmp=$(mktemp)
|
||||
for key in ${!ref[@]}; do
|
||||
local value="$(html_encode "${ref[$key]}" | sed -E 's/\&/<2F>UwU<77>/g')"
|
||||
template="$(sed -E 's/\{\{\.'"$key"'\}\}/'"$value"'/g' <<< "$template")"
|
||||
echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
||||
done
|
||||
|
||||
template="$(sed -E -f "$tmp" <<< "$template")"
|
||||
sed -E 's/<2F>UwU<77>/\&/g' <<< "$template"
|
||||
rm "$tmp"
|
||||
}
|
||||
|
||||
# render_unsafe(array, template_file)
|
||||
function render_unsafe() {
|
||||
local template="$(cat "$2")"
|
||||
local -n ref=$1
|
||||
local tmp=$(mktemp)
|
||||
for key in ${!ref[@]}; do
|
||||
local value="$(xxd -ps <<< "${ref[$key]}" | tr -d '\n' | sed -E 's/.{2}/\\x&/g')"
|
||||
template="$(sed -E 's/\{\{\.'"$key"'\}\}/'"$value"'/g' <<< "$template")"
|
||||
echo 's/\{\{\.'"$key"'\}\}/'"$value"'/g' >> "$tmp"
|
||||
done
|
||||
|
||||
echo "$template"
|
||||
sed -E -f "$tmp" <<< "$template"
|
||||
rm "$tmp"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue