{{- /* One iCalendar (RFC 5545) content line: "NAME:value" plus CRLF, folded so that no line is longer than 75 bytes (continuation lines start with a space). Params: name, value, text (true to escape the value as TEXT: backslash, semicolon, comma and newlines). */ -}} {{- $value := .value | default "" -}} {{- if .text -}} {{- $value = $value | replaceRE `\\` `\\` | replaceRE `;` `\;` | replaceRE `,` `\,` | replaceRE `\r?\n` `\n` -}} {{- end -}} {{- $out := "" -}} {{- $line := "" -}} {{- $bytes := 0 -}} {{- range split (printf "%s:%s" .name $value) "" -}} {{- if gt (add $bytes (len .)) 75 -}} {{- $out = printf "%s%s\r\n " $out $line -}} {{- $line = "" -}} {{- $bytes = 1 -}} {{- end -}} {{- $line = printf "%s%s" $line . -}} {{- $bytes = add $bytes (len .) -}} {{- end -}} {{- return printf "%s%s\r\n" $out $line -}}