diff --git a/layouts/shortcodes/gallery.html b/layouts/shortcodes/gallery.html
index 31d9bc9b..68a65488 100644
--- a/layouts/shortcodes/gallery.html
+++ b/layouts/shortcodes/gallery.html
@@ -1,31 +1,40 @@
-{{ $id := delimit (slice "gallery" (partial "functions/uid.html" .)) "-" }}
+{{ $id := delimit (slice "gallery" (partial "functions/uid.html" .)) "-" -}}
-
- {{ $page := .Page }}
-
- {{/* find all img tags */}}
- {{ $imgTagRegex := `
![]()
]*>` }}
- {{ $imgTags := findRE $imgTagRegex .Inner }}
- {{ $newContent := .Inner }}
-
- {{ range $imgTags }}
- {{ $imgTag := . }}
- {{/* extract src attribute */}}
- {{ $srcRegex := `src=['"]([^'"]+)['"]` }}
- {{ $srcMatches := findRESubmatch $srcRegex $imgTag }}
-
- {{ if $srcMatches }}
- {{ $srcFull := index (index $srcMatches 0) 0 }}
- {{ $src := index (index $srcMatches 0) 1 }}
-
- {{ $resource := $page.Resources.GetMatch $src }}
- {{ if $resource }}
- {{ $newSrc := printf `src="%s"` $resource.RelPermalink }}
- {{ $newImg := replace $imgTag $srcFull $newSrc }}
- {{ $newContent = replace $newContent $imgTag $newImg }}
- {{ end }}
- {{ end }}
- {{ end }}
-
- {{ $newContent | safeHTML }}
+
+ {{ $page := .Page -}}
+
+
+ {{ $imgTagRegex := `
![]()
]*>` -}}
+ {{ $imgTags := findRE $imgTagRegex .Inner -}}
+ {{ $newContent := .Inner -}}
+
+ {{ range $imgTags -}}
+ {{ $imgTag := . -}}
+
+ {{ $srcRegex := `src=['"]([^'"]+)['"]` -}}
+ {{ $srcMatches := findRESubmatch $srcRegex $imgTag -}}
+
+ {{ if $srcMatches -}}
+ {{ $srcFull := index (index $srcMatches 0) 0 -}}
+ {{ $src := index (index $srcMatches 0) 1 -}}
+
+ {{ $finalSrc := $src -}}
+ {{ $isExternalURL := or (hasPrefix $src "http://") (hasPrefix $src "https://") -}}
+
+ {{ if $isExternalURL -}}
+ {{ with resources.GetRemote $src -}}{{ $finalSrc = .RelPermalink -}}{{ end -}}
+ {{ else -}}
+ {{ with $page.Resources.GetMatch $src -}}{{ $finalSrc = .RelPermalink -}}
+ {{ else -}}
+ {{ with resources.GetMatch $src -}}{{ $finalSrc = .RelPermalink }}{{ end -}}
+ {{ end -}}
+ {{ end -}}
+
+ {{ $newSrc := printf `src="%s"` $finalSrc -}}
+ {{ $newImg := replace $imgTag $srcFull $newSrc -}}
+ {{ $newContent = replace $newContent $imgTag $newImg -}}
+ {{ end -}}
+ {{ end -}}
+
+ {{ $newContent | safeHTML -}}