diff options
author | Benjamin Chausse <benjamin@chausse.xyz> | 2023-11-14 17:14:20 -0500 |
---|---|---|
committer | Benjamin Chausse <benjamin@chausse.xyz> | 2023-11-14 17:14:20 -0500 |
commit | 81618e8bb6f00b3b74c30c1cc75a782cf266efd6 (patch) | |
tree | 3c2e85db1c401471004e5ca1241fa54e707c989f /themes/cranky/layouts |
initial commit
Diffstat (limited to 'themes/cranky/layouts')
-rw-r--r-- | themes/cranky/layouts/404.html | 69 | ||||
-rw-r--r-- | themes/cranky/layouts/_default/baseof.html | 36 | ||||
-rw-r--r-- | themes/cranky/layouts/_default/list.html | 28 | ||||
-rw-r--r-- | themes/cranky/layouts/_default/rss.xml | 26 | ||||
-rw-r--r-- | themes/cranky/layouts/_default/single.html | 3 | ||||
-rw-r--r-- | themes/cranky/layouts/baseof.html | 82 | ||||
-rw-r--r-- | themes/cranky/layouts/list.html | 5 | ||||
-rw-r--r-- | themes/cranky/layouts/partials/nav.html | 8 | ||||
-rw-r--r-- | themes/cranky/layouts/partials/nextprev.html | 10 | ||||
-rw-r--r-- | themes/cranky/layouts/partials/taglist.html | 13 | ||||
-rw-r--r-- | themes/cranky/layouts/photography/list.html | 16 | ||||
-rw-r--r-- | themes/cranky/layouts/projects/list.html | 96 | ||||
-rw-r--r-- | themes/cranky/layouts/shortcodes/hidvid.html | 10 | ||||
-rw-r--r-- | themes/cranky/layouts/shortcodes/img.html | 20 | ||||
-rw-r--r-- | themes/cranky/layouts/shortcodes/prj.html | 116 | ||||
-rw-r--r-- | themes/cranky/layouts/shortcodes/tagcloud.html | 3 | ||||
-rw-r--r-- | themes/cranky/layouts/shortcodes/vid.html | 6 |
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) }} · {{ 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> |