cullmann.io/themes/blowfish/layouts/shortcodes/codeimporter.html
2024-07-15 22:27:55 +02:00

28 lines
928 B
HTML

{{ $url := .Get "url" }}
{{ $type := .Get "type" }}
{{ $startLine := .Get "startLine" | default 1 | int }}
{{ $startLine = sub $startLine 1 }}
{{ $endLine := .Get "endLine" | default -1 | int }}
{{ $selectedLines := slice }}
{{ with resources.GetRemote (urls.Parse $url) }}
{{ $lines := split .Content "\n" }}
{{ $totalLine := $lines | len }}
{{ if ne $endLine -1 }}
{{ $endLine = math.Min $endLine $totalLine }}
{{ else }}
{{ $endLine = $totalLine }}
{{ end }}
{{ if gt $startLine $endLine }}
{{ errorf "Code Importer Shortcode - startLine is greater than endLine" . }}
{{ end }}
{{ $selectedLines := first $endLine $lines }}
{{ $selectedLines = after $startLine $selectedLines }}
{{ $codeBlock := printf "```%s\n%s\n```" $type (delimit $selectedLines "\n") }}
{{ $codeBlock | markdownify }}
{{ else }}
{{ errorf "Code Importer Shortcode - Unable to get remote resource" . }}
{{ end }}