feat: migrate Audio shortcode to use assets/media/

Also support page dir asset or URL
This commit is contained in:
George Cushen committed 2021-03-08 21:22:08 +00:00
1 parent bd11c2663b
commit e14c68cb6d
1 file changed
+21 -18
+21 -18
View File
@@ -1,26 +1,29 @@
{{/* Enable audio to be loaded from local page dir or media library at `static/media/`. */}}
{{/* Audio Shortcode for Wowchemy. */}}
{{/* Load audio from page dir falling back to media library at `assets/media/` and then to remote URI. */}}
{{/* Supports primarily MP3 and MP4. */}}
{{ $path := "" }}
{{ $root_dir := "" }}
{{ $media_dir := site.Params.media_dir | default "media" }}
{{ if .Get "library" }}
{{ $path = printf "%s/" $media_dir }}
{{ $root_dir = "static/" }}
{{ $destination := .Get "src" }}
{{ $is_remote := strings.HasPrefix $destination "http" }}
{{- $asset := "" -}}
{{- if not $is_remote -}}
{{- $asset = (.Page.Resources.ByType "image").GetMatch $destination -}}
{{- if not $asset -}}
{{- $asset = resources.Get (path.Join "media" $destination) -}}
{{- end -}}
{{- end -}}
{{ if $asset }}
{{ $destination = $asset.RelPermalink }}
{{ else }}
{{ $destination = $destination | safeURL }}
{{ end }}
{{ $audio := printf "%s%s" $path (.Get "src") }}
{{ $audio_type := strings.TrimPrefix "." (path.Ext (.Get "src")) | lower }}
{{ $audio_type := strings.TrimPrefix "." (path.Ext $destination) | lower }}
{{/* Set MP3 mime type to mpeg. */}}
{{ $audio_type = replace $audio_type "mp3" "mpeg" }}
{{ if .Get "library" }}
{{ $audio = $audio | relURL }}
{{ end }}
{{ if $audio }}
<audio controls {{ with (.Get "id") }}id="audio-{{.|urlize}}"{{end}}>
<source src="{{$audio}}" type="audio/{{$audio_type}}">
</audio>
{{ end }}
<audio controls {{ with (.Get "id") }}id="audio-{{.|anchorize}}"{{end}}>
<source src="{{$destination}}" type="audio/{{$audio_type}}">
</audio>