first commit

This commit is contained in:
a 2022-12-06 18:10:34 -06:00
commit d575f4b9da
40 changed files with 1006 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.hugo_build.lock
resources/_gen/**

6
archetypes/default.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

BIN
assets/images/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

13
assets/scripts/main.js Normal file
View file

@ -0,0 +1,13 @@
/*
Use a window's inner dimensions for viewport units.
This fixes some mobile bugs
*/
var root = document.documentElement;
let vh = window.innerHeight * 0.01;
root.style.setProperty('--vh', `${vh}px`);
// We listen to the resize event
window.addEventListener('resize', () => {
// We execute the same script as before
let vh = window.innerHeight * 0.01;
root.style.setProperty('--vh', `${vh}px`);
});

View file

@ -0,0 +1,55 @@
$site-max-width: 100rem;
:root {
--site-max-width: #{$site-max-width};
--nav-height: 4rem;
--header-height: 4.5rem;
--footer-height: 3rem;
}
html {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
scroll-behavior: smooth;
background: var(--ui-background);
color: var(--ui-text);
}
/* Single column layout, where main content stretches to fill. */
body {
display: flex;
flex-flow: column;
min-height: calc(var(--vh, 1vh) * 100);
max-width: 100vw;
margin: auto;
}
main {flex-grow: 1;}
/*
Sections are primary block units, usually of type <section>.
Containers are an immediate child <div>, purely for constraining width.
*/
.section {
padding: 2em 0; /* we apply a vertical padding only to sections */
}
.container {
width: 100%;
max-width: var(--site-max-width);
margin: 0 auto;
padding: 0 1em; /* and we apply a horizontal padding only to containers */
}
/* Ensure consistent colors for text selection */
::selection {
background: var(--primary-accent);
color: var(--primary-accent-text);
}
/* */
.heading {
font-size: 1.8em;
font-weight: 700;
line-height: 2em;
}
.subheading {
font-size: 1.4em;
margin-bottom: 1em;
}

View file

@ -0,0 +1,13 @@
:root {
--link-color: #4ca6f6;
--link-visited: #d76ff3;
--primary-accent: #deceed;
--primary-accent-transparent: #DECEED3D;
--primary-accent-text: #6E23B8;
--ui-background: #472C1B;
--ui-text: #F4EABD;
--ui-text-muted: #9b9371;
--ui-text-bold: #F4EABD;
--ui-overlay: #deceed;
--ui-overlay-text: #141112;
}

View file

@ -0,0 +1,187 @@
.content {
/* text */
h1 {font-size: 1.8em}
h2 {font-size: 1.6em}
h3 {font-size: 1.423em}
h4 {font-size: 1.265em}
h5 {font-size: 1.125em}
h6 {font-size: 1em}
h1, h2, h3, h4, h5, h6 {
line-height: 1.2;
margin-bottom: 1rem;
margin-top: 2rem;
font-weight: 700;
}
p {
line-height: 1.5;
margin-bottom: 1em;
max-width: 80ch;
}
a {
word-wrap: break-word;
}
/* semantics */
em {font-style: italic}
strong {font-weight: 700}
/* text formatting */
--script-size: 0.65em;
sup {
position: relative;
font-size: var(--script-size);
top: -1em;
}
sub {
position: relative;
font-size: var(--script-size);
}
@supports #{'selector\(:has(kbd))'} {
/* style individual keys only (for the innermost <kbd> element) */
kbd kbd,
kbd:not(:has(kbd)) {
font-family: monospace;
padding: 0.25em;
background: var(--ui-overlay);
color: var(--ui-overlay-text);
}
}
@supports not #{'selector\(:has(kbd))'} {
/* style the entire key sequence */
kbd {
font-family: monospace;
padding: 0.25em;
background: var(--ui-overlay);
color: var(--ui-overlay-text);
}
/* and prevent double-styling for nested keys */
kbd kbd {
background: none;
}
}
mark {
background: var(--primary-accent-transparent);
color: var(--ui-text);
--pad-x-highlight: 0.125em;
padding-left: var(--pad-x-highlight);
padding-right: var(--pad-x-highlight);
}
abbr[title]:after {
content: '?';
font-size: var(--script-size);
color: var(--ui-text-muted);
}
/* lists */
ul {list-style: disc; margin: 1em 0;}
li {margin-bottom: 1em; line-height: 1.4; margin-left: 1em;}
ol {list-style: decimal; margin: 1em 0;}
dl {margin: 1em 0; line-height: 1.4;}
dt {font-weight: 700;}
dd {margin-left: 1em;}
/* block elements */
img {
width: 100%;
margin-bottom: 1em;
}
blockquote {
font-style: italic;
font-size: 1em;
margin: 1em 0;
border-left: 0.25rem solid var(--ui-text-bold);
padding-left: 0.75em;
line-height: 1.4;
}
pre {
font-family: monospace;
background: var(--ui-overlay);
color: var(--ui-overlay-text);
padding: 1em;
line-height: 2;
overflow-x: auto;
white-space: pre;
display: grid;
tab-size: 3;
margin-bottom: 1em;
}
code {
font-family: monospace;
background: var(--ui-overlay);
color: var(--ui-overlay-text);
padding: 0.25rem;
}
:not(.highlight) > pre {
line-height: 1.5;
background: var(--ui-overlay);
padding: 1em;
}
pre code {
background: inherit;
padding: 0;
}
pre code > span {
padding: 0 1em;
}
.highlight pre {
padding: 1em 0;
}
/* figures */
figure {
margin-bottom: 1em;
}
figure img {
width: 100%;
margin-bottom: -0.125em;
}
figcaption {
background: #212121;
color: white;
font-style: italic;
padding: 1em;
font-size: 0.8em;
line-height: 1.2;
}
/* tables */
table {text-align: center;}
thead {
font-weight: 700;
background: var(--ui-overlay);
color: var(--ui-overlay-text);
}
th, td {
border: 1px solid var(--ui-text);
padding: 0.5em;
}
/* hugo-specific citation footnote */
cite sup {
position: inherit;
font-size: inherit;
a {
padding: 0.25em;
}
&:before {
content: ' [';
}
&:after {
content: ']';
}
}
/* the actual footnotes section */
.footnotes {
hr {
display: flex;
align-items: center;
border: 0;
&:before {
content: 'Footnotes';
color: var(--ui-text);
text-transform: uppercase;
font-weight: 900;
font-size: 0.8em;
}
&:after {
content: '';
width: 100%;
margin-left: 1rem;
border-bottom: 1px solid var(--ui-text-muted);
}
}
}
}

View file

@ -0,0 +1,9 @@
@import url('https://fonts.googleapis.com/css2?family=Crafty+Girls&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cousine:ital,wght@0,400;0,700;1,400;1,700&family=Crafty+Girls&display=swap');
* {
font-family: 'Cousine', monospace;
}
.site-title {
font-family: 'Crafty Girls', cursive;
}

View file

@ -0,0 +1,43 @@
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
box-sizing: border-box;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

View file

@ -0,0 +1,20 @@
.breadcrumbs {
display: flex;
li {
margin-right: 0.5em;
margin-bottom: 0.5em;
}
a {
color: var(--ui-text-muted);
}
li:first-child {
display: none;
}
li:last-child {
display: none;
}
li:after {
content: ' > ';
color: var(--ui-text-muted);
}
}

View file

@ -0,0 +1,85 @@
.h-card {
margin: 1em auto;
--icon-size: 4em;
display: grid;
grid-template-columns: var(--icon-size) auto;
grid-template-rows: auto auto;
grid-gap: 1em;
.name-and-domain {
grid-column: 2;
display: flex;
flex-flow: column;
justify-content: center;
}
.icon {
grid-column: 1;
grid-row: 1;
}
.bio {
grid-column: span 2;
}
.display-name {
display: inline-flex;
flex-flow: row wrap;
align-items: center;
gap: 0.5em;
}
.p-name {
font-weight: 700;
font-size: 1.25em;
display: inline-block;
}
.pronouns {
display: inline-flex;
flex-flow: row wrap;
gap: 0.5em;
font-size: 0.75em;
}
.p-gender-identity {
background: var(--ui-overlay);
color: var(--ui-overlay-text);
padding: 0.25em;
}
.u-url {
&:after {display: none}
&:focus {
background: unset;
padding: unset;
border-radius: unset;
}
color: var(--ui-text);
text-decoration: none;
display: block;
line-height: 2;
}
.p-note {
max-width: 55ch;
}
.u-logo {
width: 100%;
aspect-ratio: 1;
object-fit: cover;
border-radius: 100em;
}
.external-links {
margin-top: 1em;
li {
margin: 0;
}
a {
line-height: 1.25;
}
.pre {
margin-right: 0.5em;
}
.post {
margin-left: 0.5em;
}
}
}

View file

@ -0,0 +1,23 @@
.site-header {
background: var(--primary-accent);
height: var(--header-height);
.container {
display: flex;
align-items: center;
justify-content: space-between;
}
.site-masthead {
text-decoration: none;
}
.site-title {
font-size: 1.5em;
color: var(--primary-accent-text);
span {
font-weight: 700;
color: var(--ui-background);
}
}
.site-icon {
height: var(--header-height);
}
}

View file

@ -0,0 +1,25 @@
a:link {
transition: all 0.1s ease-out;
color: var(--link-color);
text-decoration-thickness: .0625rem;
text-underline-offset: 0.125em;
text-decoration-skip-ink: none;
}
a:visited {
color: var(--link-visited);
}
a:focus {
outline: none;
background: var(--primary-accent);
color: var(--primary-accent-text);
border-radius: 2px;
text-decoration: none;
padding: 4px;
}
a:hover {
text-decoration-thickness: 0.125em;
text-underline-offset: 0.25em;
}
@media (prefers-reduced-motion) {
a:link {transition: none}
}

View file

@ -0,0 +1,42 @@
.project {
&__container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
grid-gap: 1em;
}
display: inline-grid;
grid-template-columns: 1fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"thumbnail"
"body"
"readmore";
&__thumbnail {
aspect-ratio: 16/9;
background: var(--primary-accent-transparent);
color: var(--ui-text-muted) !important;
display: grid;
place-items: center;
text-decoration: none;
margin-bottom: 1em;
}
&__body {
grid-area: body;
display: flex;
flex-flow: column;
justify-content: start;
}
&__title {
font-size: 1.4em;
line-height: 2;
}
&__summary {
font-size: 1.2em;
line-height: 1.4;
}
&__cover {
width: 100%;
height: 100%;
object-fit: cover;
}
}

View file

@ -0,0 +1,12 @@
.page-title {
font-size: 2em;
font-weight: 700;
margin-bottom: 1rem;
}
.page-summary {
font-style: italic;
margin-bottom: 1rem;
}
.page-date {
color: var(--ui-text-muted);
}

0
assets/styles/print.scss Normal file
View file

14
assets/styles/screen.scss Normal file
View file

@ -0,0 +1,14 @@
@import "common/reset.scss";
@import "common/fonts.scss";
@import "common/colors.scss";
@import "common/base.scss";
@import "common/content.scss";
@import "features/links.scss";
@import "components/site-header.scss";
@import "components/h-card.scss";
@import "components/breadcrumbs.scss";
@import "layouts/index.scss";
@import "layouts/single.scss";

26
config.toml Normal file
View file

@ -0,0 +1,26 @@
baseURL = 'https://cathyissleepy.com/'
languageCode = 'en-us'
title = 'cathyissleepy.com'
[params]
icon = "images/test.png"
author = "Cathy"
[params.hcard]
name = "Cathy"
domain = "cathyissleepy.com"
url = "https://cathyissleepy.com"
pronouns = ["they", "she"]
note = "Music production and robotics."
icon = "/images/burger.png"
iconAlt = "A bat eating a burger"
[[params.hcard.me]]
pre = '<i class="fa fa-mastodon"></i>'
name = "mas.to/@CathyIsSleepy"
href = "https://mas.to/@CathyisSleepy"
[[params.hcard.me]]
pre = '<i class="fa fa-twitter"></i>'
name = "@CathyIsSleepy"
href = "https://twitter.com/CathyisSleepy"

10
content/_index.md Normal file
View file

@ -0,0 +1,10 @@
+++
title = "hi i'm cathy :3"
description = "music production and robotics."
+++
Labore incididunt nulla non irure pariatur nulla esse magna occaecat anim id ex ad. Voluptate aliquip culpa exercitation adipisicing consequat aliquip adipisicing proident aute non excepteur laboris. Ex nulla reprehenderit amet officia Lorem laboris non in ea reprehenderit velit ut.
Deserunt amet est incididunt laboris ex excepteur tempor pariatur commodo incididunt fugiat occaecat. Mollit ipsum mollit sunt eiusmod voluptate consectetur eiusmod ex incididunt in qui. Eiusmod aliqua deserunt non cillum consectetur et. Pariatur sit mollit dolor labore exercitation commodo esse.
Ut irure nisi ullamco aute labore. Elit enim amet sit ex ullamco ex incididunt laborum pariatur veniam. Ut voluptate exercitation esse incididunt exercitation qui. Dolor nostrud commodo mollit eu nisi enim magna.

View file

@ -0,0 +1,3 @@
+++
title = "Projects"
+++

View file

@ -0,0 +1,5 @@
+++
title = "Example Project 2"
summary = "That other time that I did something, but with more details in the summary so that I can test how it reacts to longer layouts."
date = "2022-10-25"
+++

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB

View file

@ -0,0 +1,5 @@
+++
title = "Example Project"
summary = "That one time that I did something."
date = "2022-10-25"
+++

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="{{.Site.Language.Lang }}" xml:lang="{{.Site.Language.Lang }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
{{ "<!-- generated stylesheets and scripts -->" | safeHTML }}
{{ $screen := resources.Get "styles/screen.scss" | toCSS | minify | fingerprint -}}
<link rel="stylesheet"
href="{{ $screen.Permalink }}"
integrity="{{ $screen.Data.Integrity }}"
media="screen" />
{{- $print := resources.Get "styles/print.scss" | toCSS | minify | fingerprint }}
<link rel="stylesheet"
href="{{ $print.Permalink }}"
integrity="{{ $print.Data.Integrity }}"
media="print" />
{{- $script := resources.Get "scripts/main.js" | js.Build "script.js" | minify | fingerprint }}
<script type="text/javascript"
src="{{ $script.Permalink }}"
integrity="{{ $script.Data.Integrity }}">
</script>
{{ "<!-- add arrows to external links -->" | safeHTML }}
{{ partial "styles/external-links.html" . }}
{{ "<!-- external dependencies -->" | safeHTML }}
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
crossorigin="anonymous" />
{{ "<!-- SEO and metadata -->" | safeHTML }}
{{ partial "seo.html" . -}}
{{- block "head" . }}
{{ end -}}
</head>
<body>
{{ partial "site-header.html" . }}
{{ block "main" . }}
{{ end }}
{{ partial "site-footer.html" . }}
</body>
</html>

View file

@ -0,0 +1,25 @@
{{ define "main" }}
<main>
<header class="section page-header">
<div class="container">
<h1 class="page-title">{{ .Title }}</h1>
</div>
</header>
<section class="section list">
<div class="container">
{{ range .Pages }}
<article class="list-item">
<a class="list-item__link" href="{{ .Permalink }}">
{{ with .Params.cover }}
<img class="list-item__image" src="{{.}}">
{{end}}
<h2 class="list-item__title">{{ .Title }}</h2>
</a>
<p class="list-item__summary">{{.Summary}}</p>
<datetime class="list-item__date">{{ .Date.Format "January 2, 2006" }}</datetime>
</article>
{{ end }}
</div>
</section>
</main>
{{ end }}

View file

@ -0,0 +1,30 @@
{{ define "main" }}
<main>
<article class="page"{{- if .Param "autonumbering" }} autonumbering {{- end }}>
<header class="section page-header">
<div class="container">
{{ partial "breadcrumbs.html" . }}
<h1 class="page-title">{{ .Title }}</h1>
<p class="page-summary">{{.Page.Summary | plainify}}</p>
<p class="page-date"><datetime class="timestamp">{{ .Date.Format "Mon Jan 2, 2006" }}</datetime></p>
</div>
</header>
<!-- <aside class="toc section">
<div class="container">
<p class="toc-title">Page outline</p>
{{ .TableOfContents }}
</div>
</aside> -->
<section class="content section">
<div class="container">
{{ .Content }}
</div>
</section>
<footer class="section page-footer">
<div class="container">
{{ partial "page-footer.html" . }}
</div>
</footer>
</article>
</main>
{{ end }}

41
layouts/index.html Normal file
View file

@ -0,0 +1,41 @@
{{ define "main" }}
<main>
<header class="section">
<div class="container">
<h1 class="heading">{{ .Page.Title }}</h1>
{{ partial "h-card.html" . }}
</div>
</header>
<section class="content section">
<div class="container">
{{ .Content }}
</div>
</section>
<section class="projects section">
<div class="container">
<header>
<h2 class="heading">latest projects</h2>
<p class="subheading">this is some of the stuff i've worked on.</p>
</header>
<ul class="project__container">
{{ range where .Site.RegularPages "Section" "projects" }}
<li class="project">
<div class="project__body">
<h3 class="project__title"><a href="{{.Permalink}}">{{.Title}}</a></h3>
<p class="project__summary">{{.Summary}}</p>
</div>
<a class="project__thumbnail" href="{{.Permalink}}">
{{- $cover := (.Resources.ByType "image").GetMatch "{*cover*,*thumbnail*,*featured*}" -}}
{{ with or .Params.cover $cover }}
<img src="{{.Permalink}}" alt="cover image" class="project__cover">
{{ else }}
<img src="" alt="{{.Title}}">
{{ end }}
</a>
</li>
{{ end }}
</ul>
</div>
</section>
</main>
{{ end }}

View file

@ -0,0 +1,14 @@
<ul class="breadcrumbs">
{{ template "breadcrumb" (dict "p1" . "p2" .) }}
</ul>
{{ define "breadcrumb" }}
{{ if .p1.Parent }}
{{ template "breadcrumb" (dict "p1" .p1.Parent "p2" .p2 ) }}
{{ else if not .p1.IsHome }}
{{ template "breadcrumb" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
{{ end }}
<li{{ if eq .p1 .p2 }} class="active"{{ end }}>
<a href="{{ .p1.RelPermalink }}">{{ .p1.Title }}</a>
</li>
{{ end }}

View file

@ -0,0 +1,32 @@
<article class="h-card vcard">
<header class="name-and-domain">
<div class="display-name">
<p class="p-name fn">{{.Site.Params.hcard.name}}</p>
{{ with .Site.Params.hcard.pronouns }}
<ul class="pronouns">
{{ range . }}
<li class="p-gender-identity">{{.}}</li>
{{ end }}
</ul>
{{ end }}
</div>
<div class="domain">
<a href="{{.Site.Params.hcard.url}}" class="u-url u-uid url uid">{{.Site.Params.hcard.domain}}</a>
</div>
</header>
<div class="bio">
{{ with .Site.Params.hcard.note }}
<p class="p-note note">{{.}}</p>
{{ end }}
{{ with .Site.Params.hcard.me }}
<ul class="external-links">
{{ range . }}
<li><a href="{{.href}}" class="u-url url" rel="me"><span class="pre">{{.pre | safeHTML}}</span><span class="text">{{.name}}</span><span class="post">{{.post | safeHTML}}</span></a></li>
{{ end }}
</ul>
{{ end }}
</div>
<div class="icon">
<img src="{{.Site.Params.hcard.icon}}" alt="{{.Site.Params.hcard.iconAlt}}" class="u-logo u-photo logo">
</div>
</article>

View file

@ -0,0 +1,15 @@
<nav class="footer-nav">
<ul class="menu">
{{ $currentPage := . }}
{{ range .Site.Menus.footer }}
<li
class='{{ .Identifier }}{{ if or ($currentPage.IsMenuCurrent "footer" .) (eq $currentPage.Section .Identifier) }} active{{ end }}'>
<a href="{{ .URL | relLangURL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
{{ .Post }}
</a>
</li>
{{ end }}
</ul>
</nav>

View file

@ -0,0 +1,15 @@
<nav class="header-nav">
<ul class="menu">
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
<li
class='{{ .Identifier }}{{ if or ($currentPage.IsMenuCurrent "main" .) (eq $currentPage.Section .Identifier) }}active{{ end }}'>
<a href="{{ .URL | relLangURL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
{{ .Post }}
</a>
</li>
{{ end }}
</ul>
</nav>

View file

@ -0,0 +1,13 @@
<nav class="social-nav">
<ul class="menu">
{{ $currentPage := . }}
{{ range .Site.Menus.social }}
<li
class='{{ .Identifier }}'>
<a href="{{ .URL }}">
{{ .Pre }}
</a>
</li>
{{ end }}
</ul>
</nav>

View file

@ -0,0 +1,4 @@
{{/*
Override this partial if you want stuff
to show up at the bottom of each page
*/}}

132
layouts/partials/seo.html Normal file
View file

@ -0,0 +1,132 @@
{{ "<!-- title -->" | safeHTML }}
<title itemprop="name">{{ .Title }} | {{ .Site.Title }}</title>
<meta property="og:title" content="{{ .Title }}" />
<meta name="twitter:title" content="{{ .Title }}" />
<meta name="application-name" content="{{ .Site.Title }}" />
<meta property="og:site_name" content="{{ .Site.Title }}" />
{{- with or .Description .Summary .Site.Params.description }}
{{ "<!-- description -->" | safeHTML }}
<meta name="description" content="{{.}}">
<meta itemprop="description" content="{{.}}" />
<meta property="og:description" content="{{.}}" />
<meta name="twitter:description" content="{{.}}" />
{{ end -}}
{{ "<!-- url -->" | safeHTML }}
<base href="{{ .Permalink | absURL }}">
<link rel="canonical" href="{{ .Permalink | absURL }}" itemprop="url" />
<meta name="url" content="{{ .Permalink | absURL }}" />
<meta name="twitter:url" content="{{ .Permalink | absURL }}" />
<meta property="og:url" content="{{ .Permalink | absURL }}" />
{{- $cover := ($.Resources.ByType "image").GetMatch "{*cover*,*thumbnail*,*featured*}" -}}
{{ $icon := resources.GetMatch (default "" .Site.Params.icon) -}}
{{- $staticIcon := "icon.png" | absURL -}}
{{- with or .Params.cover $cover $icon }}
{{ "<!-- image -->" | safeHTML }}
<meta itemprop="image" content='{{ .Permalink | absURL }}' />
<meta property="og:image" content='{{ .Permalink | absURL }}' />
{{- with .Width }}
<meta property="og:image:width" content='{{ . }}' />
{{- end }}
{{- with .Height }}
<meta property="og:image:height" content='{{ . }}' />
{{- end }}
<meta name="twitter:image" content='{{ .Permalink | absURL }}' />
<meta name="twitter:image:src" content='{{ .Permalink | absURL }}' />
{{- else }}
{{ "<!-- image -->" | safeHTML }}
<meta itemprop="image" content='{{ $staticIcon }}' />
<meta property="og:image" content='{{ $staticIcon }}' />
<meta name="twitter:image" content='{{ $staticIcon }}' />
<meta name="twitter:image:src" content='{{ $staticIcon }}' />
{{- end -}}
{{/*=== author ===*/}}
{{ with or .Params.author .Site.Params.author -}}
{{ "<!-- author -->" | safeHTML }}
<meta property="article:publisher" content="{{ . }}" />
<meta property="og:article:author" content="{{ . }}" />
<meta property="article:author" content="{{ . }}" />
<meta name="author" content="{{ . }}" />
{{- end -}}
{{/*=== published and updated ===*/}}
{{ "<!-- time -->" | safeHTML }}
{{- with .Date }}
<meta property="og:article:published_time" content={{ .Format "2006-01-02T15:04:05Z0700" | safeHTML }} />
<meta property="article:published_time" content={{ .Format "2006-01-02T15:04:05Z0700" | safeHTML }} />
{{ end -}}
{{ with .Lastmod -}}
<meta property="og:updated_time" content={{ .Format "2006-01-02T15:04:05Z0700" | safeHTML }} />
{{ end -}}
{{/*=== section and keywords ===*/}}
{{- with.Params.category -}}
<meta name="news_keywords" content="{{ . }}" />
<meta property="article:section" content="{{ . }}" />
{{- end -}}
{{- with .Params.tags }}
<meta name="keywords" content='{{ delimit . " "}}'>
{{- end -}}
{{- if isset .Params "date" -}}
{{ "<!-- article metadata -->" | safeHTML }}
<meta property="og:type" content="article" />
<script defer type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"headline": {{ .Title }},
"author": {
"@type": "Person",
"name": "{{ or .Params.author .Site.Params.author }}"
},
"datePublished": "{{ .Date.Format "2006-01-02" }}",
"description": {{ or .Description .Summary }},
"wordCount": {{ .WordCount }},
"mainEntityOfPage": "True",
"dateModified": "{{ .Lastmod.Format "2006-01-02" }}",
"image": {
"@type": "imageObject",
"url": "{{ with or .Params.cover $cover $icon }}{{ .Permalink | absURL }}{{ end }}"
},
"publisher": {
"@type": "Person",
"name": "{{ or .Params.author .Site.Params.author .Site.Title }}",
"logo": {
"@type": "imageObject",
"url": {{with $icon}}{{.Permalink}}{{else}}{{$staticIcon}}{{end}}
}
}
}
</script>
{{- else -}}
{{ "<!-- webpage metadata -->" | safeHTML }}
<meta property="og:type" content="website" />
<script defer type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": {{ .Permalink }},
"name": "{{ .Site.Title }}",
"logo": {{with $icon}}{{.Permalink}}{{else}}{{$staticIcon}}{{end}}
}
</script>
{{- end -}}
{{/* auxiliary info */}}
{{ "<!-- site presentation -->" | safeHTML }}
{{- with $icon }}
<link rel="shortcut icon" href='{{ .Permalink }}' sizes="{{.Width}}x{{.Height}}">
{{- else -}}
<link rel="shortcut icon" href='{{ $staticIcon }}' sizes="512x512">
{{- end }}
<meta name="theme-color" content="#ffffff" />
<meta name="msapplication-TileColor" content="#ffffff" />
<link rel="sitemap" type="application/xml" title="Sitemap" href="{{ .Site.BaseURL }}sitemap.xml" />
{{ with .OutputFormats.Get "RSS" -}}
<link href="{{ .Permalink }}" rel="feed alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
{{- end }}
<meta name="robots" content="index,follow" />
<meta name="googlebot" content="index,follow" />

View file

@ -0,0 +1,8 @@
<footer class="site-footer">
<hr>
<div class="container">
{{ partial "nav-footer.html" . }}
{{ partial "nav-social.html" . }}
<a href="#top">back to top</a>
</div>
</footer>

View file

@ -0,0 +1,12 @@
<header class="site-header">
<div class="container">
<a href="/" class="site-masthead">
<p class="site-title">cathy<span>is</span>sleepy.</p>
</a>
{{ partial "nav-header.html" . }}
<img src="/images/burger.png" alt="" class="site-icon">
</div>
</header>
<div class="scroll-margin" style="position: relative;">
<div id="top" style="scroll-margin-top: var(--header-height);"></div>
</div>

View file

@ -0,0 +1,13 @@
<style>
a[href^="http"]:after {
content: "🡕";
}
a[href^="{{.Site.BaseURL}}"]:after
{
display: none !important;
}
a[href^="http://localhost"]:after
{
display: none !important;
}
</style>

View file

@ -0,0 +1,11 @@
{{ "<!-- webapp -->" | safeHTML }}
<link rel="manifest" href="{{ .Site.BaseURL }}manifest.json" />
<meta name="imagemode" content="force" />
<meta name="coverage" content="Worldwide" />
<meta name="distribution" content="Global" />
<meta name="HandheldFriendly" content="True" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="apple-mobile-web-app-title" content="{{ .Site.Title }}" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-touch-fullscreen" content="yes" />

BIN
static/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

BIN
static/images/burger.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB