{{- $input := .content -}}
{{- $pos := .pos -}}
{{- $lines := split $input "\n" -}}

{{- $numLines := len $lines -}}
{{- if gt $numLines 1 -}}

    {{- /* look for the first non-empty line and use its indent to determine how much indent to strip */ -}}
    {{- $prefix := "" -}}
    {{- $done := false -}}
    {{- range $index, $line := $lines -}}
        {{- if not $done -}}
            {{- if gt (len $line) 0 -}}
                {{- $done = true -}}
                {{- if hasPrefix $line "                " -}}{{- $prefix = "                " -}}
                {{- else if hasPrefix $line "            " -}}{{- $prefix = "            " -}}
                {{- else if hasPrefix $line "        " -}}{{- $prefix = "        " -}}
                {{- else if hasPrefix $line "    " -}}{{- $prefix = "    " -}}
                {{- end -}}
            {{- end -}}
        {{- end -}}
    {{- end -}}

    {{- $text := "" -}}
    {{- range $index, $line := $lines -}}
        {{- if eq $index 0 -}}
            {{- /* skip the first line since it just contains the junk to the right of the shortcode */ -}}
        {{- else if eq $index (sub $numLines 1) -}}
            {{- /* skip the last line since it just contains the junk to the left of the shortcode */ -}}
        {{- else -}}
            {{- $text = printf "%s%s\n" $text (strings.TrimPrefix $prefix $line) -}}
        {{- end -}}
    {{- end -}}

    {{- $text | safeHTML -}}
{{- else -}}
    {{- errorf "Shortcode must span muliple lines (%s)" $pos -}}
{{- end -}}
