2023-06-09 21:42:03 +00:00
{{- $version := split hugo.Version "." }}
{{- $major := int (index $version 0) }}
{{- $minor := int (index $version 1) }}
2023-07-27 14:14:55 +00:00
{{- $page := .page }}
{{- if and (not $page) .context }}
{{- $page = .context }}
2023-07-27 15:47:36 +00:00
{{- warnf "%q: DEPRECATED parameter 'context' for shortcode 'attachments' found, use 'page' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration/#5180" $page.File.Path }}
2023-07-27 14:14:55 +00:00
{{- end }}
2023-01-23 21:35:43 +00:00
{{- $color := .color | default "" }}
2022-06-22 18:32:18 +00:00
{{- $content := .content }}
2023-01-23 21:35:43 +00:00
{{- $style := .style | default "default" }}
{{- if and (not $color) (eq (len $color) 0) }}
{{- $style = .style | default "transparent" }}
{{- end }}
2023-10-02 23:28:24 +00:00
{{- $title := .title }}
{{- if not $title }}
{{- if eq $style "info" }}{{ $title = $style | T }}{{ end }}
{{- if eq $style "warning" }}{{ $title = $style | T }}{{ end }}
{{- if eq $style "note" }}{{ $title = $style | T }}{{ end }}
{{- if eq $style "tip" }}{{ $title = $style | T }}{{ end }}
{{- end }}
{{- $title = trim ($title | default ("Attachments-label" | T)) " " }}
2022-06-22 18:32:18 +00:00
{{- $icon := .icon | default "" }}
{{- if and (not $icon) (eq (len $icon) 0) }}
{{- $icon = "paperclip" }}
{{- if eq $style "info" }}{{ $icon = default "info-circle" }}{{ end }}
{{- if eq $style "warning" }}{{ $icon = default "exclamation-triangle" }}{{ end }}
{{- if eq $style "note" }}{{ $icon = default "exclamation-circle" }}{{ end }}
{{- if eq $style "tip" }}{{ $icon = default "lightbulb" }}{{ end }}
{{- end }}
{{- $icon = trim $icon " " }}
{{- if and $icon (not (findRE ".*?\\bfa-\\w.*?" $icon)) }}
{{- $icon = printf "fa-fw fas fa-%s" $icon }}
{{- end }}
{{- $sort := .sort | default "asc" }}
{{- $pattern := .pattern | default "" }}
2023-07-27 14:14:55 +00:00
{{- $defaultUrlPrefix := strings.TrimRight "/" $page.RelPermalink }}
2023-03-14 20:16:42 +00:00
{{- if .IsTranslated -}}
2023-07-27 14:14:55 +00:00
{{- $defaultLanguage := (index $page.Site.Home.AllTranslations 0).Lang }}
{{- $defaultLanguagePage := index (where $page.AllTranslations "Language.Lang" $defaultLanguage) 0 }}
2023-03-14 20:16:42 +00:00
{{- $defaultUrlPrefix = strings.TrimRight "/" $defaultLanguagePage.RelPermalink }}
{{- end }}
2023-07-27 14:14:55 +00:00
{{- $urlPrefix := strings.TrimRight "/" $page.RelPermalink }}
{{- with $page }}
2023-06-09 21:42:03 +00:00
{{- if ne .BundleType "leaf" }}
{{- if or (and (eq $major 0) (ge $minor 112)) (gt $major 0) }}
2023-07-27 14:14:55 +00:00
{{- warnf "%q: UNSUPPORTED usage of 'attachments' shortcode found while using Hugo >= 0.112.0, use a leaf bundle instead; see https://mcshelby.github.io/hugo-theme-relearn/shortcodes/attachments/index.html#single-language" $page.File.Path }}
2023-06-09 21:42:03 +00:00
{{- else }}
2023-07-27 14:14:55 +00:00
{{- warnf "%q: DEPRECATED usage of 'attachments' shortcode found which will not be compatible while using Hugo >= 0.112.0, use a leaf bundle instead; see https://mcshelby.github.io/hugo-theme-relearn/shortcodes/attachments/index.html#single-language" $page.File.Path }}
2023-06-09 21:42:03 +00:00
{{- end }}
{{- end }}
2023-01-23 21:35:43 +00:00
< div class = "box attachments cstyle {{ $style }}" { { if $ color } } style = "--VARIABLE-BOX-color: {{ $color }};" { { end } } >
2023-06-03 11:14:15 +00:00
< div class = "box-label" > {{ if $icon }}< i class = "{{ $icon }}" > < / i > {{ end }}{{ if and $icon $title }} {{ end }}{{ $title | .RenderString }}< / div >
2022-06-22 18:32:18 +00:00
< ul class = "box-content attachments-files" >
2023-05-25 10:40:48 +00:00
{{- $fileDir := "" }}
{{- if or (and (eq $major 0) (ge $minor 112)) (gt $major 0) }}
{{- $fileDir = path.Dir (strings.TrimPrefix (path.Clean hugo.WorkingDir) (path.Clean .File.Filename)) }}
{{- else }}
{{- $fileDir = printf "%s/%s" (path.Clean (.Language.ContentDir | default "content")) (path.Clean .File.Dir) }}
{{- end }}
{{- $fileDir = printf "%s/" (path.Clean (strings.TrimPrefix "/" $fileDir)) }}
{{- $fileLink := $fileDir }}
2023-05-29 10:46:48 +00:00
{{- $fileLink = strings.TrimPrefix "content/" $fileLink }}
2023-05-18 12:01:50 +00:00
{{- $filesName := printf "%s.files" .File.BaseFileName }}
{{- if and (eq .File.BaseFileName "index") (fileExists (printf "%sfiles" $fileDir)) }}
2022-12-23 02:23:33 +00:00
{{- $c := "" }}{{/* backward compat to < 5.9.0 behavior * / } }
{{- $filesName = "files" }}
{{- end }}
{{- $dir := printf "%s%s" $fileDir $filesName }}
2023-02-19 21:00:09 +00:00
{{- if fileExists $dir }}
{{- range sort (readDir $dir) "Name" $sort }}
{{- if findRE $pattern .Name}}
{{- $size := .Size }}
{{- $unit := "Byte-symbol" }}
{{- if ge $size 1024 }}
{{- $size = div $size 1024 }}
{{- $unit = "Kilobyte-symbol" }}
{{- end }}
{{- if ge $size 1024 }}
{{- $size = div $size 1024 }}
{{- $unit = "Megabyte-symbol" }}
{{- end }}
{{- $unitsymbol := $unit | T }}
{{- $link := (printf "%s%s/%s" $fileLink $filesName .Name) | relLangURL }}
{{- $c := "" }}{{/* Hugo stores the attachments always in the default language subdirectory */}}
{{- $link = replace $link $urlPrefix $defaultUrlPrefix 1 }}
< li > < a href = "{{ $link }}" > {{.Name}}< / a > ({{$size}} {{$unitsymbol}})< / li >
2022-06-22 18:32:18 +00:00
{{- end }}
{{- end }}
{{- end }}
< / ul >
{{- $content }}
< / div >
2023-01-22 20:52:54 +00:00
{{- end }}