use common *.baseof.html
templates
This commit is contained in:
parent
4e67efab84
commit
af68a0e22d
19 changed files with 486 additions and 408 deletions
|
@ -1,7 +1,8 @@
|
||||||
---
|
---
|
||||||
title: Blog
|
title: Blog
|
||||||
mainType: https://schema.org/Blog
|
mainType: Blog
|
||||||
itemsType: https://schema.org/BlogPosting" itemprop="blogPost
|
itemsType: BlogPosting
|
||||||
|
itemsProp: blogPost
|
||||||
cascade:
|
cascade:
|
||||||
params:
|
params:
|
||||||
images:
|
images:
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
---
|
---
|
||||||
title: CV
|
title: CV
|
||||||
|
layout: cv
|
||||||
type: cv
|
type: cv
|
||||||
---
|
---
|
||||||
|
|
||||||
This section is for things you have done in your life, e.g. jobs, roles, qualifications.
|
This section is for things you have done in your life, e.g. jobs, roles,
|
||||||
|
qualifications.
|
||||||
|
|
||||||
Click on the sections below to view more details about each experience, or filter the timeline below by using the buttons just above it.
|
Click on the sections below to view more details about each experience, or
|
||||||
|
filter the timeline below by using the buttons just above it.
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
{{- /*
|
||||||
|
Renders an organisation's roles in a timeline.
|
||||||
|
|
||||||
|
@params sc Site context.
|
||||||
|
@params pc Page context.
|
||||||
|
@params organisation_titles Post organisation titles.
|
||||||
|
*/
|
||||||
|
-}}
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "sc" ) ) -}}
|
||||||
|
{{- errorf "No site context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "pc" ) ) -}}
|
||||||
|
{{- errorf "No page context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "organisation_titles" ) ) -}}
|
||||||
|
{{- errorf "No organisation_titles defined (%q)" .pc.Page.File.Path -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $roles := slice -}}
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
{{- with ( .pc.GetPage "cv/roles" ).Pages -}}
|
||||||
|
{{- range ( where . "Params.organisations" "intersect" $.organisation_titles ) -}}
|
||||||
|
{{- if ( not ( and ( .Params.redact ) ( ne $.sc.Site.Params.redact "show" ) ) ) -}}
|
||||||
|
{{-
|
||||||
|
$roles = $roles | append (
|
||||||
|
printf `["%s", "%s", "%s", %s, %s]`
|
||||||
|
(
|
||||||
|
partialCached
|
||||||
|
"cv/organisation/get_role_organisation_string.html"
|
||||||
|
( dict "sc" $.sc "pc" . )
|
||||||
|
.
|
||||||
|
)
|
||||||
|
(
|
||||||
|
partialCached
|
||||||
|
"cv/organisation/get_role_role_string.html"
|
||||||
|
( dict "sc" $.sc "pc" . )
|
||||||
|
.
|
||||||
|
)
|
||||||
|
(
|
||||||
|
partialCached
|
||||||
|
"cv/organisation/get_role_colour.html"
|
||||||
|
( dict "end_date" .Params.end_date "is_paid" .Params.paid )
|
||||||
|
.Params.end_date .Params.paid
|
||||||
|
)
|
||||||
|
( partialCached "cv/organisation/get_role_start_date.html" .Date .Date )
|
||||||
|
( partialCached "cv/organisation/get_role_end_date.html" .Params.end_date .Params.end_date )
|
||||||
|
)
|
||||||
|
-}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- return ( delimit $roles ", ") -}}
|
|
@ -25,9 +25,9 @@
|
||||||
id="{{ .Title | urlize }}"
|
id="{{ .Title | urlize }}"
|
||||||
class="h-entry u-url link--tile"
|
class="h-entry u-url link--tile"
|
||||||
href="{{ .RelPermalink }}"
|
href="{{ .RelPermalink }}"
|
||||||
itemprop="blogPost"
|
itemprop="{{- ( $.GetPage .Section ).Params.itemsProp -}}"
|
||||||
itemscope
|
itemscope
|
||||||
itemtype="https://schema.org/BlogPosting"
|
itemtype="https://schema.org/{{- default "CreativeWork" ( $.GetPage .Section ).Params.itemsType -}}"
|
||||||
>
|
>
|
||||||
<article
|
<article
|
||||||
class="item-tile lazy {{- with .Params.site }}item-tile--{{ . }}{{ end -}}"
|
class="item-tile lazy {{- with .Params.site }}item-tile--{{ . }}{{ end -}}"
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
{{- /*
|
||||||
|
Renders a post's locations on a map.
|
||||||
|
|
||||||
|
@params sc Site context.
|
||||||
|
@params pc Page context.
|
||||||
|
@params organisation_titles Post organisation titles.
|
||||||
|
*/
|
||||||
|
-}}
|
||||||
|
|
||||||
|
<!-- Validation -->
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "sc" ) ) -}}
|
||||||
|
{{- errorf "No site context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "pc" ) ) -}}
|
||||||
|
{{- errorf "No page context passed" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ( not ( isset . "organisation_titles" ) ) -}}
|
||||||
|
{{- errorf "No organisation_titles defined" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Rendering -->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
google.charts.load('current', {'packages':['timeline']});
|
||||||
|
google.charts.setOnLoadCallback(drawChart);
|
||||||
|
|
||||||
|
function drawChart() {
|
||||||
|
var container = document.getElementById('timeline');
|
||||||
|
var chart = new google.visualization.Timeline(container);
|
||||||
|
var dataTable = new google.visualization.DataTable();
|
||||||
|
|
||||||
|
dataTable.addColumn({ type: 'string', id: 'Type' });
|
||||||
|
dataTable.addColumn({ type: 'string', id: 'Job Title' });
|
||||||
|
dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
|
||||||
|
dataTable.addColumn({ type: 'date', id: 'Start' });
|
||||||
|
dataTable.addColumn({ type: 'date', id: 'End' });
|
||||||
|
|
||||||
|
dataTable.addRows([
|
||||||
|
{{- partial "cv/organisation/get_organisation_roles_for_chart.html" ( dict "sc" .sc "pc" .pc "organisation_titles" .organisation_titles ) | safeJS -}}
|
||||||
|
]);
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
title: '{{ .pc.Title | plainify }} Roles Timeline',
|
||||||
|
height: '100%',
|
||||||
|
chartArea: {
|
||||||
|
width: '94%'
|
||||||
|
},
|
||||||
|
width: '100%',
|
||||||
|
timeline: { showBarLabels: true }
|
||||||
|
};
|
||||||
|
|
||||||
|
chart.draw(dataTable, options);
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -23,24 +23,22 @@
|
||||||
|
|
||||||
<!-- Rendering -->
|
<!-- Rendering -->
|
||||||
|
|
||||||
<script>
|
var map = L.map('map').setView([55, -3], 13);
|
||||||
var map = L.map('map').setView([55, -3], 13);
|
|
||||||
|
|
||||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||||
maxZoom: 19,
|
maxZoom: 19,
|
||||||
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
|
|
||||||
var latLons = [];
|
var latLons = [];
|
||||||
{{ $locations_leaf_nodes := partialCached "util/get_location_leaf_nodes.html" .locations_data -}}
|
{{ $locations_leaf_nodes := partialCached "util/get_location_leaf_nodes.html" .locations_data -}}
|
||||||
{{- range .locations -}}
|
{{- range .locations -}}
|
||||||
{{- with ( index $locations_leaf_nodes ( replaceRE `, [A-Z]+` "" . ) ) -}}
|
{{- with ( index $locations_leaf_nodes ( replaceRE `, [A-Z]+` "" . ) ) -}}
|
||||||
L.marker([{{ .lat }}, {{ .lon }}]).addTo(map);
|
L.marker([{{ .lat }}, {{ .lon }}]).addTo(map);
|
||||||
latLons.push([{{ .lat }}, {{ .lon }}]);
|
latLons.push([{{ .lat }}, {{ .lon }}]);
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- erroridf "missing-lat-lon" "Could not find lat-lon for %q" . -}}
|
{{- erroridf "missing-lat-lon" "Could not find lat-lon for %q" . -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
map.fitBounds(latLons);
|
map.fitBounds(latLons);
|
||||||
</script>
|
|
||||||
|
|
|
@ -43,14 +43,12 @@
|
||||||
|
|
||||||
{{ if .pc.HasShortcode "chart" }}
|
{{ if .pc.HasShortcode "chart" }}
|
||||||
{{- $configJs := ( .pc.Page.Resources.GetMatch "charts-init" | fingerprint ) -}}
|
{{- $configJs := ( .pc.Page.Resources.GetMatch "charts-init" | fingerprint ) -}}
|
||||||
<script>
|
|
||||||
{{-
|
{{-
|
||||||
(
|
(
|
||||||
partialCached
|
partialCached
|
||||||
"scripts/charts.js"
|
"scripts/charts.js"
|
||||||
$configJs
|
$configJs
|
||||||
$configJs
|
$configJs
|
||||||
) | safeJS
|
)
|
||||||
-}}
|
-}}
|
||||||
</script>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -14,11 +14,11 @@
|
||||||
{{- partialCached "head/meta.html" . -}}
|
{{- partialCached "head/meta.html" . -}}
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="{{- block "head-description" . -}}{{- $.Site.Params.description | html -}}{{- end -}}"
|
content="{{- block "head-description" . -}}{{- $.Site.Params.description | plainify -}}{{- end -}}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{{- block "title" . -}}
|
{{- block "title" . -}}
|
||||||
{{- partialCached "head/title.html" ( slice .Site.Title .Site.Params.tagline ) .Site.Title .Site.Params.tagline -}}
|
{{- partialCached "head/title.html" ( slice ( .Page.Title | plainify ) .Site.Title ) .Site.Title .Page.Title -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<!-- References -->
|
<!-- References -->
|
||||||
|
|
106
layouts/baseof.section.html
Normal file
106
layouts/baseof.section.html
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
{{ partialCached "copying.html" . }}
|
||||||
|
|
||||||
|
<html
|
||||||
|
class="h-card"
|
||||||
|
lang="en-gb"
|
||||||
|
itemscope
|
||||||
|
itemtype="https://schema.org/WebSite"
|
||||||
|
>
|
||||||
|
<head>
|
||||||
|
<!-- Meta -->
|
||||||
|
{{- partialCached "head/meta.html" . -}}
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="{{- block "head-description" . -}}{{- .Summary | plainify -}}{{- end -}}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
{{- block "title" . -}}
|
||||||
|
{{- partialCached "head/title.html" ( slice ( .Page.Title | plainify ) .Site.Title ) .Site.Title .Page.Title -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- References -->
|
||||||
|
{{- partialCached "head/references.html" ( dict "sc" $ "pc" . ) -}}
|
||||||
|
<link
|
||||||
|
rel="canonical"
|
||||||
|
href="{{- .Permalink -}}"
|
||||||
|
/>
|
||||||
|
{{- with .OutputFormats.Get "rss" -}}
|
||||||
|
<link
|
||||||
|
rel="{{ .Rel }}"
|
||||||
|
type="{{ .MediaType.Type | html }}"
|
||||||
|
href="{{ .RelPermalink }}"
|
||||||
|
title="{{ $.Site.Title | safeHTML }}"
|
||||||
|
/>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Stylesheets -->
|
||||||
|
{{- partialCached "head/stylesheets.html" . -}}
|
||||||
|
|
||||||
|
<!-- Optional Includes -->
|
||||||
|
{{- if .Param "math" -}}
|
||||||
|
{{- partialCached "head/math.html" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- block "header-scripts" . -}}<!-- -->{{- end -}}
|
||||||
|
|
||||||
|
{{- block "header-styles" . -}}<!-- -->{{- end -}}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="site-container site-container{{ block "main-class" . }} layouts-default-baseof layouts-default-baseof-section{{ end }}">
|
||||||
|
{{- block "header" . -}}
|
||||||
|
{{- partialCached "header/site-header.html" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<article
|
||||||
|
class="{{ block "article-class" . }}h-entry {{ end }} site-content site-content{{ block "main-class" . }}{{ end }}"
|
||||||
|
itemscope
|
||||||
|
itemtype="https://schema.org/{{- default "Collection" .Params.mainType -}}"
|
||||||
|
>
|
||||||
|
{{ block "main-header" . }}
|
||||||
|
<header class="site-content__header">
|
||||||
|
<h2 class="page-title">{{ .Title | safeHTML }}
|
||||||
|
{{ range .AlternativeOutputFormats -}}
|
||||||
|
<a href="{{ .RelPermalink }}" aria-label="{{ $.Title }} RSS feed">
|
||||||
|
<img class="feed-icon" alt="RSS feed" src="{{ $.Site.Params.feedIcon }}">
|
||||||
|
</a>
|
||||||
|
{{- end -}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
{{- .Content -}}
|
||||||
|
|
||||||
|
<nav class="page-header__minor-links">
|
||||||
|
{{ partial "years-list.html" . }}
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ block "main-body" . }}
|
||||||
|
{{- partial "items-grid.html" . -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ block "main-footer" . }}{{ end }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
{{- block "footer" . -}}
|
||||||
|
<footer class="site-footer">
|
||||||
|
{{-
|
||||||
|
partialCached
|
||||||
|
"footer/text.html"
|
||||||
|
( dict
|
||||||
|
"author_name" .Site.Params.Author.name
|
||||||
|
"report_issue_url" ( printf "%s%s" .Site.Params.codeURL .Site.Params.reportIssueURL )
|
||||||
|
"privacy_policy_url" ( relref . "privacy-policy" )
|
||||||
|
"sitemap_path" ( printf "/%s" .Sitemap.Filename )
|
||||||
|
"last_build_time" ( now.Format "2006-01-02T15:04:05" )
|
||||||
|
)
|
||||||
|
-}}
|
||||||
|
|
||||||
|
{{ block "footer-scripts" . }}
|
||||||
|
<script src="/js/lazy-images.js"></script>
|
||||||
|
{{ end }}
|
||||||
|
</footer>
|
||||||
|
{{- end -}}
|
||||||
|
</body>
|
||||||
|
</html>
|
138
layouts/baseof.single.html
Normal file
138
layouts/baseof.single.html
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
{{ partialCached "copying.html" . }}
|
||||||
|
|
||||||
|
<html
|
||||||
|
class="h-card"
|
||||||
|
lang="en-gb"
|
||||||
|
itemscope
|
||||||
|
itemtype="https://schema.org/Blog"
|
||||||
|
>
|
||||||
|
<head>
|
||||||
|
<!-- Meta -->
|
||||||
|
{{- partialCached "head/meta.html" . -}}
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="{{- block "head-description" . -}}{{- .Summary | plainify -}}{{- end -}}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
{{- block "title" . -}}
|
||||||
|
{{- partialCached "head/title.html" ( slice ( .Page.Title | plainify ) .Site.Title ) .Site.Title .Page.Title -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- References -->
|
||||||
|
{{- partialCached "head/references.html" ( dict "sc" $ "pc" . ) -}}
|
||||||
|
<link
|
||||||
|
rel="canonical"
|
||||||
|
href="{{- .Permalink -}}"
|
||||||
|
/>
|
||||||
|
{{- with .OutputFormats.Get "rss" -}}
|
||||||
|
<link
|
||||||
|
rel="{{ .Rel }}"
|
||||||
|
type="{{ .MediaType.Type | html }}"
|
||||||
|
href="{{ .RelPermalink }}"
|
||||||
|
title="{{ $.Site.Title | safeHTML }}"
|
||||||
|
/>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Stylesheets -->
|
||||||
|
{{- partialCached "head/stylesheets.html" . -}}
|
||||||
|
|
||||||
|
<!-- Optional Includes -->
|
||||||
|
{{- if .Param "math" -}}
|
||||||
|
{{- partialCached "head/math.html" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- block "header-scripts" . -}}
|
||||||
|
{{ with .Params.locations }}
|
||||||
|
<script
|
||||||
|
id="Map-script"
|
||||||
|
src="/js/leaflet/leaflet.js"
|
||||||
|
></script>
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- block "header-styles" . -}}
|
||||||
|
{{ with .Params.styles }}
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
type="text/css"
|
||||||
|
href="{{- ( $.Page.Resources.GetMatch "style" ).RelPermalink -}}"
|
||||||
|
/>
|
||||||
|
{{ end }}
|
||||||
|
{{ with .Params.locations }}
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="/css/leaflet/leaflet.css"
|
||||||
|
/>
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="site-container site-container {{ block "main-class" . }}layouts-default-baseof layouts-default-baseof-single{{ end }}">
|
||||||
|
{{- block "header" . -}}
|
||||||
|
{{- partialCached "header/site-header.html" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<article
|
||||||
|
class="{{ block "article-class" . }}h-entry{{ end }}site-content site-content{{ block "main-class" . }}{{ end }}"
|
||||||
|
itemscope
|
||||||
|
itemtype="https://schema.org/BlogPosting"
|
||||||
|
>
|
||||||
|
{{ block "main-header" . }}
|
||||||
|
{{- partial "single/main-header.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ block "main-body" . }}
|
||||||
|
<section class="site-content__body">
|
||||||
|
{{- with .Summary -}}
|
||||||
|
<section
|
||||||
|
class="article-body__summary"
|
||||||
|
itemprop="abstract"
|
||||||
|
>
|
||||||
|
<h2>Summary</h2>
|
||||||
|
<p class="p-summary">{{- . -}}</p>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- if ( or .Params.internal_links .Params.external_links ) -}}
|
||||||
|
{{- partial "single/main-body/links.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- partial "single/main-body/content.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
|
|
||||||
|
{{ block "main-body-additional" . }}<!-- -->{{ end }}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{{- with .Page.Resources.Get "comments.md" -}}
|
||||||
|
{{- partial "single/main-body/comments.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ block "main-footer" . }}
|
||||||
|
{{- partial "single/post-meta.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
|
{{ end }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
{{- block "footer" . -}}
|
||||||
|
<footer class="site-footer">
|
||||||
|
{{-
|
||||||
|
partialCached
|
||||||
|
"footer/text.html"
|
||||||
|
( dict
|
||||||
|
"author_name" .Site.Params.Author.name
|
||||||
|
"report_issue_url" ( printf "%s%s" .Site.Params.codeURL .Site.Params.reportIssueURL )
|
||||||
|
"privacy_policy_url" ( relref . "privacy-policy" )
|
||||||
|
"sitemap_path" ( printf "/%s" .Sitemap.Filename )
|
||||||
|
"last_build_time" ( now.Format "2006-01-02T15:04:05" )
|
||||||
|
)
|
||||||
|
-}}
|
||||||
|
|
||||||
|
{{ block "footer-scripts" . }}
|
||||||
|
{{- partialCached "single/footer-scripts.html" ( dict "pc" . "sc" $ ) . -}}
|
||||||
|
{{ end }}
|
||||||
|
</footer>
|
||||||
|
{{- end -}}
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,11 +1,5 @@
|
||||||
{{ define "main-class" }}--section layouts-blog-section{{ end }}
|
{{ define "main-class" }}--section layouts-blog-section{{ end }}
|
||||||
|
|
||||||
{{ define "main-type" }}{{ .Params.mainType }}{{ end }}
|
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
|
||||||
<script src="/js/lazy-images.js"></script>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
{{ define "main-header" }}
|
||||||
<header class="site-content__header">
|
<header class="site-content__header">
|
||||||
<h2 class="page-title">
|
<h2 class="page-title">
|
||||||
|
@ -40,8 +34,8 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</h2>
|
</h2>
|
||||||
{{ .Content }}
|
|
||||||
|
|
||||||
|
{{ .Content }}
|
||||||
|
|
||||||
<nav class="page-header__minor-links">
|
<nav class="page-header__minor-links">
|
||||||
<ul class="minor-links__categories">
|
<ul class="minor-links__categories">
|
||||||
|
@ -56,6 +50,7 @@
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{ if eq .Type "blog" }}
|
{{ if eq .Type "blog" }}
|
||||||
{{ with .GetPage "blog/posts" }}
|
{{ with .GetPage "blog/posts" }}
|
||||||
{{ partial "years-list.html" . }}
|
{{ partial "years-list.html" . }}
|
||||||
|
@ -68,11 +63,11 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "main-body" }}
|
{{ define "main-body" }}
|
||||||
{{ if eq .Type "blog" }}
|
{{- if eq .Type "blog" -}}
|
||||||
{{ with .GetPage "blog/posts" }}
|
{{- with .GetPage "blog/posts" -}}
|
||||||
{{ partial "items-grid.html" . }}
|
{{- partial "items-grid.html" . -}}
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
{{ else }}
|
{{- else -}}
|
||||||
{{ partial "items-grid.html" . }}
|
{{- partial "items-grid.html" . -}}
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -4,57 +4,7 @@
|
||||||
|
|
||||||
{{ define "main-class" }}--single layouts-blog-single{{ end }}
|
{{ define "main-class" }}--single layouts-blog-single{{ end }}
|
||||||
|
|
||||||
{{ define "header-scripts" }}
|
{{ define "main-body-additional" }}
|
||||||
{{ with .Params.locations }}
|
|
||||||
<script
|
|
||||||
id="Map-script"
|
|
||||||
src="/js/leaflet/leaflet.js"
|
|
||||||
></script>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "header-styles" }}
|
|
||||||
{{ with .Params.styles }}
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
type="text/css"
|
|
||||||
href="{{ ( $.Page.Resources.GetMatch "style").RelPermalink }}"
|
|
||||||
/>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.locations }}
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="/css/leaflet/leaflet.css"
|
|
||||||
/>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
|
||||||
{{- partialCached "single/footer-scripts.html" ( dict "pc" . "sc" $ ) . -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
|
||||||
{{- partial "single/main-header.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-body" }}
|
|
||||||
<section class="site-content__body">
|
|
||||||
{{ with .Summary }}
|
|
||||||
<section
|
|
||||||
class="article-body__summary"
|
|
||||||
itemprop="abstract"
|
|
||||||
>
|
|
||||||
<h2>Summary</h2>
|
|
||||||
<p class="p-summary">{{ . }}</p>
|
|
||||||
</section>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{- if ( or .Params.internal_links .Params.external_links ) -}}
|
|
||||||
{{- partial "single/main-body/links.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- partial "single/main-body/content.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
|
|
||||||
{{ if fileExists ( path.Join $.Page.File.Dir "appendices.md" ) }}
|
{{ if fileExists ( path.Join $.Page.File.Dir "appendices.md" ) }}
|
||||||
{{- partial "single/main-body/appendices.html" ( dict "pc" . "sc" $ ) -}}
|
{{- partial "single/main-body/appendices.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -62,13 +12,4 @@
|
||||||
{{ if fileExists ( path.Join $.Page.File.Dir "corrigendum.md" ) }}
|
{{ if fileExists ( path.Join $.Page.File.Dir "corrigendum.md" ) }}
|
||||||
{{- partial "single/main-body/appendices.html" ( dict "pc" . "sc" $ ) -}}
|
{{- partial "single/main-body/appendices.html" ( dict "pc" . "sc" $ ) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</section>
|
|
||||||
|
|
||||||
{{ with .Page.Resources.Get "comments.md" }}
|
|
||||||
{{- partial "single/main-body/comments.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-footer" }}
|
|
||||||
{{ partial "single/post-meta.html" ( dict "pc" . "sc" $ ) }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
45
layouts/cv/cv.html
Normal file
45
layouts/cv/cv.html
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{{ define "main-class" }}--section layouts-cv-cv{{ end }}
|
||||||
|
|
||||||
|
{{ define "header-scripts" }}
|
||||||
|
{{ if ( or ( eq .Type "cv" ) ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) }}
|
||||||
|
<script id="Google-Charts-script" src="/js/google-charts/google-charts.js"></script>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ define "footer-scripts" }}
|
||||||
|
{{ if ( not ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) }}
|
||||||
|
{{ $js := resources.Get "js/roles-chart.js" | resources.ExecuteAsTemplate "/js/render-roles-timeline.js" ( .GetPage "cv/roles" ) | resources.Fingerprint }}
|
||||||
|
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}"></script>
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ define "main-header" }}
|
||||||
|
<header class="site-content__header">
|
||||||
|
<h2 class="page-title">{{- .Title | safeHTML -}}. {{ if not ( or ( eq .Type "cv" ) ( eq .Type "cv/organisations" ) ) -}}
|
||||||
|
{{- range .AlternativeOutputFormats -}}
|
||||||
|
<a href="{{- .RelPermalink -}}" aria-label="{{- $.Title -}} RSS feed">
|
||||||
|
<img class="feed-icon" alt="RSS feed" src="{{- $.Site.Params.feedIcon -}}">
|
||||||
|
</a>
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
{{- .Content -}}
|
||||||
|
|
||||||
|
<nav class="page-header__minor-links">
|
||||||
|
<ul>
|
||||||
|
{{- range ( where .Sections "Type" "not in" ( slice "cv/roles" ) ).ByTitle }}
|
||||||
|
<li><a href="{{- .RelPermalink -}}"><h3>{{- .Title -}}</h3></a> <p>({{- len (where ( where .Site.Pages "Section" "cv" ) "Parent.Title" .Title ) -}})</p></li>
|
||||||
|
{{- end -}}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{- partialCached "cv/timeline-legend.html" . -}}
|
||||||
|
</header>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ define "main-body" }}
|
||||||
|
<article class="site-content__body site-content__body--chart">
|
||||||
|
<div id="timeline" aria-label="Roles timeline" role="img" height="70vh">Javascript must be enabled to view this chart.</div>
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
|
@ -11,68 +11,7 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
{{ define "footer-scripts" }}
|
||||||
{{ $titles := .Scratch.Get "titles" }}
|
{{- partial "scripts/show_organisation_roles_in_timeline.js" ( dict "sc" $ "pc" . "organisation_titles" ( .Scratch.Get "titles" ) ) -}}
|
||||||
<script>
|
|
||||||
google.charts.load('current', {'packages':['timeline']});
|
|
||||||
google.charts.setOnLoadCallback(drawChart);
|
|
||||||
|
|
||||||
function drawChart() {
|
|
||||||
var container = document.getElementById('timeline');
|
|
||||||
var chart = new google.visualization.Timeline(container);
|
|
||||||
var dataTable = new google.visualization.DataTable();
|
|
||||||
|
|
||||||
dataTable.addColumn({ type: 'string', id: 'Type' });
|
|
||||||
dataTable.addColumn({ type: 'string', id: 'Job Title' });
|
|
||||||
dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
|
|
||||||
dataTable.addColumn({ type: 'date', id: 'Start' });
|
|
||||||
dataTable.addColumn({ type: 'date', id: 'End' });
|
|
||||||
|
|
||||||
dataTable.addRows([
|
|
||||||
{{- with ( .GetPage "cv/roles" ).Pages -}}
|
|
||||||
{{- range ( where . ".Params.organisations" "intersect" $titles ) -}}
|
|
||||||
{{- if ( not ( and ( .Params.redact ) ( ne $.Site.Params.redact "show" ) ) ) -}}
|
|
||||||
{{-
|
|
||||||
printf `["%s", "%s", "%s", %s, %s],`
|
|
||||||
(
|
|
||||||
partialCached
|
|
||||||
"cv/organisation/get_role_organisation_string.html"
|
|
||||||
( dict "sc" $ "pc" . )
|
|
||||||
.
|
|
||||||
)
|
|
||||||
(
|
|
||||||
partialCached
|
|
||||||
"cv/organisation/get_role_role_string.html"
|
|
||||||
( dict "sc" $ "pc" . )
|
|
||||||
.
|
|
||||||
)
|
|
||||||
(
|
|
||||||
partialCached
|
|
||||||
"cv/organisation/get_role_colour.html"
|
|
||||||
( dict "end_date" .Params.end_date "is_paid" .Params.paid )
|
|
||||||
.Params.end_date .Params.paid
|
|
||||||
)
|
|
||||||
( partialCached "cv/organisation/get_role_start_date.html" .Date .Date )
|
|
||||||
( partialCached "cv/organisation/get_role_end_date.html" .Params.end_date .Params.end_date )
|
|
||||||
| safeJS
|
|
||||||
-}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{ end -}}
|
|
||||||
]);
|
|
||||||
|
|
||||||
var options = {
|
|
||||||
title: '{{ .Title | plainify }} Roles Timeline',
|
|
||||||
height: '100%',
|
|
||||||
chartArea: {
|
|
||||||
width: '94%'
|
|
||||||
},
|
|
||||||
width: '100%',
|
|
||||||
timeline: { showBarLabels: true }
|
|
||||||
};
|
|
||||||
|
|
||||||
chart.draw(dataTable, options);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "main-header" }}
|
{{ define "main-header" }}
|
||||||
|
@ -139,11 +78,25 @@
|
||||||
{{ partial "cv/organisations/recursive-parents.html" ( dict "c" . "g" $ ) }}
|
{{ partial "cv/organisations/recursive-parents.html" ( dict "c" . "g" $ ) }}
|
||||||
{{- $parents := partial "cv/organisations/reverse-slice.html" ( $.Scratch.Get "parents" ) -}}
|
{{- $parents := partial "cv/organisations/reverse-slice.html" ( $.Scratch.Get "parents" ) -}}
|
||||||
|
|
||||||
{{- range $parents -}}<ul><li class="hierarchy-item hierarchy-item--parent"><a href="{{ .RelPermalink }}">{{ default .Title .Params.markup_title | .Page.RenderString }}</a>{{- end -}}
|
{{- range $parents -}}
|
||||||
<ul><li class="hierarchy-item hierarchy-item--current">{{ default .Title .Params.markup_title | .Page.RenderString }}</li>
|
<ul>
|
||||||
{{ range .Sections }}<ul>{{ partial "cv/organisations/recursive-children.html" . }}</ul>{{ end }}
|
<li class="hierarchy-item hierarchy-item--parent">
|
||||||
|
<a href="{{- .RelPermalink -}}">
|
||||||
|
{{- default .Title .Params.markup_title | .Page.RenderString -}}
|
||||||
|
</a>
|
||||||
|
{{- end -}}
|
||||||
|
<ul>
|
||||||
|
<li class="hierarchy-item hierarchy-item--current">
|
||||||
|
{{- default .Title .Params.markup_title | .Page.RenderString -}}
|
||||||
|
</li>
|
||||||
|
{{- range .Sections -}}
|
||||||
|
<ul>{{- partial "cv/organisations/recursive-children.html" . -}}</ul>
|
||||||
|
{{- end -}}
|
||||||
</ul>
|
</ul>
|
||||||
{{- range $parents -}}</li></ul>{{- end -}}
|
{{- range $parents -}}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{- end -}}
|
||||||
</section>
|
</section>
|
||||||
</footer>
|
</footer>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,41 +1,6 @@
|
||||||
{{ define "main-class" }}
|
{{ define "main-class" }}--section layouts-cv-section{{ end }}
|
||||||
{{- if .IsDescendant ( .GetPage "/cv/organisations" ) -}}--single{{- else -}}--section{{- end }} layouts-cv-section
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "header-scripts" }}
|
|
||||||
{{ if ( or ( eq .Type "cv" ) ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) }}
|
|
||||||
<script id="Google-Charts-script" src="/js/google-charts/google-charts.js"></script>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
|
||||||
{{ if ( not ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) }}
|
|
||||||
{{ $js := resources.Get "js/roles-chart.js" | resources.ExecuteAsTemplate "/js/render-roles-timeline.js" ( .GetPage "cv/roles" ) | resources.Fingerprint }}
|
|
||||||
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}"></script>
|
|
||||||
{{- end -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
{{ define "main-header" }}
|
||||||
{{ if .IsDescendant ( .GetPage "/cv/organisations" ) }}
|
|
||||||
<header class="site-content__header">
|
|
||||||
<div class="article-header__featured-image article-header__featured-image--fit"
|
|
||||||
{{- with .Params.featured_image -}}
|
|
||||||
{{- with ( $.Resources.GetMatch . ) -}}
|
|
||||||
style="background-image: url({{- partialCached "images/get-image.html" ( dict "img" . ) .Title -}}){{ with .Params.bg -}}; background-color: {{ . -}};{{- end -}}"
|
|
||||||
{{- else -}}
|
|
||||||
{{- errorf "No Page Resource found for src '%q' (%q).\n\n\tAvailable Page Resources are:\n\t\t%v" . $.pc.Page.File.Path $.pc.Page.Resources -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
>
|
|
||||||
<div class="article-header__title-wrapper{{ if .Params.title_in_logo }} article-header__title-wrapper--no-title{{ end }}">
|
|
||||||
<h2 class="article-header__title">{{ default .Title .Params.markup_title | .Page.RenderString }}</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{- with .Params.nka -}}<p>Now known as: {{ . }}</p>{{- end -}}
|
|
||||||
{{- with .Params.fka -}}<p>Formerly known as: {{ . }}</p>{{- end -}}
|
|
||||||
{{- with .Params.tka -}}<p>Then known as: {{ . }}</p>{{- end -}}
|
|
||||||
</header>
|
|
||||||
{{ else }}
|
|
||||||
<header class="site-content__header">
|
<header class="site-content__header">
|
||||||
<h2 class="page-title">{{ .Title | safeHTML }}. {{ if not ( or ( eq .Type "cv" ) ( eq .Type "cv/organisations" ) ) -}}
|
<h2 class="page-title">{{ .Title | safeHTML }}. {{ if not ( or ( eq .Type "cv" ) ( eq .Type "cv/organisations" ) ) -}}
|
||||||
{{- range .AlternativeOutputFormats -}}
|
{{- range .AlternativeOutputFormats -}}
|
||||||
|
@ -45,68 +10,15 @@
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
{{- .Content -}}
|
{{- .Content -}}
|
||||||
|
|
||||||
{{- if ( and ( eq .Type "cv" ) ( not ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) ) -}}
|
|
||||||
<nav class="page-header__minor-links">
|
|
||||||
<ul>
|
|
||||||
{{ range ( where .Sections "Type" "not in" ( slice "cv/roles" ) ).ByTitle }}
|
|
||||||
<li><a href="{{ .RelPermalink }}"><h3>{{ .Title }}</h3></a> <p>({{ len (where ( where .Site.Pages "Section" "cv" ) "Parent.Title" .Title ) }})</p></li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
{{- partialCached "cv/timeline-legend.html" . -}}
|
|
||||||
{{- else -}}
|
|
||||||
<nav class="page-header__minor-links">
|
<nav class="page-header__minor-links">
|
||||||
{{- partial "years-list.html" . -}}
|
{{- partial "years-list.html" . -}}
|
||||||
</nav>
|
</nav>
|
||||||
{{- end -}}
|
|
||||||
</header>
|
</header>
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "main-body" }}
|
{{ define "main-body" }}
|
||||||
{{ if .IsDescendant ( .GetPage "/cv/organisations" ) }}
|
|
||||||
{{ $titles := slice ( .Title | plainify ) }}
|
|
||||||
{{ with .Sections }}
|
|
||||||
{{ $titles = $titles | append ( partial "cv/organisations/recursive-children-titles.html" . ) }}
|
|
||||||
{{ end }}
|
|
||||||
{{ .Scratch.Set "titles" $titles }}
|
|
||||||
|
|
||||||
<main class="site-content__body organisation">
|
|
||||||
|
|
||||||
{{- partial "cv/organisation/description.html" ( dict "content" .Content ) -}}
|
|
||||||
|
|
||||||
{{- partial "cv/organisation/roles-timeline.html" -}}
|
|
||||||
|
|
||||||
{{- partial "cv/organisation/related-items.html" ( dict "sc" $ "organisation_titles" ( .Scratch.Get "titles" ) "organisation_title" .Title ) -}}
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
{{ else if eq .Type "cv" }}
|
|
||||||
<article class="site-content__body site-content__body--chart">
|
|
||||||
<div id="timeline" aria-label="Roles timeline" role="img" height="70vh">Javascript must be enabled to view this chart.</div>
|
|
||||||
</article>
|
|
||||||
{{ else }}
|
|
||||||
{{ partial "items-grid.html" . }}
|
{{ partial "items-grid.html" . }}
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-footer" }}
|
|
||||||
{{ if .IsDescendant ( .GetPage "/cv/organisations" ) }}
|
|
||||||
<footer class="site-content__footer">
|
|
||||||
<section id="hierarchy">
|
|
||||||
<h3 class="subheading">Hierarchy</h3>
|
|
||||||
{{ $.Scratch.Set "parents" ( slice ) }}
|
|
||||||
{{ partial "cv/organisations/recursive-parents.html" ( dict "c" . "g" $ ) }}
|
|
||||||
{{- $parents := partial "cv/organisations/reverse-slice.html" ( $.Scratch.Get "parents" ) -}}
|
|
||||||
|
|
||||||
{{- range $parents -}}<ul><li class="hierarchy-item hierarchy-item--parent"><a href="{{ .RelPermalink }}">{{ default .Title .Params.markup_title | .Page.RenderString }}</a>{{- end -}}
|
|
||||||
<ul><li class="hierarchy-item hierarchy-item--current">{{ default .Title .Params.markup_title | .Page.RenderString }}</li>
|
|
||||||
{{ range .Sections }}<ul>{{ partial "cv/organisations/recursive-children.html" . }}</ul>{{ end }}
|
|
||||||
</ul>
|
|
||||||
{{- range $parents -}}</li></ul>{{- end -}}
|
|
||||||
</section>
|
|
||||||
</footer>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
{{ define "title" }}
|
||||||
|
{{- partialCached "head/title.html" ( slice .Site.Title .Site.Params.tagline ) .Site.Title .Site.Params.tagline -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ define "main-class" }}--homepage{{ end }}
|
{{ define "main-class" }}--homepage{{ end }}
|
||||||
|
|
||||||
{{ define "header" }} <!-- null --> {{ end }}
|
{{ define "header" }} <!-- null --> {{ end }}
|
||||||
|
|
|
@ -1,59 +1,5 @@
|
||||||
{{ define "main-class" }}--section layouts-portfolio-section{{ end }}
|
{{ define "main-class" }}--section layouts-portfolio-section{{ end }}
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
|
||||||
<script>
|
|
||||||
// Source: https://css-tricks.com/the-complete-guide-to-lazy-loading-images/
|
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
|
||||||
var lazyloadImages;
|
|
||||||
|
|
||||||
if ("IntersectionObserver" in window) {
|
|
||||||
lazyloadImages = document.querySelectorAll(".lazy");
|
|
||||||
var imageObserver = new IntersectionObserver(function(entries, observer) {
|
|
||||||
entries.forEach(function(entry) {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
var image = entry.target;
|
|
||||||
image.classList.remove("lazy");
|
|
||||||
imageObserver.unobserve(image);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
lazyloadImages.forEach(function(image) {
|
|
||||||
imageObserver.observe(image);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
var lazyloadThrottleTimeout;
|
|
||||||
lazyloadImages = document.querySelectorAll(".lazy");
|
|
||||||
|
|
||||||
function lazyload () {
|
|
||||||
if(lazyloadThrottleTimeout) {
|
|
||||||
clearTimeout(lazyloadThrottleTimeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
lazyloadThrottleTimeout = setTimeout(function() {
|
|
||||||
var scrollTop = window.pageYOffset;
|
|
||||||
lazyloadImages.forEach(function(img) {
|
|
||||||
if(img.offsetTop < (window.innerHeight + scrollTop)) {
|
|
||||||
img.src = img.dataset.src;
|
|
||||||
img.classList.remove('lazy');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if(lazyloadImages.length == 0) {
|
|
||||||
document.removeEventListener("scroll", lazyload);
|
|
||||||
window.removeEventListener("resize", lazyload);
|
|
||||||
window.removeEventListener("orientationChange", lazyload);
|
|
||||||
}
|
|
||||||
}, 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener("scroll", lazyload);
|
|
||||||
window.addEventListener("resize", lazyload);
|
|
||||||
window.addEventListener("orientationChange", lazyload);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
{{ define "main-header" }}
|
||||||
<header class="site-content__header">
|
<header class="site-content__header">
|
||||||
<h2 class="page-title">{{ .Title | safeHTML }}.
|
<h2 class="page-title">{{ .Title | safeHTML }}.
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
{{ define "title" }}
|
|
||||||
{{- partialCached "head/title.html" ( slice ( .Page.Title | plainify ) .Site.Title ) .Site.Title .Page.Title -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-class" }}--section layouts-default-section{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-type" }}.{{ .Params.mainType }}{{ end }}
|
|
||||||
{{ define "item-type" }}{{ .Params.itemsType }}{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
|
||||||
<header class="site-content__header">
|
|
||||||
<h2 class="page-title">{{ .Title | safeHTML }}
|
|
||||||
{{ range .AlternativeOutputFormats -}}
|
|
||||||
<a href="{{ .RelPermalink }}" aria-label="{{ $.Title }} RSS feed">
|
|
||||||
<img class="feed-icon" alt="RSS feed" src="{{ $.Site.Params.feedIcon }}">
|
|
||||||
</a>
|
|
||||||
{{ end }}
|
|
||||||
</h2>
|
|
||||||
{{ .Content }}
|
|
||||||
</header>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-body" }}
|
|
||||||
{{ partial "items-grid.html" . }}
|
|
||||||
{{ end }}
|
|
|
@ -1,54 +0,0 @@
|
||||||
{{ define "title" }}
|
|
||||||
{{- partialCached "head/title.html" ( slice ( .Page.Title | plainify ) .Site.Title ) .Site.Title .Page.Title -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "head-description" }}{{ .Summary | plainify }}{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-class" }}--single layouts-default-single{{ end }}
|
|
||||||
|
|
||||||
{{ define "header-scripts" }}
|
|
||||||
{{ with .Params.locations }}
|
|
||||||
<script
|
|
||||||
id="Map-script"
|
|
||||||
src="/js/leaflet/leaflet.js"
|
|
||||||
></script>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "header-styles" }}
|
|
||||||
{{ with .Params.styles }}
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
type="text/css"
|
|
||||||
href="{{ ( $.Page.Resources.GetMatch "style").RelPermalink }}"
|
|
||||||
/>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.locations }}
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="/css/leaflet/leaflet.css"
|
|
||||||
/>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "footer-scripts" }}
|
|
||||||
{{- partialCached "single/footer-scripts.html" ( dict "pc" . "sc" $ ) . }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-header" }}
|
|
||||||
{{ partial "single/main-header.html" ( dict "pc" . "sc" $ ) }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-body" }}
|
|
||||||
<section class="site-content__body">
|
|
||||||
{{- if ( or .Params.internal_links .Params.external_links ) -}}
|
|
||||||
{{- partial "single/main-body/links.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- partial "single/main-body/content.html" ( dict "pc" . "sc" $ ) -}}
|
|
||||||
</section>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ define "main-footer" }}
|
|
||||||
{{ partial "single/post-meta.html" ( dict "pc" . "sc" $ ) }}
|
|
||||||
{{ end }}
|
|
Loading…
Add table
Add a link
Reference in a new issue