fix gallery
This commit is contained in:
		| @@ -75,3 +75,16 @@ | ||||
| {{ "<!-- Main Script -->" | safeHTML }} | ||||
| {{ $script := resources.Get "js/script.js" | minify}} | ||||
| <script src="{{ $script.Permalink }}"></script> | ||||
|  | ||||
| <!-- Load PhotoSwipe js if the load-photoswipe shortcode has been used --> | ||||
| {{ if ($.Scratch.Get "photoswipeloaded") }} | ||||
| <script src="/js/load-photoswipe.js"></script> | ||||
| 	{{ if .Site.Params.CDNJS }} | ||||
| 		<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js" integrity="sha256-ePwmChbbvXbsO02lbM3HoHbSHTHFAeChekF1xKJdleo=" crossorigin="anonymous"></script> | ||||
| 		<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe-ui-default.min.js" integrity="sha256-UKkzOn/w1mBxRmLLGrSeyB4e1xbrp4xylgAWb3M42pU=" crossorigin="anonymous"></script> | ||||
| 	{{- else -}} | ||||
| 		<script src="{{ "/js/3p/photoswipe.min@4.1.3.js" | relURL }}"></script> | ||||
| 		<script src="{{ "/js/3p/photoswipe-ui-default.min@4.1.3.js" | relURL }}"></script> | ||||
| 	{{ end }} | ||||
|  | ||||
| {{ end }} | ||||
|   | ||||
| @@ -4,7 +4,7 @@ NB this overrides Hugo's built-in "figure" shortcode but is backwards compatible | ||||
| Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/ | ||||
| --> | ||||
| <!-- count how many times we've called this shortcode; load the css if it's the first time --> | ||||
| {{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href="/css/hugo-easy-gallery.css" />{{ end }} | ||||
| {{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href={{ "css/hugo-easy-gallery.css" | relURL }} />{{ end }} | ||||
| {{- $.Page.Scratch.Add "figurecount" 1 -}} | ||||
| <!-- use either src or link-thumb for thumbnail image --> | ||||
| {{- $thumb := .Get "src" | default (printf "%s." (.Get "thumb") | replace (.Get "link") ".") }} | ||||
| @@ -13,7 +13,7 @@ Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/ | ||||
|     <div class="img"{{ if .Parent }} style="background-image: url('{{ $thumb | relURL }}');"{{ end }}{{ with .Get "size" }} data-size="{{.}}"{{ end }}> | ||||
|       <img itemprop="thumbnail" src="{{ $thumb | relURL }}" {{ with .Get "alt" | default (.Get "caption") }}alt="{{.}}"{{ end }}/><!-- <img> hidden if in .gallery --> | ||||
|     </div> | ||||
|     {{ with .Get "link" | default (.Get "src") }}<a href="{{.}}" itemprop="contentUrl"></a>{{ end }} | ||||
|     {{ with .Get "link" | default (.Get "src") }}<a href="{{ . | relURL }}" itemprop="contentUrl"></a>{{ end }} | ||||
|     {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr")}} | ||||
|       <figcaption> | ||||
|         {{- with .Get "title" }}<h4>{{.}}</h4>{{ end }} | ||||
|   | ||||
| @@ -3,36 +3,62 @@ Put this file in /layouts/shortcodes/gallery.html | ||||
| Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/ | ||||
| --> | ||||
| <!-- count how many times we've called this shortcode; load the css if it's the first time --> | ||||
| {{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href="/css/hugo-easy-gallery.css" />{{ end }} | ||||
| {{- if not ($.Page.Scratch.Get "figurecount") }}<link rel="stylesheet" href="{{ relURL "/css/hugo-easy-gallery.css" }}" />{{ end }} | ||||
| {{- $.Page.Scratch.Add "figurecount" 1 }} | ||||
| {{ $baseURL := .Site.BaseURL }} | ||||
| {{- $thumbnailSize := .Get "thumbnail-size" | default "300x300" -}} | ||||
| <div class="gallery caption-position-{{ with .Get "caption-position" | default "bottom" }}{{.}}{{end}} caption-effect-{{ with .Get "caption-effect" | default "slide" }}{{.}}{{end}} hover-effect-{{ with .Get "hover-effect" | default "zoom" }}{{.}}{{end}} {{ if ne (.Get "hover-transition") "none" }}hover-transition{{end}}" itemscope itemtype="http://schema.org/ImageGallery"> | ||||
| 	{{- with (.Get "dir") -}} | ||||
| 		<!-- If a directory was specified, generate figures for all of the images in the directory --> | ||||
| 		{{- $files := readDir (print "/static/" .) }} | ||||
| 		{{- range $files -}} | ||||
| 			<!-- skip files that aren't images, or that inlcude the thumb suffix in their name --> | ||||
| 			{{- $thumbext := $.Get "thumb" | default "-thumb" }} | ||||
| 			{{- $isthumb := .Name | findRE ($thumbext | printf "%s\\.") }}<!-- is the current file a thumbnail image? --> | ||||
| 			{{- $isimg := lower .Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp)" }}<!-- is the current file an image? --> | ||||
| 			{{- if and $isimg (not $isthumb) }} | ||||
| 				{{- $caption :=  .Name | replaceRE "\\..*" "" | humanize }}<!-- humanized filename without extension --> | ||||
| 				{{- $linkURL := print $baseURL ($.Get "dir") "/" .Name | absURL }}<!-- absolute URL to hi-res image --> | ||||
| 				{{- $thumb := .Name | replaceRE "(\\.)" ($thumbext | printf "%s.") }}<!-- filename of thumbnail image --> | ||||
| 				{{- $thumbexists := where $files "Name" $thumb }}<!-- does a thumbnail image exist? --> | ||||
| 				{{- $thumbURL := print $baseURL ($.Get "dir") "/" $thumb | absURL }}<!-- absolute URL to thumbnail image --> | ||||
|   {{- with (.Get "dir") -}} | ||||
|     <!-- If a directory was specified, generate figures for all of the images in the directory --> | ||||
|     {{- $files := readDir (print "/static/" .) }} | ||||
|     {{- range $files -}} | ||||
|       <!-- skip files that aren't images, or that inlcude the thumb suffix in their name --> | ||||
|       {{- $thumbext := $.Get "thumb" | default "-thumb" }} | ||||
|       {{- $isthumb := .Name | findRE ($thumbext | printf "%s\\.") }}<!-- is the current file a thumbnail image? --> | ||||
| 	  {{- $isimg := lower .Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp|webp|avif|jxl)" }}<!-- is the current file an image? --> | ||||
|       {{- if and $isimg (not $isthumb) }} | ||||
|         {{- $caption :=  .Name | replaceRE "\\..*" "" | humanize }}<!-- humanized filename without extension --> | ||||
|         {{- $linkURL := print $baseURL ($.Get "dir") "/" .Name | absURL }}<!-- absolute URL to hi-res image --> | ||||
|         {{- $filetype := index (findRE "[^.]+$" .Name ) 0 }}<!-- file extension of image --> | ||||
| 		{{- $thumb := .Name | replaceRE "(\\.)" ($thumbext | printf "%s.") }}<!-- filename of thumbnail image --> | ||||
|         {{- $thumbexists := where $files "Name" $thumb }}<!-- does a thumbnail image exist? --> | ||||
|         {{- $thumbURL := print $baseURL ($.Get "dir") "/" $thumb | absURL }}<!-- absolute URL to thumbnail image --> | ||||
|         <div class="box"> | ||||
|           <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"> | ||||
|             <div class="img" style="background-image: url('{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}');" > | ||||
|               <img itemprop="thumbnail" src="{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}" alt="{{ $caption }}" /><!-- <img> hidden if in .gallery --> | ||||
|             </div> | ||||
|             <!-- <figcaption> | ||||
|               <p>{{ $caption }}</p> | ||||
|             </figcaption> --> | ||||
|             <a href="{{ $linkURL }}" itemprop="contentUrl"></a><!-- put <a> last so it is stacked on top --> | ||||
|           </figure> | ||||
|         </div> | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|   {{- else -}} | ||||
| 		{{ with .Inner -}} | ||||
| 			<!-- If no directory was specified, include any figure shortcodes called within the gallery --> | ||||
| 			{{ . }} | ||||
| 		{{- else }} | ||||
| 			<!-- Generate figures for all page resources of type image. --> | ||||
| 			{{- range $.Page.Resources.ByType "image" -}} | ||||
|  | ||||
| 				{{- $thumbnail := .Fill $thumbnailSize -}} | ||||
| 				<div class="box"> | ||||
| 				  <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"> | ||||
| 				    <div class="img" style="background-image: url('{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}');" > | ||||
| 				      <img itemprop="thumbnail" src="{{ if $thumbexists }}{{ $thumbURL }}{{ else }}{{ $linkURL }}{{ end }}" alt="{{ $caption }}" /><!-- <img> hidden if in .gallery --> | ||||
| 				    </div> | ||||
| 				    <a href="{{ $linkURL }}" itemprop="contentUrl"></a><!-- put <a> last so it is stacked on top --> | ||||
| 				  </figure> | ||||
| 					<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject"> | ||||
| 						<div class="img" style="background-image: url('{{ $thumbnail.RelPermalink }}');" > | ||||
| 							<img itemprop="thumbnail" src="{{ $thumbnail.RelPermalink }}" width="{{ $thumbnail.Width }}" height="{{ $thumbnail.Height }}" alt="{{ .Title }}" /><!-- <img> hidden if in .gallery --> | ||||
| 						</div> | ||||
| 						{{- with .Title -}} | ||||
| 						<!-- <figcaption> | ||||
| 							<p>{{ . }}</p> | ||||
| 						</figcaption> --> | ||||
| 						{{- end -}} | ||||
| 						<a href="{{ .RelPermalink }}" itemprop="contentUrl"></a><!-- put <a> last so it is stacked on top --> | ||||
| 					</figure> | ||||
| 				</div> | ||||
| 			{{- end }} | ||||
| 		{{- end }} | ||||
| 	{{- else -}} | ||||
| 		<!-- If no directory was specified, include any figure shortcodes called within the gallery --> | ||||
| 	  {{ .Inner }} | ||||
| 	{{- end }} | ||||
| </div> | ||||
|   | ||||
| @@ -7,19 +7,29 @@ Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/ | ||||
| {{ if not ($.Page.Scratch.Get "photoswipeloaded") }} | ||||
|   {{ $.Page.Scratch.Set "photoswipeloaded" 1 }} | ||||
|  | ||||
| <!-- | ||||
| *** jQuery must be loaded before load-photoswipe.js *** | ||||
| - If your template already loads jQuery in the header then you don't need to load it again here. | ||||
| - If your template already loads jQuery in the footer, then you could load load-photoswipe.js from the footer instead | ||||
| --> | ||||
| <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> | ||||
| <script src="/js/load-photoswipe.js"></script> | ||||
|  | ||||
| <!-- Photoswipe css/js libraries --> | ||||
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.css" integrity="sha256-sCl5PUOGMLfFYctzDW3MtRib0ctyUvI9Qsmq2wXOeBY=" crossorigin="anonymous" /> | ||||
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/default-skin/default-skin.min.css" integrity="sha256-BFeI1V+Vh1Rk37wswuOYn5lsTcaU96hGaI7OUVCLjPc=" crossorigin="anonymous" /> | ||||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.js" integrity="sha256-UplRCs9v4KXVJvVY+p+RSo5Q4ilAUXh7kpjyIP5odyc=" crossorigin="anonymous"></script> | ||||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe-ui-default.min.js" integrity="sha256-PWHOlUzc96pMc8ThwRIXPn8yH4NOLu42RQ0b9SpnpFk=" crossorigin="anonymous"></script> | ||||
| {{ if .Site.Params.CDNJS }} | ||||
|   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.css" integrity="sha256-LWdHSKWG7zv3DTpee8YAgoTfkj3gNkfauF624h4P2Nw=" crossorigin="anonymous" /> | ||||
|   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/default-skin/default-skin.min.css" iintegrity="sha256-Q9bBMw/rHRRag46GDWY84J3elDNc8JJjKXL9tIC4oe8=" crossorigin="anonymous" /> | ||||
|   <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js" integrity="sha256-ePwmChbbvXbsO02lbM3HoHbSHTHFAeChekF1xKJdleo=" crossorigin="anonymous"></script> | ||||
|   <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe-ui-default.min.js" integrity="sha256-UKkzOn/w1mBxRmLLGrSeyB4e1xbrp4xylgAWb3M42pU=" crossorigin="anonymous"></script> | ||||
| {{- else -}} | ||||
|   <link rel="stylesheet" href="{{ "/css/3p/photoswipe.min@4.1.3.css" | relURL }}"></script> | ||||
|   <link rel="stylesheet" href="{{ "/css/3p/default-skin/default-skin.min@4.1.3.css" | relURL }}"></script> | ||||
|   <script src="{{ "/js/3p/photoswipe.min@4.1.3.js" | relURL }}"></script> | ||||
|   <script src="{{ "/js/3p/photoswipe-ui-default.min@4.1.3.js" | relURL }}"></script> | ||||
| {{ end }} | ||||
|  | ||||
| <style> | ||||
|     .pswp__caption a | ||||
|   , .pswp__caption small a | ||||
|   , .pswp__caption__center a { | ||||
|       color: #CCC; | ||||
|       /* text-decoration: none; */ | ||||
|   } | ||||
| </style> | ||||
|  | ||||
| <!-- Root element of PhotoSwipe. Must have class pswp. --> | ||||
| <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user