various fixes

This commit is contained in:
Ben Goldsworthy 2024-07-23 10:08:36 +02:00
parent 1fd9adcb52
commit 46bd223627
Signed by: Rumperuu
SSH key fingerprint: SHA256:e5XfzNOr9UvWpEzyLfw0GtTMZWIFh3NmxH+/qQIi3xE
29 changed files with 6093 additions and 152 deletions

View file

@ -34,6 +34,10 @@
{{- $printStylesheet := resources.Get "css/print.scss" }}
{{- $printStylesheet := $printStylesheet | resources.ToCSS | resources.Fingerprint }}
<link rel="stylesheet" media="print" href="{{ $printStylesheet.Permalink }}" integrity="{{ $printStylesheet.Data.Integrity | html }}">
{{- if .Param "math" -}}
{{- partialCached "math.html" . -}}
{{- end -}}
{{- block "header-scripts" . -}}<!-- -->{{- end -}}

View file

@ -6,7 +6,7 @@
{{ define "header-scripts" }}
{{ with .Params.locations }}
<script id="Map-script" src="/js/leaflet.js"></script>
<script id="Map-script" src="/js/leaflet/leaflet.js"></script>
{{ end }}
{{ end }}
@ -15,7 +15,7 @@
<link rel="stylesheet" type="text/css" href="{{ ( $.Page.Resources.GetMatch "style").RelPermalink }}">
{{ end }}
{{ with .Params.locations }}
<link rel="stylesheet" href="/css/leaflet.css">
<link rel="stylesheet" href="/css/leaflet/leaflet.css">
{{ end }}
{{ end }}
@ -44,14 +44,9 @@
</script>
{{ end }}
{{ with .Params.scripts }}
{{ if in . "mathjax" }}
<script src="/js/polyfill.js"></script>
<script id="MathJax-script" async src="/js/mathjax/tex-chtml.js"></script>
<script src="/js/mathjax/config.js"></script>
{{ end }}
{{ if in . "charts" }}
{{ $chartsConfigJS := $.Page.Resources.GetMatch "charts-init" | fingerprint }}
<script id="Charts-script" src="/js/chart.js"></script>
<script id="Charts-script" src="/js/chart/chart.js"></script>
<script id="Charts-config-script" src="{{ $chartsConfigJS.Permalink }}" integrity="{{ $chartsConfigJS.Data.Integrity }}"></script>
{{ end }}
{{ end }}
@ -94,9 +89,9 @@
{{ end }}
</div>
<p class="article-header__word-count">~<span itemprop="wordCount">{{ .FuzzyWordCount | lang.NumFmt 0 }}</span> words</p>
<p class="article-header__publish-date">Published: <span itemprop="datePublished" datetime="{{ .PublishDate }}">{{ .PublishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .PublishDate.Day}}st{{ else if in (slice 2 22) .PublishDate.Day}}nd{{ else if in (slice 3 23) .PublishDate.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .PublishDate.Format "2006" | lang.NumFmt 0 }}&nbsp;<abbr style="text-transform: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></span></p>
<p class="article-header__modified-date">Last modified: <span itemprop="dateModified" datetime="{{ .Lastmod }}">{{ .Lastmod.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .Lastmod.Day}}st{{ else if in (slice 2 22) .Lastmod.Day}}nd{{ else if in (slice 3 23) .Lastmod.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .Lastmod.Format "2006" | lang.NumFmt 0 }}&nbsp;<abbr style="text-transform: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></span></p>
<p class="article-header__word-count">~<span itemprop="wordCount">{{ .FuzzyWordCount | lang.FormatNumberCustom 0 }}</span> words</p>
<p class="article-header__publish-date">Published: <span itemprop="datePublished" datetime="{{ .PublishDate }}">{{ .PublishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .PublishDate.Day}}st{{ else if in (slice 2 22) .PublishDate.Day}}nd{{ else if in (slice 3 23) .PublishDate.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .PublishDate.Format "2006" | lang.FormatNumberCustom 0 }}&nbsp;<abbr style="text-transform: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></span></p>
<p class="article-header__modified-date">Last modified: <span itemprop="dateModified" datetime="{{ .Lastmod }}">{{ .Lastmod.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .Lastmod.Day}}st{{ else if in (slice 2 22) .Lastmod.Day}}nd{{ else if in (slice 3 23) .Lastmod.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .Lastmod.Format "2006" | lang.FormatNumberCustom 0 }}&nbsp;<abbr style="text-transform: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></span></p>
{{ $post_age_in_years := math.Round ( div ( div ( now.Sub .PublishDate ).Hours 24 ) 365 ) }}
{{ if ( or .Params.site .Params.controversial ( gt $post_age_in_years 2 ) ) }}

View file

@ -7,58 +7,7 @@
{{ define "main-type" }}{{ .Params.mainType }}{{ 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) {
console.log("Ding");
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>
<script src="/js/lazy-images.js"></script>
{{ end }}
{{ define "main-header" }}

View file

@ -6,7 +6,7 @@
{{ define "header-scripts" }}
{{ with .Params.locations }}
<script id="Map-script" src="/js/leaflet.js"></script>
<script id="Map-script" src="/js/leaflet/leaflet.js"></script>
{{ end }}
{{ end }}
@ -15,7 +15,7 @@
<link rel="stylesheet" type="text/css" href="{{ ( $.Page.Resources.GetMatch "style").RelPermalink }}">
{{ end }}
{{ with .Params.locations }}
<link rel="stylesheet" href="/css/leaflet.css">
<link rel="stylesheet" href="/css/leaflet/leaflet.css">
{{ end }}
{{ end }}
@ -44,16 +44,9 @@
if (map.getZoom() < 10) map.setZoom(10);
</script>
{{ end }}
{{ with .Params.scripts }}
{{ if in . "mathjax" }}
<script src="/js/polyfill.js"></script>
<script id="MathJax-script" async src="/js/mathjax/tex-chtml.js"></script>
<script src="/js/mathjax/config.js"></script>
{{ end }}
{{ end }}
{{ if $.HasShortcode "chart" }}
{{ $chartsConfigJS := $.Page.Resources.GetMatch "charts-init" | fingerprint }}
<script id="Charts-script" src="/js/chart.js"></script>
<script id="Charts-script" src="/js/chart/chart.js"></script>
<script id="Charts-config-script" src="{{ $chartsConfigJS.Permalink }}" integrity="{{ $chartsConfigJS.Data.Integrity }}"></script>
{{ end }}
{{ end }}
@ -130,11 +123,11 @@
{{ end }}
</div>
<p class="article-header__word-count">~<span itemprop="wordCount">{{ .FuzzyWordCount | lang.NumFmt 0 }}</span> words</p>
<p class="article-header__word-count">~<span itemprop="wordCount">{{ .FuzzyWordCount | lang.FormatNumberCustom 0 }}</span> words</p>
<p class="article-header__publish-date">Published: <time class="dt-published" datetime="{{ .PublishDate | time.Format "2006-01-02T15:04:05-07:00" }}" itemprop="datePublished">{{ .PublishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .PublishDate.Day}}st{{ else if in (slice 2 22) .PublishDate.Day}}nd{{ else if in (slice 3 23) .PublishDate.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .PublishDate.Format "2006" | lang.NumFmt 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time></p>
<p class="article-header__publish-date">Published: <time class="dt-published" datetime="{{ .PublishDate | time.Format "2006-01-02T15:04:05-07:00" }}" itemprop="datePublished">{{ .PublishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .PublishDate.Day}}st{{ else if in (slice 2 22) .PublishDate.Day}}nd{{ else if in (slice 3 23) .PublishDate.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .PublishDate.Format "2006" | lang.FormatNumberCustom 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time></p>
<p class="article-header__modified-date">Last modified: <time class="dt-updated" datetime="{{ .Lastmod | time.Format "2006-01-02T15:04:05-07:00" }}" itemprop="dateModified">{{ .Lastmod.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .Lastmod.Day}}st{{ else if in (slice 2 22) .Lastmod.Day}}nd{{ else if in (slice 3 23) .Lastmod.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .Lastmod.Format "2006" | lang.NumFmt 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time></p>
<p class="article-header__modified-date">Last modified: <time class="dt-updated" datetime="{{ .Lastmod | time.Format "2006-01-02T15:04:05-07:00" }}" itemprop="dateModified">{{ .Lastmod.Format "January 2" }}<sup>{{ if in (slice 1 21 31) .Lastmod.Day}}st{{ else if in (slice 2 22) .Lastmod.Day}}nd{{ else if in (slice 3 23) .Lastmod.Day}}rd{{ else }}th{{ end }}</sup>, 1{{ .Lastmod.Format "2006" | lang.FormatNumberCustom 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time></p>
<p style="display: none">Author{{ with .Params.authors }}s{{ end }}:&nbsp;
{{- with .Params.authors -}}
@ -216,9 +209,9 @@
<ul>
{{- range . -}}
{{ if eq ( printf "%T" . ) "map[string]interface {}" }}
<li><a class="button" href="{{ .link }}">{{ .title | safeHTML }}</a></li>
<li><a href="{{ .link }}">{{ .title | safeHTML }}</a></li>
{{ else }}
<li><a class="button" href="{{ . }}">Link</a></li>
<li><a href="{{ . }}">Link</a></li>
{{ end }}
{{- end -}}
</ul>
@ -229,9 +222,9 @@
<ul>
{{- range . -}}
{{ if eq ( printf "%T" . ) "map[string]interface {}" }}
<li><a class="button" href="{{ .link }}">{{ .title | safeHTML }}</a></li>
<li><a href="{{ .link }}">{{ .title | safeHTML }}</a></li>
{{ else }}
<li><a class="button" href="{{ . }}">Link</a></li>
<li><a href="{{ . }}">Link</a></li>
{{ end }}
{{- end -}}
</ul>

View file

@ -8,7 +8,7 @@
{{ define "header-scripts" }}
{{ if ( or ( eq .Type "cv" ) ( .IsDescendant ( .GetPage "/cv/organisations" ) ) ) }}
<script id="Google-Charts-script" src="/js/google-charts.js"></script>
<script id="Google-Charts-script" src="/js/google-charts/google-charts.js"></script>
{{ end }}
{{ end }}

View file

@ -5,26 +5,45 @@
{{ define "main-class" }}--section location-map{{ end }}
{{ define "header-scripts" }}
<link rel="stylesheet" href="/css/leaflet.css"/>
<!-- Leaflet -->
<link rel="stylesheet" href="/css/leaflet/leaflet.css" />
<link rel="stylesheet" href="/js/leaflet-fullscreen/leaflet.fullscreen.css" />
{{ end }}
{{ define "footer-scripts" }}
<script src="/js/leaflet.js"></script>
<script src="/js/leaflet-heat.js"></script>
<!-- Leaflet -->
<script src="/js/leaflet/leaflet.js"></script>
<!-- Leaflet Heat -->
<script src="/js/leaflet-heat/leaflet-heat.js"></script>
<!-- Leaflet Fullscreen -->
<script src="/js/leaflet-fullscreen/leaflet.fullscreen.min.js"></script>
<script>
var map = L.map('map').setView([55, -3], 3);
var map = L.map('map', {
fullscreenControl: true
}).setView([55, -3], 3);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
{{- range $.Site.Data.locations -}}
/* L.marker([{{ .lat }}, {{ .lon }}]).addTo(map); */
{{- end -}}
{{- $locations := partialCached "util/get_location_leaf_nodes.html.tmpl" $.Site.Data.locations -}}
{{/*
{{- range .Site.AllPages -}}
{{- with .Params.locations -}}
{{- range . -}}
{{- with ( index $locations ( replaceRE `, [A-Z]+` "" . ) ) -}}
L.marker([{{ .lat }}, {{ .lon }}]).addTo(map);
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
*/}}
L.heatLayer(
[
{{- range .Site.AllPages -}}
@ -39,7 +58,7 @@
],
{
minOpacity: 0.5,
gradient: {0.2: 'blue', 0.5: 'lime', 1: 'red'}
gradient: {0.1: 'blue', 0.3: 'lime', 0.8: 'orange', 1: 'red'}
}
).addTo(map);
</script>

View file

@ -1,4 +1,4 @@
<!--
{{- /*
Renders a work citation with semantic markup, called using the `cite` shortcode.
@params cite URI for work. Optional.
@ -9,7 +9,7 @@
@params title Title of the work to display.
@params titleLang Language code of a foreign-language work's title. Optional.
@params titleTr English translation of a foreign-language work's title. Optional.
-->
*/ -}}
<!-- Optional parameter overrides (for nested citations) -->
@ -19,9 +19,12 @@
{{- $titleTr := default .Params.titleTr ( .Scratch.Get "titleTr" ) -}}
{{- $schemaType := default .Params.schemaType ( .Scratch.Get "schemaType" ) -}}
<!-- Validation -->
{{- if ( strings.Contains $cite "#" ) -}}
{{- erroridf "cite-with-fragment" "Cite parameter includes fragment identifier, which probably isn't what you want." -}}
{{- $cite = delimit ( split $cite "#" ) "" -}}
{{- end -}}
<!-- TODO: check `.Params.cite` is URI -->
<!-- Validation -->
{{- if ( and ( isset .Params "citeStyle" ) ( not ( in ( slice "inherit" "enquote" "normal" ) .Params.citeStyle ) ) ) -}}
{{- erroridf "invalid-citeStyle" "Invalid `citeStyle` value %q for %q" .Params.citeStyle $title -}}
@ -33,6 +36,8 @@
{{- erroridf "invalid-schemaType" "Invalid Schema.org type value %q for %q" $schemaType $title -}}
{{- end -}}
<!-- TODO: check `.Params.cite` is URI -->
{{- if ( or $titleLang $titleTr ) -}}
{{- if ( not ( and $titleLang $titleTr ) ) -}}
{{- erroridf "invalid-foreign-title" "Must have both title translation and language set for foreign language title %q" $title -}}
@ -60,7 +65,16 @@
{{- end -}}
<span itemprop="name">
{{- if $titleLang -}}
<i lang="{{ $titleLang }}" title="{{ $titleTr }}">
<i
lang="{{ $titleLang }}"
title="
{{- if $.Params.shortTitle -}}
{{- printf "%s [%s]" $title $titleTr | plainify -}}
{{- else -}}
{{- $titleTr | plainify -}}
{{- end -}}
"
>
{{- end -}}
{{- ( default $title .Params.shortTitle ) | markdownify | safeHTML -}}

View file

@ -0,0 +1,11 @@
<!--
Gets the top-level parent org of an organisation.
@params organisation The organisation to search for.
-->
{{- $organisation_page := default . ( index .Ancestors.Reverse 3 ) -}}
{{- $organisation_title := default $organisation_page.Title $organisation_page.Params.markup_title -}}
{{- return $organisation_title -}}

View file

@ -1,16 +1,14 @@
<aside class="timeline__legend">
<div>
<label for="legend__past">Past</label>
<div id="legend__past">
<button id="past-unpaid" class="legend__button"><p><span class="colour-square colour-square--unpaid-past"></span> Unpaid</p></button>
<button id="past-paid" class="legend__button"><p><span class="colour-square colour-square--paid-past"></span> Paid</p></button>
</div>
</div>
<div>
<label for="legend__current">Current</label>
<div id="legend__current">
<button id="current-unpaid" class="legend__button"><p><span class="colour-square colour-square--unpaid-current"></span> Unpaid</p></button>
<button id="current-paid" class="legend__button"><p><span class="colour-square colour-square--paid-current"></span> Paid</p></button>
</div>
</div>
<fieldset id="legend__past">
<legend class="label">Past</legend>
<button id="past-unpaid" class="button legend__button"><p><span class="colour-square colour-square--unpaid-past"></span> Unpaid</p></button>
<button id="past-paid" class="button legend__button"><p><span class="colour-square colour-square--paid-past"></span> Paid</p></button>
</fieldset>
<fieldset id="legend__current">
<legend class="label">Current</legend>
<button id="current-unpaid" class="button legend__button"><p><span class="colour-square colour-square--unpaid-current"></span> Unpaid</p></button>
<button id="current-paid" class="button legend__button"><p><span class="colour-square colour-square--paid-current"></span> Paid</p></button>
</fieldset>
</aside>

View file

@ -2,7 +2,7 @@
{{ block "header" . }}
<h2 class="p-name site-header__title" itemprop="name"><a class="u-url" href="{{ .Site.Home.RelPermalink }}" rel="me author">{{ .Site.Title }}</a></h2>
<p class="p-note site-header__tagline" itemprop="about">Views my own. Discussion ≠ endorsement. Do try this at home.</p>
<p class="site-header__icons">~ <a class="u-email" href="mailto:{{ $.Site.Author.email }}" rel="me">&#128231;</a> ~ <a class="u-url" href="{{ .Site.Params.codeURL }}" rel="me">&#128187;</a> ~ <a class="u-key" href="/{{ .Site.Params.keyfile }}" rel="me">&#128272;</a> ~ <a href="/index.xml" aria-label="{{ .Site.Title }} RSS feed"><img class="feed-icon" alt="RSS feed" src="{{ .Site.Params.feedIcon }}"></a> ~</p>
<p class="site-header__icons">~ <a class="u-email" href="mailto:{{ $.Site.Author.email }}" rel="me">✉️</a> ~ <a class="u-url" href="{{ .Site.Params.codeURL }}" rel="me">🧑‍💻</a> ~ <a class="u-key" href="/{{ .Site.Params.keyfile }}" rel="me">&#128272;</a> ~ <a href="/index.xml" aria-label="{{ .Site.Title }} RSS feed"><img class="feed-icon" alt="RSS feed" src="{{ .Site.Params.feedIcon }}"></a> ~</p>
<nav class="site-header__nav">
<ul>
{{ range ( where .Site.Sections.ByTitle "Type" "in" site.Params.mainSections ) }}

View file

@ -1,10 +1,10 @@
<section class="site-content__body">
{{ range ( ( where .Pages "Draft" false ).GroupByPublishDate "2006" ) }}
{{ range ( ( where ( where .Pages "Draft" false ) "Params.redact" "ne" true ).GroupByPublishDate "2006" ) }}
{{ if ( not ( eq .Key "0001" ) ) }}
{{ partialCached "header-tile.html" . .Key }}
{{ range .Pages }}
{{ if ( not ( .IsDescendant ( .GetPage "/cv/roles" ) ) ) }}
{{ partialCached "item-tile.html" . .Title }}
{{ partialCached "item-tile.html" . .Path }}
{{ end }}
{{ end }}
{{ end }}

View file

@ -0,0 +1,9 @@
<script id="MathJax-script" async src="/js/mathjax/tex-chtml.js"></script>
<script>
MathJax = {
tex: {
displayMath: [['\\[', '\\]'], ['$$', '$$']], // block
inlineMath: [['\\(', '\\)']] // inline
}
};
</script>

View file

@ -5,7 +5,7 @@
@params page_file_path Filepath of the calling file for error messages.
-->
{{- $src := . -}}
{{- $src := .src -}}
<video
class="u-video figure__video"
@ -24,4 +24,4 @@
"
>
Your browser doesn't support embedded video, <a href="{{ $src.RelPermalink }}">view the video here</a>.
</video>
</video>

View file

@ -15,7 +15,6 @@
var imageObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
console.log("Ding");
var image = entry.target;
image.classList.remove("lazy");
imageObserver.unobserve(image);

View file

@ -24,7 +24,7 @@
{{- with .shortTitlePl -}}{{- . | safeHTML -}}{{- else -}}{{- .shortTitle | safeHTML -}}s{{- end -}}
{{- end -}}
</abbr>{{- /**/ -}}
<!-- Long titles (e.g. 'foo bar baz') -->
{{- else if ( or ( eq $mode "longTitle" ) ( eq $mode "longTitlePl" ) ) -}}
{{- if ( eq $mode "longTitle" ) -}}
@ -36,7 +36,7 @@
{{- with .longTitlePl -}}{{- . | safeHTML -}}{{- else -}}{{- .longTitle | safeHTML -}}s{{- end -}}
{{- if .lang -}}</i>{{- end -}}{{- /**/ -}}
{{- end -}}
<!-- Full titles (e.g. 'foo bar baz (FBB)') -->
{{- else if ( or ( eq $mode "fullTitle" ) ( eq $mode "fullTitlePl" ) ) -}}
{{- if ( eq $mode "fullTitle" ) -}}

View file

@ -1,32 +1,78 @@
{{- if ( not .Params ) -}}
{{- errorf "No params provided for blockquote" -}}
{{- /*
Renders a block quotation.
@params style Force a blockquote style. Optional.
@params cite URI for work. Optional.
@params source The speaker(s) of the quotation.
For works cited (optional):
@params ibid Whether to use ibidem as the source. Optional.
@see partials/cite.html.tmpl for full list of args.
For works cited that form part of a series (optional):
@params schemaTypeSeries The Schema.org `itemtype` value for the work series. Default 'CreativeWork'. Optional.
@params titleSeries Title of the work series to display. Optional.
@params citeSeries URI for work series. Optional.
@params titleSeriesLang Language code of a foreign-language work series' title. Optional.
@params titleSeriesTr English translation of a foreign-language work series' title. Optional.
@params numberSeries The number or code of the quoted work within its series. Optional.
*/ -}}
{{- $valid_styles := slice "" "epigram" "script" -}}
<!-- Variable assignment -->
{{- $style := default "" ( index .Params "style" ) -}}
{{- $cite := default "" ( index .Params "cite" ) -}}
{{- $ibid := default false ( index .Params "ibid" ) -}}
{{- $source := .Params.source -}}
{{- $isSourceHidden := default ( not ( or ( isset .Params "source" ) ( isset .Params "ibid" ) ) ) ( index .Params "hideSource" ) -}}
{{- $hasCitedWork := ( isset .Params "title" ) }}
{{- $hasCitedSeries := ( isset .Params "titleSeries" ) -}}
<!-- Validation -->
{{- if ( not ( in $valid_styles $style ) ) -}}
{{- errorf "Invalid blockquote style (%q) provided" $style -}}
{{- end -}}
{{- if ( not ( or ( isset .Params "source" ) ( isset .Params "ibid" ) ) ) -}}
{{- erroridf "blockquote-no-params" "No source provided for blockquote" -}}
{{- end -}}
{{- if ( not ( isset $.Params "cite" ) ) -}}
{{- erroridf "missing-cite" "No cite found for blockquote (%q)" .Page.File.Path -}}
{{- end -}}
<!-- Rendering -->
<figure
class="figure--blockquote blockquote{{- if .Params.style }} blockquote--{{- .Params.style -}}{{- end -}}"
class="figure--blockquote blockquote{{- with $style }} blockquote--{{- . -}}{{- end -}}"
itemscope
itemtype="Quotation"
role="group">
<blockquote
<blockquote
class="blockquote__body"
{{- if .Params.cite }} cite="{{ .Params.cite }}"{{- end -}}>
{{- with $cite }} cite="{{ . }}"{{- end -}}>
{{- .Inner | .Page.RenderString -}}
</blockquote>
<figcaption class="blockquote__caption">
{{- if .Params.ibid -}}
<figcaption class="blockquote__caption{{- if $isSourceHidden }} blockquote__caption--hidden{{- end -}}">
{{- if $ibid -}}
<abbr lang="la" title="ibīdem [in the same place]">Ibid.</abbr>
{{- else -}}
<span itemprop="spokenByCharacter">{{- .Params.source | safeHTML -}}</span>
{{- if .Params.title -}}, <span itemprop="isBasedOn">{{- partial "cite.html.tmpl" . -}}
{{- if ( isset .Params "titleSeries" ) }} (
{{- .Scratch.Set "cite" .Params.citeSeries -}}
{{- .Scratch.Set "title" .Params.titleSeries -}}
{{- .Scratch.Set "titleLang" .Params.titleSeriesLang -}}
{{- .Scratch.Set "titleTr" .Params.titleSeriesTr -}}
{{- .Scratch.Set "schemaType" .Params.schemaTypeSeries -}}
{{- partial "cite.html.tmpl" . -}}
{{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}}
){{- end -}}</span>
{{- else if $source -}}
<span temprop="spokenByCharacter">{{- $source | safeHTML -}}</span>
{{- if $hasCitedWork -}}, <span itemprop="isBasedOn">{{- partial "cite.html.tmpl" . -}}
{{- if $hasCitedSeries }} (
{{- .Scratch.Set "cite" .Params.citeSeries -}}
{{- .Scratch.Set "title" .Params.titleSeries -}}
{{- .Scratch.Set "titleLang" .Params.titleSeriesLang -}}
{{- .Scratch.Set "titleTr" .Params.titleSeriesTr -}}
{{- .Scratch.Set "schemaType" .Params.schemaTypeSeries -}}
{{- partial "cite.html.tmpl" . -}}
{{- with .Params.numberSeries }}, {{ . | safeHTML -}}{{- end -}}
){{- end -}}</span>
{{- end -}}
{{- end -}}
</figcaption>

View file

@ -0,0 +1,33 @@
{{- /*
Renders a button, or no-JS fallback.
@params id ID for button.
@params label Label text for button.
@params text Text for button.
*/ -}}
<!-- Validation -->
{{- if ( not ( isset .Params "id" ) ) -}}
{{- errorf "No ID set for button (%q)" .Page.File.Path -}}
{{- end -}}
{{- if ( not ( isset .Params "label" ) ) -}}
{{- errorf "No label set for button '%q' (%q)" .Params.id .Page.File.Path -}}
{{- end -}}
{{- if ( not ( isset .Params "text" ) ) -}}
{{- errorf "No text set for button '%q' (%q)" .Params.id .Page.File.Path -}}
{{- end -}}
<!-- Rendering -->
<noscript>You must have JavaScript enabled to interact with this button.</noscript>
<label class="label label--button">
{{- .Params.label -}}:
<button id="{{- .Params.id -}}" class="button">
{{- .Params.text -}}
</button>
</label>

View file

@ -4,14 +4,18 @@
<figure class="article__figure figure figure--chart{{ with .Get "class" }} {{ . }}{{ end }}" role="group">
{{- with .Get "chart-id" -}}
<canvas class="chart" id="{{ . }}">
You must enable Javascript to view this chart.
</canvas>
<div class="chart-container">
<canvas class="chart" id="{{ . }}">
You must enable Javascript to view this chart.
</canvas>
</div>
{{- end -}}
{{- with .Get "chart-id-2" -}}
<canvas class="chart" id="{{ . }}">
You must enable Javascript to view this chart.
</canvas>
<div class="chart-container">
<canvas class="chart" id="{{ . }}">
You must enable Javascript to view this chart.
</canvas>
</div>
{{- end -}}
{{- if or ( .Get "caption" ) ( .Get "title" ) -}}

View file

@ -1,4 +1,4 @@
<!--
{{- /*
Renders a work citation with semantic markup.
@params cite URI for work. Optional.
@ -9,7 +9,7 @@
@params title Title of the work to display.
@params titleLang Language code of a foreign-language work's title. Optional.
@params titleTr English translation of a foreign-language work's title. Optional.
-->
*/ -}}
<!-- Validation -->
@ -23,6 +23,6 @@
<!-- Rendering -->
{{- $citationId := cond ( .Params.cite | not | not ) .Params.cite .Params.title -}}
{{- $citationId := printf "%s%s" ( cond ( isset .Params "cite" ) .Params.cite .Params.title ) ( default "" .Params.shortTitle ) -}}
{{- /**/ -}}{{- partialCached "cite.html.tmpl" . $citationId -}}{{- /**/ -}}
{{- partialCached "cite.html.tmpl" . $citationId -}}

View file

@ -4,7 +4,7 @@
<h3 class="comment__author" itemprop="author">{{ .Params.author }}</h3>
{{- $publishDate := time .Params.publishDate -}}
<p class="comment__publish-date">
<time class="dt-published" datetime="{{ $publishDate.Format "2006-01-02T15:04:05-07:00" }}" itemprop="datePublished">{{ $publishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) $publishDate.Day }}st{{ else if in (slice 2 22) $publishDate.Day}}nd{{ else if in (slice 3 23) $publishDate.Day }}rd{{ else }}th{{ end }}</sup>, 1{{ $publishDate.Format "2006" | lang.NumFmt 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time>
<time class="dt-published" datetime="{{ $publishDate.Format "2006-01-02T15:04:05-07:00" }}" itemprop="datePublished">{{ $publishDate.Format "January 2" }}<sup>{{ if in (slice 1 21 31) $publishDate.Day }}st{{ else if in (slice 2 22) $publishDate.Day}}nd{{ else if in (slice 3 23) $publishDate.Day }}rd{{ else }}th{{ end }}</sup>, 1{{ $publishDate.Format "2006" | lang.FormatNumberCustom 0 }}&nbsp;<abbr style="font-variant: small-caps; font-size: 0.8em;" title="Holocene Era">HE</abbr></time>
</p>
{{- with .Params.source -}}
<p class="comment__source">Source: {{ . }}</p>

View file

@ -47,7 +47,7 @@
{{- partial "media/audio.html.tmpl" $src -}}
{{- else -}}
{{- partial "media/video.html.tmpl" ( dict "." $src "page_file_path" .Page.File.Path ) -}}
{{- partial "media/video.html.tmpl" ( dict "src" $src "page_file_path" .Page.File.Path ) -}}
{{- end -}}

View file

@ -29,7 +29,7 @@
{{- end -}}
<!-- Rendering -->
<div>
{{- if .Get "link" -}}
{{- if $linkedResource -}}
<a href="{{- $linkedResource.RelPermalink -}}"{{- with .Get "rel" }} rel="{{- . -}}"{{- end -}}>
@ -42,4 +42,9 @@
{{- if .Get "link" -}}
</a>
{{- end -}}
{{- end -}}
{{- with ( .Get "caption" ) -}}
<div class="figure__caption"><p class="figcaption__caption">{{ . | safeHTML }}</p></div>
{{- end -}}
</div>

View file

@ -40,8 +40,8 @@
{{- end -}}
{{- end -}}
{{- partial "media/video.html.tmpl" ( dict "." $src "page_file_path" .Page.File.Path ) -}}
{{- partial "media/video.html.tmpl" ( dict "src" $src "page_file_path" .Page.File.Path ) -}}
{{- if .Get "link" -}}
</a>
{{- end -}}
{{- end -}}