diff options
author | kdevo <kdevo@users.noreply.github.com> | 2019-11-24 13:00:53 +0300 |
---|---|---|
committer | kdevo <kdevo@users.noreply.github.com> | 2019-11-24 13:00:53 +0300 |
commit | aace196cc554785ac8863d91fc2ca0b1e26d9042 (patch) | |
tree | fa04ecb124377b2a01c3bc46d376493d204d82fc /layouts | |
parent | f8b42ce00d85f17a8ce9892b2d0d0b5bd95ebc68 (diff) |
:tada: Initial commit of Osprey Delight
Diffstat (limited to 'layouts')
-rw-r--r-- | layouts/404.html | 45 | ||||
-rw-r--r-- | layouts/_default/list.html | 5 | ||||
-rw-r--r-- | layouts/_default/single.html | 4 | ||||
-rw-r--r-- | layouts/index.html | 4 | ||||
-rw-r--r-- | layouts/partials/about.html | 12 | ||||
-rw-r--r-- | layouts/partials/blog.html | 2 | ||||
-rw-r--r-- | layouts/partials/body-bottom.html | 34 | ||||
-rw-r--r-- | layouts/partials/body-top.html | 23 | ||||
-rw-r--r-- | layouts/partials/contact.html | 33 | ||||
-rw-r--r-- | layouts/partials/css.html | 0 | ||||
-rw-r--r-- | layouts/partials/footer.html | 39 | ||||
-rw-r--r-- | layouts/partials/gallery.html | 20 | ||||
-rw-r--r-- | layouts/partials/head.html | 75 | ||||
-rw-r--r-- | layouts/partials/modals.html | 52 | ||||
-rw-r--r-- | layouts/partials/scripts/contact.min.js | 1 | ||||
-rw-r--r-- | layouts/shortcodes/abbr.html | 1 | ||||
-rw-r--r-- | layouts/shortcodes/icon.html | 2 | ||||
-rw-r--r-- | layouts/shortcodes/term.html | 3 | ||||
-rw-r--r-- | layouts/shortcodes/visit-github-link.md | 1 | ||||
-rw-r--r-- | layouts/sitemap.xml | 2 |
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" }} {{- 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> {{ 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" }} © {{ 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" }} © {{ 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">×</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> 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 }} |