28 lines
928 B
HTML
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 }}
|