22 lines
846 B
HTML
22 lines
846 B
HTML
{{- /*
|
|
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 -}}
|