This commit is contained in:
Ben Goldsworthy 2023-01-29 13:50:16 -05:00
parent ad769e95d8
commit 9e8626d8ba
21 changed files with 2767 additions and 1523 deletions

View file

@ -0,0 +1,10 @@
---
{{ partial "archetypes/base-meta.md" . -}}
{{ partial "archetypes/base-resources.md" . -}}
{{ partial "archetypes/base-taxonomies.md" . -}}
categories:
-
---

View file

@ -0,0 +1,11 @@
---
{{ partial "archetypes/base-meta.md" . -}}
author:
published_in:
{{ partial "archetypes/base-resources.md" . -}}
external_links:
-
{{ partial "archetypes/base-taxonomies.md" . -}}
---

View file

@ -0,0 +1,11 @@
---
{{ partial "archetypes/base-meta.md" . -}}
{{ partial "archetypes/base-resources.md" . -}}
# Taxonomies
locations:
-
tags:
-
---

View file

@ -0,0 +1,8 @@
---
{{ partial "archetypes/base-meta.md" . -}}
expires_on:
{{ partial "archetypes/base-resources.md" . -}}
{{ partial "archetypes/base-taxonomies.md" . }}
---

11
archetypes/cv/roles.md Normal file
View file

@ -0,0 +1,11 @@
---
{{ partial "archetypes/base-meta.md" . -}}
end_date:
paid:
{{ partial "archetypes/base-resources.md" . -}}
{{ partial "archetypes/base-taxonomies.md" . -}}
socs:
-
---

View file

@ -0,0 +1,8 @@
---
{{ partial "archetypes/base-meta.md" . -}}
{{ partial "archetypes/base-resources.md" . -}}
{{ partial "archetypes/base-taxonomies.md" . -}}
---

View file

@ -0,0 +1,11 @@
---
{{ partial "archetypes/base-meta.md" . -}}
published_in:
{{ partial "archetypes/base-resources.md" . -}}
external_links:
- title: Recording
link:
{{ partial "archetypes/base-taxonomies.md" . -}}
---

View file

@ -0,0 +1,12 @@
---
{{ partial "archetypes/base-meta.md" . -}}
version: 0.0.1
licence:
{{ partial "archetypes/base-resources.md" . -}}
internal_links:
- title: Code repository
link: {{ .Site.Params.codeURL }}/Rumperuu/{{ .Name | title }}
{{ partial "archetypes/base-taxonomies.md" . -}}
---

View file

@ -0,0 +1,15 @@
---
{{ partial "archetypes/base-meta.md" . -}}
version: 0.0.1
licence:
{{ partial "archetypes/base-resources.md" . -}}
internal_links:
- title: Code repository
link: {{ .Site.Params.codeURL }}/Rumperuu/{{ .Name | title }}
external_links:
- title: Web site
link:
{{ partial "archetypes/base-taxonomies.md" . -}}
---

File diff suppressed because it is too large Load diff

View file

@ -1,27 +1,29 @@
google.charts.load('current', {'packages':['timeline']}); google.charts.load('current', {'packages':['timeline']});
google.charts.setOnLoadCallback(drawChart); google.charts.setOnLoadCallback(drawChart);
function drawChart() { function drawChart() {
var container = document.getElementById('timeline'); var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container); var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();dataTable.addColumn({ type: 'string', id: 'Type' }); var dataTable = new google.visualization.DataTable();dataTable.addColumn({ type: 'string', id: 'Type' });
dataTable.addColumn({ type: 'string', id: 'Job Title' }); dataTable.addColumn({ type: 'string', id: 'Job Title' });
dataTable.addColumn({ type: 'string', id: 'style', role: 'style' }); dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
dataTable.addColumn({ type: 'date', id: 'Start' }); dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' }); dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([ dataTable.addRows([
[ [
"Morecambe Net", "Morecambe Net",
"Web Developer", "Web Developer",
"#BCBC7E", "#BCBC7E",
new Date("2022-10-26"), new Date("2022-10-26"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Chartered Institute for Information Security", "Chartered Institute for Information Security",
"Associate Member", "Associate Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-08-09"), new Date("2022-08-09"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"West Lancs Scouts Active Support", "West Lancs Scouts Active Support",
@ -35,112 +37,112 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Computer Arts Society", "Computer Arts Society",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Computer Conservation Society", "Computer Conservation Society",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Consultancy Specialist Group", "Consultancy Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Enterprise Architecture Specialist Group", "Enterprise Architecture Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Green IT Specialist Group", "Green IT Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Health & Care Specialist Group", "Health & Care Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Internet Specialist Group", "Internet Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Information Risk Management and Assurance Specialist Group", "Information Risk Management and Assurance Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Information Security Specialist Group", "Information Security Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"IT Ethics Specialist Group", "IT Ethics Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Law Specialist Group", "Law Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"BCS Nottingham & Derby Branch", "BCS Nottingham & Derby Branch",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Open Source Specialist Group", "Open Source Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Sociotechnical Specialist Group", "Sociotechnical Specialist Group",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"BCS, the Chartered Institute for IT", "BCS, the Chartered Institute for IT",
"Professional Member", "Professional Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-06-06"), new Date("2022-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Chartered Institute for Information Security", "Chartered Institute for Information Security",
@ -161,7 +163,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Student Member", "Student Member",
"#BBBBB0", "#BBBBB0",
new Date("2022-05-26"), new Date("2022-05-26"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"MORS Cyber CoP", "MORS Cyber CoP",
@ -185,10 +187,10 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
new Date("2022-07-14") new Date("2022-07-14")
], ],
[ [
"Republic", "Actica Consulting",
"Member", "Mental Health First Aider",
"#FFFFF0", "#FCFCA6",
new Date("2022-01-22"), new Date("2022-03-17"),
new Date("2022-07-31") new Date("2022-07-31")
], ],
[ [
@ -203,7 +205,14 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Supporter", "Supporter",
"#BBBBB0", "#BBBBB0",
new Date("2022-01-14"), new Date("2022-01-14"),
new Date("2022-11-10") new Date("2023-01-29")
],
[
"Actica Consulting",
"MHFA Champion",
"#FCFCA6",
new Date("2022-01-08"),
new Date("2022-03-17")
], ],
[ [
"Tech Network", "Tech Network",
@ -252,14 +261,14 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2021-09-24"), new Date("2021-09-24"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Mountain Training Association", "Mountain Training Association",
"Trainee Member", "Trainee Member",
"#BBBBB0", "#BBBBB0",
new Date("2021-08-24"), new Date("2021-08-24"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"North West Area Meeting", "North West Area Meeting",
@ -273,7 +282,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2021-07-26"), new Date("2021-07-26"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Lancaster Quaker Meeting", "Lancaster Quaker Meeting",
@ -306,7 +315,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
[ [
"Employment & Recruitment Service, Greater Manchester Cyber Foundry", "Employment & Recruitment Service, Greater Manchester Cyber Foundry",
"Analyst Developer", "Analyst Developer",
"#FFFFF0", "#FCFCA6",
new Date("2021-03-15"), new Date("2021-03-15"),
new Date("2021-04-25") new Date("2021-04-25")
], ],
@ -329,7 +338,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Participant", "Participant",
"#BBBBB0", "#BBBBB0",
new Date("2021-01-23"), new Date("2021-01-23"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"footnotes", "footnotes",
@ -364,7 +373,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2020-09-29"), new Date("2020-09-29"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Executive Committee", "Executive Committee",
@ -385,7 +394,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Website Content Manager", "Website Content Manager",
"#BBBBB0", "#BBBBB0",
new Date("2020-08-31"), new Date("2020-08-31"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Unity2020", "Unity2020",
@ -539,14 +548,14 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Associate Member", "Associate Member",
"#BBBBB0", "#BBBBB0",
new Date("2019-04-01"), new Date("2019-04-01"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Youth Hostel Association", "Youth Hostel Association",
"Company Member", "Company Member",
"#BBBBB0", "#BBBBB0",
new Date("2019-02-20"), new Date("2019-02-20"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Friends of Lancaster Library", "Friends of Lancaster Library",
@ -728,14 +737,14 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2018-06-20"), new Date("2018-06-20"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"UK England Chapter", "UK England Chapter",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2018-06-13"), new Date("2018-06-13"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Community Networks SIG", "Community Networks SIG",
@ -749,14 +758,14 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2018-06-06"), new Date("2018-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Internet Society", "Internet Society",
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2018-06-04"), new Date("2018-06-04"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Mitigate Cyber", "Mitigate Cyber",
@ -945,7 +954,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2017-06-06"), new Date("2017-06-06"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Lonsdale District Scout Network, Scout Network", "Lonsdale District Scout Network, Scout Network",
@ -1008,7 +1017,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Member", "Member",
"#BBBBB0", "#BBBBB0",
new Date("2016-12-19"), new Date("2016-12-19"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Pendle College, Lancaster University Students' Union", "Pendle College, Lancaster University Students' Union",
@ -1379,7 +1388,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Librarian", "Librarian",
"#BBBBB0", "#BBBBB0",
new Date("2013-05-01"), new Date("2013-05-01"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Patient Participation Group", "Patient Participation Group",
@ -1435,7 +1444,7 @@ dataTable.addColumn({ type: 'string', id: 'Job Title' });
"Minister", "Minister",
"#BBBBB0", "#BBBBB0",
new Date("2012-01-01"), new Date("2012-01-01"),
new Date("2022-11-10") new Date("2023-01-29")
], ],
[ [
"Salvation Army", "Salvation Army",

View file

@ -40,7 +40,13 @@
{{- block "footer" . -}} {{- block "footer" . -}}
<footer class="site-footer"> <footer class="site-footer">
<p>By <a href="/">{{ $.Site.Author.name }}</a> | <a href="{{ $.Site.Params.reportIssueURL }}" target="_blank" rel="noopener noreferrer">Report an Issue</a> | <a href="/privacy-policy">Privacy Policy</a> | <a href="/{{ .Sitemap.Filename }}">Sitemap</a> | Built: {{ now.Format "2006-01-02T15:04:05" }}</p> <p>
By <a href="/">{{ $.Site.Author.name }}</a> |
<a href="{{ $.Site.Params.reportIssueURL }}" target="_blank" rel="noopener noreferrer">Report an Issue</a> |
<a href="{{ relref . "privacy-policy" }}">Privacy Policy</a> |
<a href="/{{ .Sitemap.Filename }}">Sitemap</a> |
Built: {{ now.Format "2006-01-02T15:04:05" }}
</p>
{{ block "footer-scripts" . }}<!-- -->{{ end }} {{ block "footer-scripts" . }}<!-- -->{{ end }}
</footer> </footer>
{{- end -}} {{- end -}}

View file

@ -44,6 +44,10 @@
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script src="/js/mathjax-config.js"></script> <script src="/js/mathjax-config.js"></script>
{{ end }} {{ end }}
{{ if in . "charts" }}
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="js/charts.js"></script>
{{ end }}
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -90,8 +90,17 @@
{{ end }} {{ end }}
{{ if eq .Type "cv" }} {{ if eq .Type "cv" }}
<aside class="timeline__legend"> <aside class="timeline__legend">
<span><div class="colour-square colour-square--current"></div> <p>Current</p></span> <label for="legend__past">Past</label>
<span><div class="colour-square colour-square--past"></div> <p>Past</p></span> <div id="legend__past">
<span><div class="colour-square colour-square--unpaid-past"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-past"></div> <p>Paid</p></span>
</div>
<br>
<label for="legend__current">Current</label>
<div id="legend__current">
<span><div class="colour-square colour-square--unpaid-current"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-current"></div> <p>Paid</p></span>
</div>
</aside> </aside>
{{ end }} {{ end }}
</header> </header>
@ -114,8 +123,17 @@
<section id="roles-timelimne"> <section id="roles-timelimne">
<aside class="timeline__legend"> <aside class="timeline__legend">
<span><div class="colour-square colour-square--current"></div> <p>Current</p></span> <label for="legend__past">Past</label>
<span><div class="colour-square colour-square--past"></div> <p>Past</p></span> <div id="legend__past">
<span><div class="colour-square colour-square--unpaid-past"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-past"></div> <p>Paid</p></span>
</div>
<br>
<label for="legend__current">Current</label>
<div id="legend__current">
<span><div class="colour-square colour-square--unpaid-current"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-current"></div> <p>Paid</p></span>
</div>
</aside> </aside>
<div id="timeline" aria-label="Role Time" role="img">Javascript must be enabled to view this chart.</div> <div id="timeline" aria-label="Role Time" role="img">Javascript must be enabled to view this chart.</div>
</section> </section>

View file

@ -113,8 +113,17 @@
{{ end }} {{ end }}
{{ if eq .Type "cv" }} {{ if eq .Type "cv" }}
<aside class="timeline__legend"> <aside class="timeline__legend">
<span><div class="colour-square colour-square--current"></div> <p>Current</p></span> <label for="legend__past">Past</label>
<span><div class="colour-square colour-square--past"></div> <p>Past</p></span> <div id="legend__past">
<span><div class="colour-square colour-square--unpaid-past"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-past"></div> <p>Paid</p></span>
</div>
<br>
<label for="legend__current">Current</label>
<div id="legend__current">
<span><div class="colour-square colour-square--unpaid-current"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-current"></div> <p>Paid</p></span>
</div>
</aside> </aside>
{{ end }} {{ end }}
</header> </header>
@ -137,8 +146,17 @@
<section id="roles-timeline"> <section id="roles-timeline">
<aside class="timeline__legend"> <aside class="timeline__legend">
<span><div class="colour-square colour-square--current"></div> <p>Current</p></span> <label for="legend__past">Past</label>
<span><div class="colour-square colour-square--past"></div> <p>Past</p></span> <div id="legend__past">
<span><div class="colour-square colour-square--unpaid-past"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-past"></div> <p>Paid</p></span>
</div>
<br>
<label for="legend__current">Current</label>
<div id="legend__current">
<span><div class="colour-square colour-square--unpaid-current"></div> <p>Unpaid</p></span>
<span><div class="colour-square colour-square--paid-current"></div> <p>Paid</p></span>
</div>
</aside> </aside>
<div id="timeline" aria-label="Role Time" role="img">Javascript must be enabled to view this chart.</div> <div id="timeline" aria-label="Role Time" role="img">Javascript must be enabled to view this chart.</div>
</section> </section>

View file

@ -0,0 +1,6 @@
# Meta
title: "{{ replace .Name "-" " " | title }}"
subtitle:
summary:
date: {{ .Date }}
draft: true

View file

@ -0,0 +1,8 @@
# Resources
featured_image: {{ .Name }}
resources:
- name: {{ .Name }}
alt:
src: images/{{ .Name }}.*
params:
attr:

View file

@ -0,0 +1,13 @@
# Taxonomies
organisations:
-
locations:
-
colleagues:
-
areas:
-
skills:
-
tags:
-

View file

@ -42,6 +42,17 @@
</section> </section>
{{- end -}} {{- end -}}
{{- if .GetTerms "areas" -}}
<section class="article-footer__links">
<h2 id="item-areas-title">Areas</h2>
<ul>
{{- range ( .GetTerms "areas" ).ByTitle -}}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{- end -}}
</ul>
</section>
{{- end -}}
{{- if .GetTerms "organisations" -}} {{- if .GetTerms "organisations" -}}
<section id="post-organisations" class="article-footer__organisations" aria-labelledby="post-organisations-title"> <section id="post-organisations" class="article-footer__organisations" aria-labelledby="post-organisations-title">
<h2 id="post-organisations-title">Organisations</h2> <h2 id="post-organisations-title">Organisations</h2>

View file

@ -1,44 +1,63 @@
{{ $img := $.Page.Resources.GetMatch (.Get "src") }} {{ $src := $.Page.Resources.GetMatch (.Get "src") }}
{{ $file := $.Page.Resources.GetMatch (.Get "link") }} {{ $link := $.Page.Resources.GetMatch (.Get "link") }}
<figure{{ with .Get "class" }} class="{{ . }}"{{ end }}> <figure{{ with .Get "class" }} class="{{ . }}"{{ end }}>
{{- if .Get "link" -}} {{- if .Get "link" -}}
{{- if $file }} {{- if $link }}
<a href="{{ $file.RelPermalink }}"{{ with .Get "rel" }} rel="{{ . }}"{{ end }}> <a href="{{ $link.RelPermalink }}"{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
{{ else }} {{ else }}
<a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}> <a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
{{ end }} {{ end }}
{{- end -}} {{- end -}}
{{ if $img }}
{{- if eq $src.ResourceType "image" -}}
<picture class="figure__picture">
<img class="figure__image" <img class="figure__image"
{{ with $img.Resize (printf "%dx%d webp" $img.Width $img.Height) }} {{ with $src.Resize (printf "%dx%d webp" $src.Width $src.Height) }}
src="{{ .RelPermalink }}" src="{{ .RelPermalink }}"
{{ end }} {{ end }}
{{- if or ($img.Params.alt) (.Get "caption") }} {{- if or ($src.Params.alt) (.Get "caption") }}
alt="{{ with $img.Params.alt }}{{ . }}{{ else }}{{ .Get "caption" | markdownify| plainify }}{{ end }}" alt="{{ with $src.Params.alt }}{{ . }}{{ else }}{{ .Get "caption" | markdownify| plainify }}{{ end }}"
{{- end -}} {{- end -}}
{{- with $img.Params.title }} title="{{ . }}"{{ end -}} {{- with $src.Params.title }} title="{{ . }}"{{ end -}}
width="{{ $img.Width }}" width="{{ $src.Width }}"
height="{{ $img.Height }}" height="{{ $src.Height }}"
/> />
{{ end }} </picture>
{{- else if eq $src.ResourceType "video" -}}
{{- if eq $src.MediaType "video/ogg" -}}
<audio controls>
<source src="{{ $src.RelPermalink }}" type="{{ $src.MediaType }}" />
<p>Your browser doesn't support embedded audio, but you can view the audio <a href="{{ $src.RelPermalink }}">here</a>.</p>
</audio>
{{- else -}}
<video class="figure__video"
controls
src="{{ $src.RelPermalink }}"
poster="{{ if $src.Params.poster }}{{ .Get $src.Params.poster }}{{ else }}{{ warnf "No poster defined for resource %q" $src.RelPermalink }}{{ end }}"
>
Your browser doesn't support embedded video, but you can view the video <a href="{{ $src.RelPermalink }}">here</a>.
</video>
{{- end -}}
{{- else if or ( ne $src.ResourceType "image" ) ( ne $src.ResourceType "video" ) -}}
{{- errorf "No handling for resource of type %q" $src.ResourceType -}}
{{- end -}}
{{- if .Get "link" }}</a>{{ end -}} {{- if .Get "link" }}</a>{{ end -}}
{{- if or (.Get "caption") ($img.Params.attr) -}}
{{- if or (.Get "caption") ($src.Params.attr) -}}
<figcaption class="figure__caption{{ if not (.Get "caption") }} figure__caption--no-height{{ end }}"> <figcaption class="figure__caption{{ if not (.Get "caption") }} figure__caption--no-height{{ end }}">
{{- if $img.Params.attrlink -}} {{- if $src.Params.attrlink -}}
<a class="figcaption__attrlink" href="{{ $img.Params.attrlink }}" <a class="figcaption__attrlink" href="{{ $src.Params.attrlink }}"
{{- with $img.Params.attrtarget }} target="{{ . }}"{{ end -}} {{- with $src.Params.attrtarget }} target="{{ . }}"{{ end -}}
{{- with $img.Params.attrrel }} rel="{{ . }}"{{ end -}} {{- with $src.Params.attrrel }} rel="{{ . }}"{{ end -}}
> >
{{- end -}} {{- end -}}
{{- with $img.Params.attr -}}<p class="figcaption__attr">{{ . | safeHTML }}{{ with $img.Params.attrlicence }} <span class="figcaption__licence">{{ . | safeHTML }}</span>{{ end }}</p>{{- end -}} {{- with $src.Params.attr -}}<p class="figcaption__attr">{{ . | safeHTML }}{{ with $src.Params.attrlicence }} <span class="figcaption__licence">{{ . | safeHTML }}</span>{{ end }}</p>{{- end -}}
{{- if $img.Params.attrlink -}} {{- if $src.Params.attrlink -}}
</a> </a>
{{- end -}} {{- end -}}
{{- with $img.Params.title -}}<h4 class="figcaption__title">{{ . }}</h4>{{- end -}} {{- with $src.Params.title -}}<h4 class="figcaption__title">{{ . }}</h4>{{- end -}}
{{- if .Get "caption" -}} {{- with .Get "caption" -}}<p class="figcaption__caption">{{ . | markdownify }}</p>{{- end -}}
<p class="figcaption__caption">{{ .Get "caption" | markdownify }}</p>
{{- end -}}
</figcaption> </figcaption>
{{- end -}} {{- end -}}
</figure> </figure>

View file

@ -0,0 +1,30 @@
<!-- 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" | relURL }} />{{ end }}
{{- $.Page.Scratch.Add "figurecount" 1 }}
{{ $baseURL := .Site.BaseURL }}
<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 "content/" $.Page.File.Dir . ) }}
{{- range $files -}}
<!-- skip files that aren't images, or that include the thumb suffix in their name -->
{{- $isimg := lower .Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp|webp|avif|jxl)" }}<!-- is the current file an image? -->
{{- if $isimg }}
{{- $caption := .Name | replaceRE "\\..*" "" | humanize }}<!-- humanized filename without extension -->
{{- $linkURL := print $.Page.Permalink ($.Get "dir") "/" .Name | absURL }}<!-- absolute URL to hi-res image -->
<div class="box">
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<div class="img" style="background-image: url('{{ $linkURL }}');" >
<img itemprop="thumbnail" src="{{ $linkURL }}" alt="{{ $caption }}" /><!-- <img> hidden if in .gallery -->
</div>
<a href="{{ $linkURL }}" 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>