summaryrefslogtreecommitdiff
path: root/themes/cranky/layouts
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2023-11-14 17:14:20 -0500
committerBenjamin Chausse <benjamin@chausse.xyz>2023-11-14 17:14:20 -0500
commit81618e8bb6f00b3b74c30c1cc75a782cf266efd6 (patch)
tree3c2e85db1c401471004e5ca1241fa54e707c989f /themes/cranky/layouts
initial commit
Diffstat (limited to 'themes/cranky/layouts')
-rw-r--r--themes/cranky/layouts/404.html69
-rw-r--r--themes/cranky/layouts/_default/baseof.html36
-rw-r--r--themes/cranky/layouts/_default/list.html28
-rw-r--r--themes/cranky/layouts/_default/rss.xml26
-rw-r--r--themes/cranky/layouts/_default/single.html3
-rw-r--r--themes/cranky/layouts/baseof.html82
-rw-r--r--themes/cranky/layouts/list.html5
-rw-r--r--themes/cranky/layouts/partials/nav.html8
-rw-r--r--themes/cranky/layouts/partials/nextprev.html10
-rw-r--r--themes/cranky/layouts/partials/taglist.html13
-rw-r--r--themes/cranky/layouts/photography/list.html16
-rw-r--r--themes/cranky/layouts/projects/list.html96
-rw-r--r--themes/cranky/layouts/shortcodes/hidvid.html10
-rw-r--r--themes/cranky/layouts/shortcodes/img.html20
-rw-r--r--themes/cranky/layouts/shortcodes/prj.html116
-rw-r--r--themes/cranky/layouts/shortcodes/tagcloud.html3
-rw-r--r--themes/cranky/layouts/shortcodes/vid.html6
17 files changed, 547 insertions, 0 deletions
diff --git a/themes/cranky/layouts/404.html b/themes/cranky/layouts/404.html
new file mode 100644
index 0000000..8451d1c
--- /dev/null
+++ b/themes/cranky/layouts/404.html
@@ -0,0 +1,69 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <title>404 | Chause Benjamin</title>
+ <meta name="apple-mobile-web-app-title" content="Chausse Benjamin" />
+ <meta name="application-name" content="Chausse Benjamin" />
+ <meta name="msapplication-TileColor" content="#222d32" />
+ <meta name="theme-color" content="#222d32" />
+ </head>
+ <body>
+ <div class="sad">¯\_(ツ)_/¯</div>
+ <p class="error-message">
+ Your web search ran into a problem and you should go back to my home page.
+ <br />
+ <br />
+ If you'd like to know more, you can search online for this error:
+ <a href="https://en.wikipedia.org/wiki/HTTP_404">404-Page not found</a>
+ <br />
+ You can also scan the QR code below to for a quick diagnostic:
+ <br />
+ <img
+ src="/qr-diag.png"
+ alt="QR Code"
+ class="qrcode"
+ style="width: 200px"
+ />
+ <br />
+ We are collecting no info and will not restart for you.
+ <br />
+ <br />
+ You can return to my home page by
+ <a href="/"> Clicking Here</a>.
+ </p>
+ </body>
+</html>
+
+<style>
+ body {
+ font-family: sans-serif;
+ background-color: #0075d1;
+ color: #f2f2f2;
+ }
+
+ .sad {
+ font-size: 140px;
+ margin-top: 40px;
+ margin-left: 40px;
+ }
+ .qrcode {
+ font-family: monospace;
+ margin: 0;
+ padding: 0;
+ }
+ .error-message {
+ margin-bottom: 0px;
+ margin-left: 16px;
+ font-size: 21px;
+ }
+
+ .speech {
+ display: grid;
+ grid-template-columns: auto, 1fr;
+ }
+
+ a {
+ color: #f2f2a2;
+ }
+</style>
diff --git a/themes/cranky/layouts/_default/baseof.html b/themes/cranky/layouts/_default/baseof.html
new file mode 100644
index 0000000..57e17ce
--- /dev/null
+++ b/themes/cranky/layouts/_default/baseof.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="{{ .Site.Language }}">
+<head>
+ <title>{{ if not .IsHome }}{{ .Title | title }} | {{ end }}{{ .Site.Title }}</title>
+ <link rel="canonical" href="{{ .Site.BaseURL }}">
+ <link rel='alternate' type='application/rss+xml' title="{{ .Site.Title }} RSS" href='/index.xml'>
+ <link rel='stylesheet' type='text/css' href='/style.css'>
+ {{ with .Site.Params.favicon }}<link rel="icon" href="{{ . }}">
+ {{ end -}}
+ <meta name="description" content="{{ with .Params.description }}{{ . }}{{ else }}{{ .Summary }}{{ end }}">
+ {{ if isset .Params "tags" }}<meta name="keywords" content="{{ with .Params.tags }}{{ delimit . ", " }}{{ end }}">
+ {{ end -}}
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="robots" content="index, follow">
+ <meta charset="utf-8">
+</head>
+<body>
+{{ if .Site.Menus.main }}{{ partial "nav.html" . }}{{ end -}}
+<main>
+<header><h1 id="tag_{{ .Title }}">{{ block "title" . }}{{ end }}</h1></header>
+<article>
+{{ block "main" . }}
+{{ .Content }}
+{{ end }}
+{{ if .Param "nextprev" }}{{ partial "nextprev.html" . -}}{{ end -}}
+{{ if .Param "taglist" }}{{ partial "taglist.html" . }}{{ end -}}
+</article>
+</main>
+{{ block "footer" . }}
+<footer>
+ <a href="{{ .Site.BaseURL }}">{{ .Site.BaseURL }}</a>
+ {{- if .Param "showrss" }}<br><br><a href="/index.xml"><img src="/rss.svg" style="max-height:1.5em" alt="RSS Feed" title="Subscribe via RSS for updates."></a>{{ end }}
+</footer>
+{{ end }}
+</body>
+</html>
diff --git a/themes/cranky/layouts/_default/list.html b/themes/cranky/layouts/_default/list.html
new file mode 100644
index 0000000..ada7939
--- /dev/null
+++ b/themes/cranky/layouts/_default/list.html
@@ -0,0 +1,28 @@
+{{ define "title" -}}
+{{ .Title | title }}
+{{- end }}
+{{ define "main" -}}
+{{ .Content }}
+<div class="post-list">
+{{- range.Pages }}
+<div class="post-item">
+
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a><br>
+ <small class="post-summary">{{ .Summary | truncate 220 " ..." }} </small>
+ <small class="post-date">
+ {{- if .Param "datesinlist" }}
+ <br>
+ <time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">
+ {{ .Date.Format "(2006-01-02)" }}</time>
+ {{ end -}}
+ </small>
+ {{- if .Param "authorsinlist" }}
+ {{ with .Params.authors }}
+ by
+ {{ delimit . ", " " and " }}
+ {{end}}
+ {{ end -}}
+</div>
+{{- end }}
+</div>
+{{- end }}
diff --git a/themes/cranky/layouts/_default/rss.xml b/themes/cranky/layouts/_default/rss.xml
new file mode 100644
index 0000000..38dbe3d
--- /dev/null
+++ b/themes/cranky/layouts/_default/rss.xml
@@ -0,0 +1,26 @@
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+ <channel>
+ <title>{{ .Site.Title }}</title>
+ <link>{{ .Permalink }}</link>
+ <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
+ <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
+ <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
+ <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
+ <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
+ <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
+ <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
+ {{ with .OutputFormats.Get "RSS" }}
+ {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
+ {{ end }}
+ {{ range .Site.RegularPages }}
+ <item>
+ <title>{{ .Title }}</title>
+ <link>{{ .Permalink }}</link>
+ <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
+ {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
+ <guid>{{ .Permalink }}</guid>
+ <description>{{- .Content | html -}}</description>
+ </item>
+ {{ end }}
+ </channel>
+</rss>
diff --git a/themes/cranky/layouts/_default/single.html b/themes/cranky/layouts/_default/single.html
new file mode 100644
index 0000000..56c5a11
--- /dev/null
+++ b/themes/cranky/layouts/_default/single.html
@@ -0,0 +1,3 @@
+{{ define "title" -}}
+{{ .Title }}
+{{- end }}
diff --git a/themes/cranky/layouts/baseof.html b/themes/cranky/layouts/baseof.html
new file mode 100644
index 0000000..10a6263
--- /dev/null
+++ b/themes/cranky/layouts/baseof.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="{{ .Site.Language }}">
+<head>
+ <title>{{ if not .IsHome }}{{ .Title | title }} | {{ end }}{{ .Site.Title }}</title>
+ <link rel="canonical" href="{{ .Site.BaseURL }}">
+ <link rel='alternate' type='application/rss+xml' title="{{ .Site.Title }} RSS" href='/index.xml'>
+ <link rel='stylesheet' type='text/css' href='/style.css'>
+ {{ with .Site.Params.favicon }}<link rel="icon" href="{{ . }}">
+ {{ end -}}
+ <meta name="description" content="{{ with .Params.description }}{{ . }}{{ else }}{{ .Summary }}{{ end }}">
+ {{ if isset .Params "tags" }}<meta name="keywords" content="{{ with .Params.tags }}{{ delimit . ", " }}{{ end }}">
+ {{ end -}}
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="robots" content="index, follow">
+ <meta charset="utf-8">
+</head>
+<body>
+{{ if .Site.Menus.main }}{{ partial "nav.html" . }}{{ end -}}
+<main>
+<header>
+
+ <img src="/logo.png" style="max-width:500px;display:block;margin-left:auto;margin-right:auto;margin-bottom:0px;width:50%">
+ <h1 id="tag_{{ .Title }}" style="margin-top:-30px;position:relative;">{{ block "title" . }}{{ end }}</h1>
+<nav>
+ <div class="nav-bar">
+ <a class="button" href="#about" class="section-link">About Me</a>
+ <a class="button" href="/projects" class="page-link">Projects</a>
+ <a class="button" href="/photography" class="page-link">Photography</a>
+ <a class="button" href="/blog" class="page-link">Posts</a>
+ <a class="button" href="https://git.chausse.xyz" class="page-link">Git</a>
+ <a class="button" href="#contact" class="section-link">Contact</a>
+ </div>
+</nav>
+</header>
+<article>
+{{ block "main" . }}
+{{ .Content }}
+{{ end }}
+{{ if .Param "nextprev" }}{{ partial "nextprev.html" . -}}{{ end -}}
+{{ if .Param "taglist" }}{{ partial "taglist.html" . }}{{ end -}}
+</article>
+</main>
+{{ block "footer" . }}
+<footer>
+ <a href="{{ .Site.BaseURL }}">{{ .Site.BaseURL }}</a>
+ {{- if .Param "showrss" }}<br><br><a href="/index.xml"><img src="/rss.svg" style="max-height:1.5em" alt="RSS Feed" title="Subscribe via RSS for updates."></a>{{ end }}
+</footer>
+{{ end }}
+</body>
+ <style>
+ .nav-logo {
+ width: 60px;
+ margin: auto;
+ display: block;
+ }
+ .nav-bar {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 50px;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ z-index: 100;
+ margin-bottom: 20px;
+ }
+
+ .button {
+ background-image: linear-gradient(45deg, #111a1f, #222d32);
+ color: #808a8e;
+ margin: 0 5px;
+ margin-bottom: 10px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ transition: 0.4s ease;
+ }
+ .button:hover {
+ color: #ebcb88;
+ }
+ </style>
+</html>
diff --git a/themes/cranky/layouts/list.html b/themes/cranky/layouts/list.html
new file mode 100644
index 0000000..1ef8cfc
--- /dev/null
+++ b/themes/cranky/layouts/list.html
@@ -0,0 +1,5 @@
+{{ define "title" -}} {{ .Title | title }} {{- end }} {{ define "main" -}} {{
+.Content }}
+<!--div that spans .5vw for id links to work better -->
+<div style="padding-bottom: 100%; visibility: none"></div>
+{{- end }}
diff --git a/themes/cranky/layouts/partials/nav.html b/themes/cranky/layouts/partials/nav.html
new file mode 100644
index 0000000..a7318fe
--- /dev/null
+++ b/themes/cranky/layouts/partials/nav.html
@@ -0,0 +1,8 @@
+<nav>
+ <ul>
+ {{- $sec := .Page.Section }}{{ $file := .File.TranslationBaseName -}}
+ {{ range.Site.Menus.main.ByWeight }}{{ $base := path.Base .URL }}
+ <li><a {{ if or ( eq $sec $base ) ( eq $file $base ) ( and (eq $sec "") ( eq $file "_index") (eq $base "/") ) }}class="menuactive" {{ end }}href="{{ .URL }}"><span class=pre>{{ .Pre }}</span><span class=menuname>{{ .Name }}</span></a></li>
+ {{- end }}
+ </ul>
+</nav>
diff --git a/themes/cranky/layouts/partials/nextprev.html b/themes/cranky/layouts/partials/nextprev.html
new file mode 100644
index 0000000..099f16d
--- /dev/null
+++ b/themes/cranky/layouts/partials/nextprev.html
@@ -0,0 +1,10 @@
+{{ if or .Next .Prev -}}
+<div id="nextprev">
+{{- with .Prev }}
+<a href="{{ .RelPermalink}}"><div id="prevart">Previous:<br>{{.Title}}</div></a>
+{{ end -}}
+{{- with .Next -}}
+<a href="{{ .RelPermalink}}"><div id="nextart">Next:<br>{{.Title}}</div></a>
+{{ end -}}
+</div>
+{{ end -}}
diff --git a/themes/cranky/layouts/partials/taglist.html b/themes/cranky/layouts/partials/taglist.html
new file mode 100644
index 0000000..757db6f
--- /dev/null
+++ b/themes/cranky/layouts/partials/taglist.html
@@ -0,0 +1,13 @@
+ {{- if isset .Params "tags" -}}
+ {{- $tagsLen := len .Params.tags -}}
+ {{- if gt $tagsLen 0 -}}
+ <div style="clear:both" class=taglist>
+ {{- with .Site.Params.relatedtext }}{{ . }}<br>{{ end -}}
+ {{- range $k, $v := .Params.tags -}}
+ {{- $url := printf "tags/%s" (. | urlize | lower) -}}
+ <a id="tag_{{ . | lower }}" href="{{ $url | absURL }}">{{ . | title }}</a>
+ {{- if lt $k (sub $tagsLen 1) }} &middot; {{ end -}}
+ {{- end -}}
+ </div>
+ {{- end -}}
+ {{- end }}
diff --git a/themes/cranky/layouts/photography/list.html b/themes/cranky/layouts/photography/list.html
new file mode 100644
index 0000000..77a4a24
--- /dev/null
+++ b/themes/cranky/layouts/photography/list.html
@@ -0,0 +1,16 @@
+{{ define "title" -}} {{ .Title | title }} {{- end }} {{ define "main" -}} {{
+.Content }}
+<!-- Match all files in the gallery folder which are images -->
+<div class="photo-gallery">
+ {{- range sort (resources.Match "images/gallery/*") "Name" "desc" -}} {{
+ $image := . }} {{ $small := $image.Resize "300x webp" }}
+ <a href="{{ .RelPermalink }}" class="photo-item">
+ <img
+ src="{{ $small.RelPermalink }}"
+ alt="{{ $image.Name }}"
+ loading="lazy"
+ />
+ </a>
+ {{ end -}}
+</div>
+{{- end }}
diff --git a/themes/cranky/layouts/projects/list.html b/themes/cranky/layouts/projects/list.html
new file mode 100644
index 0000000..9dc5286
--- /dev/null
+++ b/themes/cranky/layouts/projects/list.html
@@ -0,0 +1,96 @@
+{{ define "title" -}}
+{{ .Title | title }}
+{{- end }}
+{{ define "main" -}}
+{{ .Content }}
+<style>
+time {
+ float: right;
+ font-size: 0.8em;
+ color: var(--light-fg);
+}
+
+.project-title {
+ font-size: 1.2em;
+ color: var(--header-fg);
+ text-decoration: none;
+}
+
+.project-box > * {
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+.project-box {
+ margin-bottom: 1em;
+ padding: 7px;
+ border-radius: 10px;
+ position: relative;
+ box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
+ background: linear-gradient(
+ 45deg,
+ #222d32,
+ #111a1f
+ );
+ z-index: 1;
+}
+
+.project-box::before {
+ position: absolute;
+ content: '';
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: linear-gradient(
+ 45deg,
+ #111a1f,
+ #222d32
+ );
+ border-radius: 10px;
+ z-index: -1;
+ transition: opacity 0.5s linear;
+ opacity: 0;
+}
+
+.project-box:hover::before {
+ opacity: 1;
+}
+/* Align the read more link to the bottom right corner of the box */
+.read-more {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ margin: 5px;
+ font-size: 0.8em;
+ color: var(--header-fg);
+ transition: color 0.5s ease-out;
+ text-decoration: none;
+ padding: 5px;
+ border-radius: 7px;
+ background: linear-gradient(
+ -45deg,
+ #a84,
+ #223
+ );
+}
+.read-more:hover {
+ color: var(--link-fg-std);
+}
+</style>
+{{- range.Pages }}
+<div class="project-box">
+ <a class="project-title" href="{{ .RelPermalink }}">{{ .Title }}</a>
+ {{- if .Param "datesinlist" }}<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006 Jan 02" }}</time> {{ end -}}
+ {{ $summary := index (split .Content "</p>") 0 }}
+ <p>{{ $summary | plainify }} </p>
+ {{- if .Param "authorsinlist" }}
+ {{ with .Params.authors }}
+ by
+ {{ delimit . ", " " and " }}
+ {{end}}
+ <a class="read-more" href="{{ .RelPermalink }}">Read more...</a>
+</div>
+ {{ end -}}
+{{- end }}
+{{- end }}
diff --git a/themes/cranky/layouts/shortcodes/hidvid.html b/themes/cranky/layouts/shortcodes/hidvid.html
new file mode 100644
index 0000000..14f592d
--- /dev/null
+++ b/themes/cranky/layouts/shortcodes/hidvid.html
@@ -0,0 +1,10 @@
+<details>
+ <summary>Click to reveal video.</summary>
+<iframe src="{{ index .Params 0 }}"
+ loading="lazy"
+ sandbox="allow-same-origin allow-scripts allow-popups"
+ allowfullscreen frameborder="0"
+ class="embvid"
+ title="Embedded Video">
+</iframe>
+</details>
diff --git a/themes/cranky/layouts/shortcodes/img.html b/themes/cranky/layouts/shortcodes/img.html
new file mode 100644
index 0000000..ff7959b
--- /dev/null
+++ b/themes/cranky/layouts/shortcodes/img.html
@@ -0,0 +1,20 @@
+<!--
+ class: class of the figure
+ link: url the image directs to
+ alt: alternative text
+ caption: caption
+ mouse: what the image says when moused over ("title" in HTML)
+-->
+<figure {{ with .Get "class" }}class="{{.}}"{{ end -}}>
+ {{- with .Get "link"}}<a href="{{.}}">{{ end -}}
+ <img src="{{ .Get "src" }}"
+ {{- with .Get "mouse" }} title="{{.}}"{{ end -}}
+ {{- with .Get "alt" }} alt="{{.}}"{{ end -}}
+ >
+ {{- if .Get "link"}}</a>{{ end -}}
+ {{- with .Get "caption" -}}
+ <figcaption>
+ {{- . -}}
+ </figcaption>
+ {{- end -}}
+</figure>
diff --git a/themes/cranky/layouts/shortcodes/prj.html b/themes/cranky/layouts/shortcodes/prj.html
new file mode 100644
index 0000000..246a8e1
--- /dev/null
+++ b/themes/cranky/layouts/shortcodes/prj.html
@@ -0,0 +1,116 @@
+<div class="container">
+ <!-- Loop through all projects -->
+ {{ range first 3 (where .Site.RegularPages "Section" "projects") }}
+ <a class="card" href="{{ .Permalink }}">
+ <h3 class="title">{{ .Title }}</h3>
+ <div class="bar">
+ <div class="emptybar"></div>
+ <div class="filledbar"></div>
+ </div>
+ <p class="summary">{{ .Summary | truncate 220 "..." }}</p>
+ </a>
+ <!-- End the loop -->
+ {{ end }}
+</div>
+<a class="button projects" href="/projects">More Projects</a>
+<style>
+ .container {
+ position: relative;
+ height: auto;
+ width: 600px;
+ left: calc(50% - 300px);
+ display: flex;
+ margin-bottom: 30px;
+ }
+
+ .card {
+ display: flex;
+ height: auto;
+ width: 230px;
+ margin-top: 20px;
+ /* background-color: #222d32; */
+ background: linear-gradient(-45deg, #111a1f, #222d32);
+ color: var(--text-fg);
+ border-radius: 10px;
+ box-shadow: -1rem 0 3rem #000;
+ /* margin-left: -50px; */
+ transition: 0.4s ease-out;
+ position: relative;
+ left: 0px;
+ }
+
+ .card:not(:first-child) {
+ margin-left: -50px;
+ }
+
+ .card:hover {
+ box-shadow: 0 0 4rem #554;
+ transform: translateY(-20px);
+ transition: 0.4s ease-out;
+ color: var(--text-fg);
+ }
+
+ .card:hover ~ .card {
+ position: relative;
+ left: 70px;
+ transition: 0.4s ease-out;
+ }
+
+ .title {
+ color: var(--text-fg);
+ font-weight: bold;
+ position: absolute;
+ left: 20px;
+ top: 15px;
+ }
+
+ .card:hover > .title {
+ color: var(--header-fg);
+ transition: 0.4s ease-out;
+ }
+
+ .bar {
+ position: absolute;
+ top: 70px;
+ left: 20px;
+ height: 5px;
+ width: 150px;
+ }
+
+ .summary {
+ /* position: relative; */
+ margin-top: 80px;
+ margin-left: 10px;
+ margin-right: 10px;
+ top: 70px;
+ left: 20px;
+ }
+
+ .emptybar {
+ background-color: #2e3033;
+ width: 100%;
+ height: 100%;
+ }
+
+ .filledbar {
+ position: absolute;
+ top: 0px;
+ z-index: 3;
+ width: 0px;
+ height: 100%;
+ background: linear-gradient(90deg, #66aabb 0%, #8ea374 22%, #ebcb88 100%);
+ transition: 0.6s ease-out;
+ }
+
+ .card:hover .filledbar {
+ width: 120px;
+ transition: 0.4s ease-out;
+ }
+ /* center the button */
+ .projects {
+ position: relative;
+ left: calc(50% - 50px);
+ margin-top: 30px;
+ margin-bottom: 30px;
+ }
+</style>
diff --git a/themes/cranky/layouts/shortcodes/tagcloud.html b/themes/cranky/layouts/shortcodes/tagcloud.html
new file mode 100644
index 0000000..0cf0118
--- /dev/null
+++ b/themes/cranky/layouts/shortcodes/tagcloud.html
@@ -0,0 +1,3 @@
+{{ if isset .Site.Taxonomies "tags" }}{{ if not (eq (len .Site.Taxonomies.tags) 0) }} <ul id="tagcloud">
+ {{ range $name, $items := .Site.Taxonomies.tags }}{{ $url := printf "%s/%s" "tags" ($name | urlize | lower)}}<li><a href="{{ $url | absURL }}" id="tag_{{ $name }}">{{ $name | title }}</a></li>
+ {{ end }}</ul>{{ end }}{{ end }}
diff --git a/themes/cranky/layouts/shortcodes/vid.html b/themes/cranky/layouts/shortcodes/vid.html
new file mode 100644
index 0000000..4c612fe
--- /dev/null
+++ b/themes/cranky/layouts/shortcodes/vid.html
@@ -0,0 +1,6 @@
+<iframe src="{{ index .Params 0 }}"
+ loading="lazy"
+ sandbox="allow-same-origin allow-scripts allow-popups"
+ allowfullscreen frameborder="0"
+ title="Embedded Video">
+</iframe>