Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kdevo/osprey-delight.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdevo <kdevo@users.noreply.github.com>2019-11-24 13:00:53 +0300
committerkdevo <kdevo@users.noreply.github.com>2019-11-24 13:00:53 +0300
commitaace196cc554785ac8863d91fc2ca0b1e26d9042 (patch)
treefa04ecb124377b2a01c3bc46d376493d204d82fc /layouts
parentf8b42ce00d85f17a8ce9892b2d0d0b5bd95ebc68 (diff)
:tada: Initial commit of Osprey Delight
Diffstat (limited to 'layouts')
-rw-r--r--layouts/404.html45
-rw-r--r--layouts/_default/list.html5
-rw-r--r--layouts/_default/single.html4
-rw-r--r--layouts/index.html4
-rw-r--r--layouts/partials/about.html12
-rw-r--r--layouts/partials/blog.html2
-rw-r--r--layouts/partials/body-bottom.html34
-rw-r--r--layouts/partials/body-top.html23
-rw-r--r--layouts/partials/contact.html33
-rw-r--r--layouts/partials/css.html0
-rw-r--r--layouts/partials/footer.html39
-rw-r--r--layouts/partials/gallery.html20
-rw-r--r--layouts/partials/head.html75
-rw-r--r--layouts/partials/modals.html52
-rw-r--r--layouts/partials/scripts/contact.min.js1
-rw-r--r--layouts/shortcodes/abbr.html1
-rw-r--r--layouts/shortcodes/icon.html2
-rw-r--r--layouts/shortcodes/term.html3
-rw-r--r--layouts/shortcodes/visit-github-link.md1
-rw-r--r--layouts/sitemap.xml2
20 files changed, 221 insertions, 137 deletions
diff --git a/layouts/404.html b/layouts/404.html
index bd56fb0..ce32175 100644
--- a/layouts/404.html
+++ b/layouts/404.html
@@ -4,11 +4,29 @@
<body>
{{ partial "body-top" . }}
<main>
-
<div class="row full center-xs middle-xs">
<div class="col-xs-12">
- <h1>404!</h1>
- <p>{{ i18n "404Message" }}</p>
+ <h1>404: Not Found</h1>
+ <p>Sorry, the requested page does not exist.</p>
+ <div style="transform:rotate(-180deg);text-align:center"><p id="noChoiceFound">{{ "The :cake: is a lie!" | emojify }}</p></div>
+ <div id="foundChoices" hidden>We can offer you the following similar page(s):</div>
+ <ul id="choices" hidden>
+ {{- range .Data.Pages -}}{{ if .Title -}}
+ <li class="choice">{{ with .Section }}[{{ . | singularize | humanize }}]{{ end }}
+ <a href="{{ .Permalink }}">{{ ":link:" | emojify }} {{ .Title }}</a>{{/*{{ if isset .Params "tags" }}&nbsp;{{- partial "tags.html" . -}}{{- end }}*/}}</li>
+ {{- end }}{{- end }}
+ </ul>
+ <script type="application/json" id="jsonContent">
+ [
+ {{ range $index, $page := .Data.Pages -}}{{ if .Title -}}
+ {{ if isset .Params "tags" -}}
+ {{ printf `%s %s %s %s %s` .Section .Title (.Description | emojify) .Permalink (delimit .Params.tags ";" )}}
+ {{ else }}
+ {{ printf `%s %s %s %s` .Section .Title .Description .Permalink }}
+ {{- end }}{{ if lt ($index) (sub (len $.Data.Pages) 1) -}},{{- end }}
+ {{- end }}{{ end }}
+ ]
+ </script>
</div>
</div>
@@ -16,4 +34,25 @@
{{ partial "footer.html" . }}
{{ partial "body-bottom" . }}
</body>
+ <script>
+ const loc = window.location.pathname;
+ const seg = loc.substring(loc.lastIndexOf('/') + 1).toUpperCase();
+ if (seg.length > 1) {
+ const els = document.getElementsByClassName("choice");
+ const txt = JSON.parse(document.getElementById('jsonContent').innerHTML);
+ var cnt = 0;
+ for (var i = 0; i < els.length; i++) {
+ if (txt[i].toUpperCase().includes(seg)) {
+ cnt++;
+ } else {
+ els[i].style.display = "none";
+ }
+ }
+ if (cnt > 0) {
+ document.getElementById('noChoiceFound').setAttribute("hidden", true);
+ document.getElementById('foundChoices').removeAttribute("hidden");
+ document.getElementById('choices').removeAttribute("hidden");
+ }
+ }
+ </script>
</html>
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index ee85dfa..1a239d7 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -1,10 +1,12 @@
+{{ if .Site.Params.enforceSinglePage -}}
+<meta http-equiv="refresh" content="0; url={{ .Site.BaseURL }}">
+{{- else -}}
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
{{ partial "head.html" . }}
<body>
{{ partial "body-top" . }}
<main>
-
<section class="blog" id="blog">
<div class="container">
<div class="row center-xs">
@@ -30,3 +32,4 @@
{{ partial "body-bottom" . }}
</body>
</html>
+{{- end }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index c13ba22..ec488c6 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,3 +1,6 @@
+{{ if .Site.Params.enforceSinglePage -}}
+<meta http-equiv="refresh" content="0; url={{ .Site.BaseURL }}">
+{{- else -}}
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
{{ partial "head.html" . }}
@@ -35,3 +38,4 @@
{{ partial "body-bottom" . }}
</body>
</html>
+{{- end }} \ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
index 67841d0..7f4a275 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -9,12 +9,12 @@
{{ partial "about.html" . }}
<!-- Gallery -->
- {{ if not (eq (len (where .Data.Pages "Section" "gallery")) 0) }}
+ {{ if not (eq (len (where .Site.RegularPages "Section" "gallery")) 0) }}
{{ partial "gallery.html" . }}
{{ end }}
<!-- Blog -->
- {{ if not (eq (len (where .Data.Pages "Section" "blog")) 0) }}
+ {{ if not (eq (len (where .Site.RegularPages "Section" "blog")) 0) }}
{{ partial "blog.html" . }}
{{ end }}
diff --git a/layouts/partials/about.html b/layouts/partials/about.html
index 7ef0385..78b98bd 100644
--- a/layouts/partials/about.html
+++ b/layouts/partials/about.html
@@ -1,6 +1,6 @@
{{ $directory := "content/" }}
{{ $filename := "about.md" }}
-{{ if (where (readDir $directory) "Name" $filename) }}
+{{ if (where (readDir $directory) "Name" $filename) -}}
<section class="about" id="about">
<div class="container middle-xs">
<div class="row center-xs">
@@ -8,13 +8,13 @@
<h1>{{ with $.Site.GetPage "page" "about" }}{{ .Title }}{{ end }}</h1>
</div>
</div>
- <div class="row">
+ <div class="row center-xs">
<div class="col-xs-12 middle-xs">
- {{ with $.Site.GetPage "page" "about" }}
- {{ .Content }}
- {{ end }}
+ {{ with $.Site.GetPage "page" "about" -}}
+ {{ .Content }}
+ {{- end }}
</div>
</div>
</div>
</section>
-{{ end }}
+{{- end }}
diff --git a/layouts/partials/blog.html b/layouts/partials/blog.html
index f1bc8e2..57cd613 100644
--- a/layouts/partials/blog.html
+++ b/layouts/partials/blog.html
@@ -5,7 +5,7 @@
</div>
<div class="row">
<div class="col-xs-12 posts-list">
- {{ range first 5 (where .Data.Pages "Section" "blog") }}
+ {{ range first 5 (where .Site.RegularPages "Section" "blog") }}
<article>
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
<div class=sub-header>
diff --git a/layouts/partials/body-bottom.html b/layouts/partials/body-bottom.html
index c846f5a..4c48220 100644
--- a/layouts/partials/body-bottom.html
+++ b/layouts/partials/body-bottom.html
@@ -1,22 +1,14 @@
-{{ if not (eq (len (where .Data.Pages "Section" "gallery")) 0) }}
+{{ $scripts := slice }}
+{{ $scripts = $scripts | append (resources.Get "js/src/misc.js") }}
+{{ if .Site.Params.Feat.useTermynal -}}
+{{ $scripts = $scripts | append (resources.Get "js/src/termynal.js") }}
+{{- end }}
+{{ if not (eq (len (where .Site.RegularPages "Section" "gallery")) 0) -}}
{{ partial "modals.html" . }}
- <script src="/scripts/{{ if .Site.Params.cacheBustJS }}{{ index .Site.Data.cachedAssets "modal.js" }}{{ else }}modal.min.js{{ end }}" type="text/javascript"></script>
-{{ end }}
-
-{{ if .Site.Params.highlightJS }}
- {{ if .Site.Params.highlightJSScript }}
- <script src="{{ .Site.Params.highlightJSScript }}"></script>
- {{ else }}
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
- {{ end }}
- <script>hljs.initHighlightingOnLoad();</script>
-{{ end }}
-
-{{ if .IsHome }}
- <script src="/scripts/{{ if .Site.Params.cacheBustJS }}{{ index .Site.Data.cachedAssets "index.js" }}{{ else }}index.min.js{{ end }}" type="text/javascript"></script>
- {{ if or (and (.Site.Params.ajaxFormspree) (.Site.Params.ajaxFormspreeGold)) (.Site.Params.ajaxBasin) }}
- <script>{{ partial "scripts/contact.min.js" . | safeJS }}</script>
- {{ end }}
-{{ else }}
- <script src="/scripts/{{ if .Site.Params.cacheBustJS }}{{ index .Site.Data.cachedAssets "main.js" }}{{ else }}main.min.js{{ end }}" type="text/javascript"></script>
-{{ end }}
+ {{ $scripts = $scripts | append (resources.Get "js/src/modal.js" | resources.ExecuteAsTemplate "js/src/modal.js" .) }}
+{{- end }}
+{{ $scripts = $scripts | append (resources.Get "js/src/nav.js" | resources.ExecuteAsTemplate "js/src/nav.js" .) }}
+{{ if (.Site.Params.Feat.ajaxBasin) -}}
+{{ $scripts = $scripts | append (resources.Get "js/src/contact.js" | resources.ExecuteAsTemplate "js/src/contact.js" .) }}
+{{- end }}
+<script src="{{ ($scripts | resources.Concat "js/bundle.js" | minify | fingerprint).Permalink }}" type="text/javascript"></script>
diff --git a/layouts/partials/body-top.html b/layouts/partials/body-top.html
index 4dc4224..787ecb2 100644
--- a/layouts/partials/body-top.html
+++ b/layouts/partials/body-top.html
@@ -1,6 +1,6 @@
-{{ if .Site.Params.googleTagManager }}
+{{ if .Site.Params.Feat.googleTagManager }}
<!-- Google Tag Manager (noscript) -->
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ .Site.Params.googleTagManager }}"
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ .Site.Params.Feat.googleTagManager }}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{{ end }}
@@ -9,11 +9,15 @@
<header class="row middle-xs center-xs">
<div class="col-xs-12">
<div class="row middle-xs center-xs">
- <div class="col-xs-12"><img {{ if .Site.Params.lazyLoading }}data-src="{{ .Site.Params.logoBig }}" lazyload="on"{{ else }}src="{{ .Site.Params.logoBig }}"{{ end }} alt="{{ .Site.Title }}" class="home-logo {{ if .Site.Params.lazyLoading }}lazyload{{ end }}"></div>
+ <div class="col-xs-12"><img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ .Site.Params.logoBig }}" onclick="onLogoClick()" lazyload="on"{{ else }}src="{{ .Site.Params.logoBig }}"{{ end }} alt="{{ .Site.Title }}" class="home-logo {{ if .Site.Params.Feat.lazyLoading }}lazyload{{ end }}"></div>
</div>
<div class="row middle-xs center-xs">
<div class="col-xs-12">
- <h1>{{ .Site.Params.tagline }}<span class="cursor">|</span></h1>
+ <h1>{{ .Site.Params.tagline | markdownify }}<span class="cursor">|</span></h1>
+ <noscript>
+ <span class="icon icon-attention-circled icon-2x" style="color:red"></span>
+ <h1>{{ i18n "noJsMsg" }}</h1>
+ </noscript>
</div>
</div>
</div>
@@ -22,17 +26,16 @@
<nav class="row middle-xs center-xs">
<div class="col-xs-6 col-sm-1 logo">
- <a href="{{ "#" | relLangURL }}"><img {{ if .Site.Params.lazyLoading }}data-src="{{ .Site.Params.logoSmall }}" class="lazyload" lazyload="on"{{ else }}src="{{ .Site.Params.logoSmall }}"{{ end }} alt="{{ .Site.Title }}"></a>
+ <a href="{{ "#" | relLangURL }}"><img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ .Site.Params.logoSmall }}" class="lazyload" lazyload="on"{{ else }}src="{{ .Site.Params.logoSmall }}"{{ end }} alt="{{ .Site.Title }}"></a>
</div>
{{ range .Site.Menus.main }}
- <div class="col-xs-3 col-sm-2">
- <h3><a href="{{ .URL }}">{{ .Name }}</a></h3>
+ <div class="col-xs-3 col-sm-2 nav-item">
+ <h3><a href="{{ .URL }}">{{ .Pre }}{{ .Name }}</a></h3>
</div>
{{ end }}
<div class="col-xs-6 col-sm-1 nav-toggle">
<a href="" class="nav-icon" onclick="return false">
- <img {{ if .Site.Params.lazyLoading }}data-src="/images/icon-menu.png" class="lazyload" lazyload="on"{{ else }}src="/images/icon-menu.png"{{ end }} alt="Open Menu">
- <img {{ if .Site.Params.lazyLoading }}data-src="/images/icon-x.png" class="lazyload" lazyload="on"{{ else }}src="/images/icon-x.png"{{ end }} alt="Close Menu" style="display: none;">
+ <i id="open" class="icon icon-2x icon-menu"></i>
</a>
</div>
</nav>
@@ -41,7 +44,7 @@
<div class="col-xs-12">
<div class="row middle-xs center-xs">
{{ range .Site.Menus.main }}
- <div class="col-xs-12"><h1><a href="{{ .URL }}">{{ .Name }}</a></h1></div>
+ <div class="col-xs-12"><h1><a href="{{ .URL }}">{{ .Pre }}{{ .Name }}</a></h1></div>
{{ end }}
</div>
</div>
diff --git a/layouts/partials/contact.html b/layouts/partials/contact.html
index 5d09874..3086bbe 100644
--- a/layouts/partials/contact.html
+++ b/layouts/partials/contact.html
@@ -1,26 +1,39 @@
-{{ if or (.Site.Params.ajaxFormspree) (.Site.Params.ajaxBasin) }}
+{{ if (.Site.Params.Feat.ajaxBasin) }}
<section class="contact" id="contact">
<div class="container">
<div class="row">
<div class="col-xs-12">
- <h1>{{ i18n "letsChat" }}</h1>
+ <h1><span class="icon icon-mail-alt"></span>{{ i18n "letsChat" }}</h1>
+ <noscript>{{ i18n "nojsForm" }}</noscript>
</div>
</div>
- <form id="form-contact" action="{{ if .Site.Params.ajaxFormspree }}https://formspree.io/{{ .Site.Params.email }}{{ else if .Site.Params.ajaxBasin }}{{ .Site.Params.ajaxBasin }}{{ end }}" method="POST">
+ <form id="form-contact" action="https://formspree.io" method="POST">
<div class="row center-xs">
<div class="col-xs-12 col-sm-6"><input type="text" name="name" aria-label="name" placeholder="{{ i18n "name" }}" required></div>
<div class="col-xs-12 col-sm-6"><input type="email" id="email" name="email" aria-label="email address" placeholder="{{ i18n "email" }}" required></div>
- <div class="col-xs-12"><input type="text" name="_subject" aria-label="email subject" placeholder="{{ i18n "subject" }}" required></div>
- <div class="col-xs-12"><textarea name="message" aria-label="email message" placeholder="{{ i18n "message" }}" required></textarea></div>
- {{ if .Site.Params.ajaxFormspree }}
- <input type="text" name="_gotcha" style="display:none">
- <input type="hidden" name="_next" value="/">
- {{ end }}
+ {{ if isset .Site.Params.Contact "select" -}}
+ <div class="col-xs-12 col-sm-6">
+ <select name="matter" required aria-label="email matter">
+ {{ range .Site.Params.Contact.select -}}
+ <option value="{{ . }}">{{ i18n . }}</option>
+ {{- end }}
+ </select>
+ </div>
+ {{- end }}
+ <div class="col-xs-12{{ if isset .Site.Params.Contact "select" }} col-sm-6{{ end }}"><input type="text" name="_subject" aria-label="email subject" placeholder="{{ i18n "subject" }}" required></div>
+ <div class="col-xs-12">
+ <textarea name="message" aria-label="DO NOT USE, ENABLE JS!" required></textarea>
+ </div>
+ <div class="col-xs-12">
+ <textarea name="message2" aria-label="email message" placeholder="{{ i18n "message" }}" required hidden></textarea>
+ </div>
<div class="col-xs-12 contact-submit">
<input id="form-submit" type="submit" value="{{ i18n "send" }}">
- <span id="form-thankyou" style="visibility:hidden">{{ i18n "thanksForYourEmail" }}</span>
+ <span id="form-sending" hidden><span class="icon icon-rocket"></span>{{ i18n "sendingEmail" }}</span>
+ <span id="form-thankyou" hidden><span class="icon icon-ok-circled"></span>{{ i18n "thanksForYourEmail" }}</span>
+ <span id="form-error" hidden><span class="icon icon-attention-circled"></span>{{ i18n "errorWhileSendingEmail" }}</span>
</div>
</div>
</form>
diff --git a/layouts/partials/css.html b/layouts/partials/css.html
deleted file mode 100644
index e69de29..0000000
--- a/layouts/partials/css.html
+++ /dev/null
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 0ce30cb..3995e44 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -1,30 +1,23 @@
<footer class="row middle-xs center-xs">
+ {{ range $name, $url := .Site.Params.Social -}}
+ <div class="col-xs-3 col-md-2">
+ <a target="_blank" rel="noopener" href="{{ $url }}"><i class="icon icon-{{ $name }}"></i></a>
+ <div class="mobile-hidden"><small>&nbsp;{{ i18n $name }}</small></div>
+ </div>
+ {{- end }}
- {{ if .Site.Params.facebook }}
- <div class="col-xs-3 col-md-2"><a target="_blank" rel="noopener" href="https://facebook.com/{{ .Site.Params.facebook }}">{{ i18n "facebook" }}</a></div>
- {{ end }}
-
- {{ if .Site.Params.github }}
- <div class="col-xs-3 col-md-2"><a target="_blank" rel="noopener" href="https://github.com/{{ .Site.Params.github }}">{{ i18n "github" }}</a></div>
- {{ end }}
-
- {{ if .Site.Params.linkedin }}
- <div class="col-xs-3 col-md-2"><a target="_blank" rel="noopener" href="https://linkedin.com/in/{{ .Site.Params.linkedin }}">{{ i18n "linkedin" }}</a></div>
- {{ end }}
-
- {{ if .Site.Params.twitter }}
- <div class="col-xs-3 col-md-2"><a target="_blank" rel="noopener" href="https://twitter.com/{{ .Site.Params.twitter }}">{{ i18n "twitter" }}</a></div>
- {{ end }}
-
- {{ if or (.Site.Params.copyright) (.Site.Params.credit) }}
+ {{ if (.Site.Params.copyright) -}}
<div class="col-xs-12">
+ <small>
{{ if .Site.Params.copyright }}
- {{ i18n "copyright" }} &copy; {{ now.Format "2006" }} {{ .Site.Title }}.
- {{ end }}
- {{ if .Site.Params.credit }}
- <a href="https://tomanistor.com" target="_blank" rel="nofollow">{{ i18n "themeDevelopedBy" }} Toma Nistor</a>
+ {{ i18n "copyright" }} &copy; {{ now.Format "2006" }} {{ .Site.Title }}
{{ end }}
+ {{ if or (.Site.Params.credit) (eq (isset .Site.Params "credit") false) -}}
+ <div class="col-xs-12">
+ <small>Theme: <a href="https://github.com/kdevo/osprey-delight" target="_blank">osprey-delight</a> (forked from <a href="https://github.com/tomanistor/osprey" target="_blank">osprey</a> by <a href="https://tomanistor.com" target="_blank" rel="nofollow">Toma Nistor</a>).</small>
+ </div>
+ {{- end }}
+ </small>
</div>
- {{ end }}
-
+ {{- end }}
</footer>
diff --git a/layouts/partials/gallery.html b/layouts/partials/gallery.html
index 813a69d..8be4166 100644
--- a/layouts/partials/gallery.html
+++ b/layouts/partials/gallery.html
@@ -4,7 +4,9 @@
<!-- First 4 characters of each gallery page's unique ID -->
{{ range where .Site.RegularPages "Section" "gallery" }}
<!-- Scratch is used to set page-scoped variable outside of this loop-->
- {{ .Scratch.Set "$modalID" (slicestr .UniqueID 0 4) }}
+ <!-- {{ .Scratch.Set "$modalID" (slicestr .File.UniqueID 0 4) }} -->
+ {{ .Scratch.Set "$modalID" .File.BaseFileName }}
+
{{ end }}
{{ $galleryTotal := len (where .Site.RegularPages "Section" "gallery") }}
@@ -18,10 +20,10 @@
{{ range first 3 $galleryReverse }}
<div class="gallery-item col-xs-12" onclick {{ if .Params.color }}style="background-color:{{ .Params.color }}"{{ end }}>
<div class= "gallery-img-container">
- <img {{ if .Site.Params.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
+ <img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
</div>
<div class="row middle-xs center-xs overlay">
- <a href="#modal-{{ .Scratch.Get "$modalID" }}" data-modal="modal-{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
+ <a href="#{{ .Scratch.Get "$modalID" }}" data-modal="{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
<h2>{{ .Title }}</h2>
</div>
</div>
@@ -33,10 +35,10 @@
{{ range first 3 $galleryReverse }}
<div class="gallery-item col-xs-12 col-md-4" onclick {{ if .Params.color }}style="background-color:{{ .Params.color }}"{{ end }}>
<div class= "gallery-img-container">
- <img {{ if .Site.Params.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
+ <img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
</div>
<div class="row middle-xs center-xs overlay">
- <a href="#modal-{{ .Scratch.Get "$modalID" }}" data-modal="modal-{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
+ <a href="#{{ .Scratch.Get "$modalID" }}" data-modal="{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
<h2>{{ .Title }}</h2>
</div>
</div>
@@ -56,10 +58,10 @@
{{- end }}
{{- end }}" onclick {{ if .Params.color }}style="background-color:{{ .Params.color }}"{{ end }}>
<div class= "gallery-img-container">
- <img {{ if .Site.Params.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
+ <img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
</div>
<div class="row middle-xs center-xs overlay">
- <a href="#modal-{{ .Scratch.Get "$modalID" }}" data-modal="modal-{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
+ <a href="#{{ .Scratch.Get "$modalID" }}" data-modal="{{ .Scratch.Get "$modal" }}" class="gallery-modal-link"></a>
<h2>{{ .Title }}</h2>
</div>
</div>
@@ -83,10 +85,10 @@
{{- end }}
{{- end }}" onclick {{ if .Params.color }}style="background-color:{{ .Params.color }}"{{ end }}>
<div class= "gallery-img-container">
- <img {{ if .Site.Params.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
+ <img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload" lazyload="on"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
</div>
<div class="row middle-xs center-xs overlay">
- <a href="#modal-{{ .Scratch.Get "$modalID" }}" class="gallery-modal-link"></a>
+ <a href="#{{ .Scratch.Get "$modalID" }}" class="gallery-modal-link" data-modal="{{ .Scratch.Get "$modal" }}"></a>
<h2>{{ .Title }}</h2>
</div>
</div>
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 73307b8..24f62c6 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -1,11 +1,11 @@
<head>
- {{ if .Site.Params.googleTagManager }}
+ {{ if .Site.Params.Feat.googleTagManager }}
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
- })(window,document,'script','dataLayer','{{ .Site.Params.googleTagManager }}');</script>
+ })(window,document,'script','dataLayer','{{ .Site.Params.Feat.googleTagManager }}');</script>
<!-- End Google Tag Manager -->
{{ end }}
@@ -15,13 +15,13 @@
<title>
{{ $url := replace .Permalink ( printf "%s" .Site.BaseURL) "" }}
- {{- if .IsHome -}}
+ {{ if .IsHome -}}
{{ .Site.Title }}
{{- else if .Params.heading -}}
{{ .Params.heading }}
{{- else -}}
{{ .Title }} | {{ .Site.Title }}
- {{- end -}}
+ {{- end }}
</title>
<meta name="title" content="{{ if .IsHome }}{{ .Site.Title }}{{ else if .Params.heading }}{{ .Params.heading }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end}}">
@@ -32,70 +32,69 @@
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="referrer" content="no-referrer-when-downgrade">
- <meta name="generator" content="{{ .Hugo.Generator }}">
<base href="{{ .Site.BaseURL }}">
- {{ if .Description }}
+ {{ if .Description -}}
<meta name="description" content="{{ .Description }}">
- {{ else if .Site.Params.description }}
+ {{- else if .Site.Params.description -}}
<meta name="description" content="{{ .Site.Params.description }}">
- {{ else if .Summary }}
+ {{- else if .Summary -}}
<meta name="description" content="{{ .Summary }}">
- {{ end }}
+ {{- end }}
- {{ if .Site.Params.author }}
+ {{ if .Site.Params.author -}}
<meta name="author" content="{{ .Site.Params.author }}">
- {{ end }}
+ {{- end }}
- {{ if .Site.Params.twitter }}
+ {{ if .Site.Params.twitter -}}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@{{ .Site.Params.twitter }}">
<meta name="twitter:creator" content="@{{ .Site.Params.twitter }}">
- {{ end }}
+ {{- end }}
<meta property="og:title" content="{{ if .IsHome }}{{ .Site.Title }}{{ else if .Params.heading }}{{ .Params.heading }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}">
<meta property="og:type" content="website">
<meta property="og:url" content="{{ .Site.BaseURL }}">
- {{ if .Site.Params.opengraphImage}}
+ {{ if .Site.Params.opengraphImage -}}
<meta property="og:image" content="{{ .Site.BaseURL }}{{ .Site.Params.opengraphImage}}">
- {{ end }}
+ {{- end }}
- {{ if .Description }}
+ {{ if .Description -}}
<meta name="og:description" content="{{ .Description }}">
- {{ else if .Site.Params.description }}
+ {{- else if .Site.Params.description -}}
<meta property="og:description" content="{{ .Site.Params.description}}">
- {{ else if .Summary }}
+ {{- else if .Summary -}}
<meta name="og:description" content="{{ .Summary }}">
- {{ end }}
+ {{- end }}
- {{ if .Site.Params.favicon }}
+ {{ if .Site.Params.favicon -}}
<link rel="icon" type="image/png" sizes="16x16" href="{{ .Site.Params.favicon }}">
<meta name="theme-color" content="#FFF">
- {{ end }}
+ {{- end }}
<link rel="canonical" href="{{ .Permalink }}">
+
+ {{ with .OutputFormats.Get "RSS" -}}
+ <link href="{{ .Permalink }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}">
+ {{- end }}
- {{ if .RSSLink }}
- <link href="{{ .RSSLink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}">
- {{ end }}
-
- <link rel="stylesheet" href="{{ .Site.BaseURL }}/styles/{{ if .Site.Params.cacheBustCSS }}{{ index .Site.Data.cachedAssets "main.css" }}{{ else }}main.css{{ end }}" type="text/css">
+ <link rel="stylesheet" href="{{ (resources.Get "sass/main.scss" | resources.ExecuteAsTemplate "sass/main.scss" . | resources.ToCSS (dict "targetPath" "style.css" "outputStyle" "compressed") | resources.Fingerprint).Permalink }}" type="text/css">
- {{ if .Site.Params.customCSS }}
- {{ partial "css.html" . }}
- {{ end }}
+ {{ if .Site.Params.Feat.customCSS -}}
+ {{ (resources.Get "custom.css") }}
+ {{- end }}
- {{ if .Site.Params.lazyLoading }}
+ {{ if .Site.Params.Feat.lazyLoading -}}
<style>.lazyload{opacity:.0001;}.logo .lazyload{min-width:10em;}</style>
- <script src="/scripts/vendor/lazysizes.min.js" async></script>
- {{ end }}
+ <script src="{{ (resources.Get "js/vendor/lazysizes.min.js").Permalink }}" async></script>
+ {{- end }}
- {{ if .Site.Params.highlightJS }}
- {{ if .Site.Params.highlightJSStyle }}
- <link rel="stylesheet" href="{{ .Site.Params.highlightJSStyle }}">
- {{ else }}
+ {{ if .Site.Params.Feat.highlightJS -}}
+ {{ if .Site.Params.Feat.Feat.highlightJSStyle -}}
+ <link rel="stylesheet" href="{{ .Site.Params.Feat.Feat.highlightJSStyle }}">
+ {{- else -}}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
- {{ end }}
- {{ end }}
+ {{- end }}
+ {{- end }}
</head>
diff --git a/layouts/partials/modals.html b/layouts/partials/modals.html
index 9e0b163..cc352d5 100644
--- a/layouts/partials/modals.html
+++ b/layouts/partials/modals.html
@@ -1,34 +1,64 @@
{{ range where .Site.RegularPages "Section" "gallery" }}
<!-- First 4 characters of each gallery page's unique ID -->
- {{ $modalID := (slicestr .UniqueID 0 4) }}
+ <!-- {{ $modalID := (slicestr .File.UniqueID 0 4) }} -->
+ {{ $modalID := .File.BaseFileName }}
- <div id="modal-{{ $modalID }}" class="modal">
+
+ <div id="{{ $modalID }}" class="modal">
<!-- Modal box -->
<div class="modal-box">
- <span class="close">&times;</span>
+ <span class="close icon icon-cancel-circled"></span>
<div class="modal-container">
-
<div class="modal-header">
<div class="modal-header-img-container" {{ if .Params.color }}style="background-color:{{ .Params.color }}"{{ end }}>
- <img {{ if .Site.Params.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
+ <img {{ if .Site.Params.Feat.lazyLoading }}data-src="{{ "images/" | relURL }}{{ .Params.image}}" class="lazyload"{{ else }}src="{{ "images/" | relURL }}{{ .Params.image}}"{{ end }} {{ if .Params.alt }}alt="{{ .Params.alt }}"{{ end }}>
</div>
</div>
- <div class="modal-content">
+ <div class="modal-content"{{ if eq .Params.type "term" -}} hidden id="content-{{ $modalID }}" {{- end}}>
<h2>{{ .Params.title }}</h2>
-
<article class="entry-content">
{{ .Content }}
</article>
-
- {{ if .Params.link1 }}<h3><a href="{{ .Params.link1 }}">{{ i18n "view" }}</a></h3>{{ end }}
- {{ if .Params.link2 }}<h3><a href="{{ .Params.link2 }}">{{ i18n "code" }}</a></h3>{{ end }}
+ <div class="row center-xs">
+ {{ if .Params.link1 -}}
+ <div class="col-xs-6">
+ <div class="box">
+ <a href="{{ .Params.link1 }}">
+ <button type="submit"><span class="icon icon-right-circled"></span> {{ i18n "view" }}</button>
+ </a>
+ </div>
+ </div>
+ {{- end }}
+ {{ if .Params.link2 -}}
+ <div class="col-xs-6">
+
+ <div class="box">
+ <a href="{{ .Params.link2 }}" target="_blank">
+ <button type="submit"><span class="icon icon-terminal"></span>{{ i18n "code" }}</button>
+ </a>
+ </div>
+ </div>
+ {{- end }}
+ </div>
</div>
+ {{ if eq .Params.type "term" -}}
+ <div class="term-content">
+ <div id="term-{{ $modalID }}" data-termynal>
+ {{ range (index .Site.Data (printf "term-%s" $modalID) "lines") }}
+ {{ if eq .type "progress" }}
+ <span data-ty="{{ .type }}" data-ty-delay="{{ .wait }}" data-ty-progressPercent="{{ .data }}"></span>
+ {{ else }}
+ <span data-ty="{{ .type }}" data-ty-delay="{{ .wait }}">{{ .data }}</span>
+ {{ end }}
+ {{ end }}
+ </div>
+ </div>
+ {{- end }}
</div>
</div>
-
</div>
{{ end }}
diff --git a/layouts/partials/scripts/contact.min.js b/layouts/partials/scripts/contact.min.js
deleted file mode 100644
index f91819a..0000000
--- a/layouts/partials/scripts/contact.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){var e=document.querySelector.bind(document);e("#form-contact").addEventListener("submit",function(s){s.preventDefault();var t=e("input[name=name]").value,i=e("input[name=email]").value,a=e("input[name=_subject]").value,n=e("textarea[name=message]").value,o=new XMLHttpRequest,l={name:t,_replyto:i,email:i,_subject:a,message:n};o.open("POST","{{ if .Site.Params.ajaxFormspree }}https://formspree.io/{{ .Site.Params.email }}{{ else if .Site.Params.ajaxBasin }}{{ .Site.Params.ajaxBasin }}.json{{ end }}",!0),o.setRequestHeader("Content-Type","application/json"),o.setRequestHeader("Accept","application/json"),o.onreadystatechange=function(){function s(){i.style.visibility="hidden",i.classList.add("hide"),i.classList.remove("show"),t.style.visibility="visible",t.classList.add("show"),t.classList.remove("hide")}if(4===o.readyState&&200===o.status){e("#form-contact").reset();var t=e("#form-submit"),i=e("#form-thankyou");!function(){t.style.visibility="hidden",t.classList.add("hide"),t.classList.remove("show"),i.style.visibility="visible",i.classList.add("show"),i.classList.remove("hide"),setTimeout(s,6e3)}()}},o.send(JSON.stringify(l))})}();
diff --git a/layouts/shortcodes/abbr.html b/layouts/shortcodes/abbr.html
new file mode 100644
index 0000000..c993a3c
--- /dev/null
+++ b/layouts/shortcodes/abbr.html
@@ -0,0 +1 @@
+<abbr title="{{ .Get 0 }}">{{ with .Inner -}}{{ . | markdownify }}{{ else }}{{ range (split (.Get 0) " ") }}{{ index (split . "") 0 }}{{ end }}{{- end }}</abbr> \ No newline at end of file
diff --git a/layouts/shortcodes/icon.html b/layouts/shortcodes/icon.html
new file mode 100644
index 0000000..dc99e28
--- /dev/null
+++ b/layouts/shortcodes/icon.html
@@ -0,0 +1,2 @@
+{{- .Scratch.Add "usedIcons" (slice (.Get 0)) -}}
+<i class='icon icon-{{ .Get 0 }}{{ with .Get "add" }} {{.}}{{ end }}'></i>
diff --git a/layouts/shortcodes/term.html b/layouts/shortcodes/term.html
new file mode 100644
index 0000000..cb24367
--- /dev/null
+++ b/layouts/shortcodes/term.html
@@ -0,0 +1,3 @@
+<div id="termynal" data-termynal>
+{{ with .Inner -}}{{ . | safeHTML }}{{- end }}
+</div> \ No newline at end of file
diff --git a/layouts/shortcodes/visit-github-link.md b/layouts/shortcodes/visit-github-link.md
new file mode 100644
index 0000000..9aa2687
--- /dev/null
+++ b/layouts/shortcodes/visit-github-link.md
@@ -0,0 +1 @@
+<h3><a href="{{ .Site.Params.external.github }}/{{ .Get 0 }}"><i class='icon icon-right-circled'></i>&nbsp;Visit the GitHub project!</a></h3>
diff --git a/layouts/sitemap.xml b/layouts/sitemap.xml
index 7708755..90504da 100644
--- a/layouts/sitemap.xml
+++ b/layouts/sitemap.xml
@@ -1,6 +1,6 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
- {{ range (where .Data.Pages "Section" "!=" "gallery") }}
+ {{ range (where .Site.RegularPages "Section" "!=" "gallery") }}
<url>
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}