Initial commit

This commit is contained in:
Leonora Tindall 2023-09-19 23:53:11 -05:00
commit 816b8bb36f
22 changed files with 686 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.DS_Store

1
LICENSE.md Normal file
View File

@ -0,0 +1 @@
i'm gay also nora has the ability to fuck with this idk

55
README.md Normal file
View File

@ -0,0 +1,55 @@
# MONKEYCHEF
MONKEYCHEF is a Hugo theme based on semantic HTML elements and simple, ultra-responsive
CSS.
## Title Override
Want your page title to be one thing but the page itself to show something else, like a
name for a resumé? Use `display_title` in the front matter. The `title` will
still show up in the title bar and as the `title` attribute for all metadata.
Need to hide post metadata? Try `hide_post_meta: true`.
## Skip to Main Content
Every page has a "skip to main content" as its first link, for better screenreader and
keyboard support.
## Navigation
All navigation is placed at the top of the page beside the title.
## Post Metadata
Every post contains a few `<meta>` fields, which correspond to either site config or
post frontmatter variables. These are Dublin Core enabled where possible, meaning that
posts on this theme can easily be ingested into e.g. Zotero.
- `Title` is the title of the post.
- `Creator` is from `author` in the frontmatter or `params.Author` in `config.toml` otherwise.
- `Date` is the Hugo-recorded date of the post.
- `Language` is from Hugo's generating locale.
- `Description` is from `Description` in the frontmatter, or `Summary` if that's not present, or `MetaSiteDescription` in `config.toml` as a fallback.
- `Identifier` is the permalink URL.
Non-Dublin Core attributes are:
- `viewport` for rendering properly, this isn't customizable
- `keywords` is from the `tags` taxonomy in the frontmatter
- `google-site-verification` is from `params.googlesiteverification` in `config.toml` in case you need that.
- `nolist` turns off listing sub-pages on specific index pages.
## Figures
To insert a figure with caption, you can use the `{{< figure >}}` shortcode. Simply
place your Markdown with image and caption inside it. To make it float left or right,
use `{{< figure "left" >}}` or `{{< figure "right" >}}`. For instance:
```markdown
{{< figure "right" >}}
![The drive cage of my Thelio with one drive out of its slot.](/images/thelio/drive_cage.jpg)
Drives are inserted on rails using vibration-isolating gromits. If only it were this easy
to get RAID working!
{{< /figure >}}
```

4
archetypes/default.md Normal file
View File

@ -0,0 +1,4 @@
---
title: ''
date: ''
---

6
layouts/404.html Normal file
View File

@ -0,0 +1,6 @@
{{ partial "header.html" . }}
<main>
<h1>Document Not Found</h1>
<p>The content you requested could not be found at the given URL.</p>
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,42 @@
{{ partial "header.html" . }}
<main id="main">
<!-- Home page content -->
{{if .IsHome }}
{{ .Content }}
<!-- Paginated list of posts -->
{{ else }}
<h1>
<span class="title">{{ .Title }}</span>
</h1>
<main class="list">
{{ .Content }}
{{ if .Params.nolist }}
{{ else }}
<ul>
<!-- Change the range to look like the line below to enable paging. -->
<!-- range (.Paginator 5).Pages -->
{{ range .Pages }}
<li>
<section>
<h3><a href="{{ .RelPermalink }}">{{ .Title }}</a>
{{ with .Date }}
written {{ .Format "Jan 02, 2006" }}
{{ end }} </h3>
{{ with .Description }}
<p>{{ . }}</p>
{{ end }}
<!-- Uncomment to enable post summaries. -->
<!-- <blockquote class="postIntro">{{ .Summary }}</blockquote> -->
</section>
</li>
{{ end }}
<!-- Uncomment the line below to enable pagination controls. -->
<!-- {{ template "_internal/pagination.html" . }} -->
</ul>
{{ end }}
</main>
{{ end }}
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,31 @@
{{ partial "header.html" . }}
<main id="main">
<header>
{{ if .Params.display_title }}
<h1> {{ .Params.display_title }} </h1>
{{ else }}
<h1>{{ .Title }}</h1>
{{ end }}
{{ if .Params.hide_post_meta }}
{{ else }}
{{ if .Params.author }}
{{ .Author }}
{{ else if .Site.Params.author }}
{{ .Site.Params.author }}
{{ end }}
{{ if .Date }} {{ .Date.Format "2006/01/02" }} {{ end }}
{{ end }}
{{ if .Params.toc }}
{{ .TableOfContents }}
{{ end }}
</header>
<article>
{{ .Content }}
</article>
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,16 @@
{{ partial "header.html" . }}
<main id="main">
<h1>{{ .Title }}</h1>
<ul>
{{ range $key, $value := .Data.Terms }}
<li>
<a href="{{ (print "/" $.Data.Plural "/" $key) | relURL }}">
{{ $key }}
</a>
({{ len $value }})
</li>
{{ end }}
</ul>
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,24 @@
<!--
Progressively enhanced code blocks. From foot_custom.html.
Basically, without JavaScript, code blocks are fine but don't look as good as they
could. With JavaScript, some dynamic styling.
-->
<!-- Fix the extra line at the top of the code blocks. -->
<script>
if(navigator.getEnvironmentIntegrity!==undefined) {
document.querySelector('#main').innerHTML=`
<h1> WEI DRM Detected </h1>
<p>You are viewing this website in a browser with Web
Environment Integrity, a DRM scheme designed to
monopolize the web and force Web users to conform. Please consider
fighting back against corporate tyranny by not doing that.</p>
<p>
For instance, you could install a browser such as <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>,
which respects your freedom and supports ad blockers.
You could also disable JavaScript for this site.
</p>
`;
}
</script>

View File

@ -0,0 +1,20 @@
<footer>
<hr>
{{ partial "foot_custom.html" . }}
<p>
Last updated {{ now.Format "Jan 2 2006" }}
</p>
<p>
&lt;-- prev | <a href="https://nora-webring.neocities.org/">Nora Webring</a> | <a href="https://nora.zone">next --&gt;</a>
&nbsp;&nbsp;
<a href="https://skylarhill.me/">&lt;-- prev</a> | Hacker Girls | <a href="https://tilde.town/~haskal">next --&gt;</a>
</p>
<p>
{{ with .Site.Params.footer }}
{{ . | markdownify }}
{{ end }}
</p>
<br>
</footer>
</body>
</html>

View File

@ -0,0 +1,19 @@
<header>
{{ .Site.Title }}
<nav>
{{ $title := lower .Title }}
{{ $section := lower .Section }}
<a href="/" title="Home">home</a>
{{ range .Site.Menus.main }}
{{ $name := lower .Name }}
<a href="{{ .URL }}" title="{{ .Name }}">{{ lower .Name }}</a>
{{end}}
{{ range .Site.Menus.feed }}
{{ $name := lower .Name}}
<a href="{{ .URL }}" title="{{ .Name }}">{{ lower .Name}}</a>
{{end}}
</nav>
</ul>
</header>

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
<head>
{{ if .Title }}
<title>{{ .Title }} | {{ .Site.Title }}</title>
<meta name="DC.Title" content="{{ .Title }}">
{{ end }}
{{ if .Date }}
<meta name="DC.Date" content="{{ .Date.Format "2006/01/02" }}">
{{ end }}
{{ if .Params.author }}
<meta name="DC.Creator" content="{{ .Params.author }} $.Params.author">
{{ else if .Site.Params.author }}
<meta name="DC.Creator" content="{{ .Site.Params.author }}">
{{ else if $.Site.Author }}
{{ range $.Site.Author }}
<meta name="DC.Creator" content="{{ . }} $.Site.Author">
{{ end }}
{{ end }}
{{ if .Site.Language.Lang }}
<meta name="DC.Language" content="{{ .Site.Language.Lang }}">
{{ end }}
{{ if .Description }}
<meta name="DC.Description" content="{{ .Description }}">
{{ else if .IsPage }}
<meta name="DC.Description" content="{{ .Summary | plainify }}">
{{ else }}
<meta name="DC.Description" content="{{ .Site.Params.MetaDescription }}">
{{ end }}
{{ if .Permalink }}
<meta name="DC.Identifier" content="{{ .Permalink }}">
{{ end }}
{{ if .Params.tags }}
<meta name="keywords" content="{{ range .Params.tags }}{{.}},{{ end }}">
{{ end }}
{{ if .Site.Params.googlesiteverification }}
<meta name="google-site-verification" content="{{ .Site.Params.googlesiteverification }}" />
{{ end }}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}" />
<link rel="stylesheet" href="{{ "/css/fonts.css" | relURL }}" />
</head>
<body>
<a class="skip-main" href="#main">Skip to main content</a>
{{ partial "head_custom.html" . }}

View File

@ -0,0 +1,3 @@
<details>
{{ .Inner | markdownify }}
</details>

View File

@ -0,0 +1,3 @@
<div class="{{ .Get 0 }}">
{{ .Inner | markdownify }}
</div>

View File

@ -0,0 +1,3 @@
<figure class="{{ .Get 0 }}">
{{ .Inner | markdownify }}
</figure>

View File

@ -0,0 +1,3 @@
<a href="{{ .Get 0 }}" rel="pgpkey authn">
{{ .Inner | markdownify }}
</a>

View File

@ -0,0 +1 @@
<a href="{{ .Get 0 }}" rel="me">{{ trim .Inner "\n" }}</a>

View File

@ -0,0 +1,3 @@
<section class="{{ .Get 0 }}">
{{ .Inner | markdownify }}
</section>

View File

@ -0,0 +1,3 @@
<summary>
{{ .Inner | markdownify }}
</summary>

13
static/css/fonts.css Normal file
View File

@ -0,0 +1,13 @@
@font-face {
font-family: "Berkeley Mono";
src: url("/fonts/BerkeleyMono.woff2");
}
body {
font-family: "Berkeley Mono", monospace, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Symbola';
}
code {
font-family: "Berkeley Mono", monospace, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Symbola';
font-size: 85%;
}

365
static/css/style.css Normal file
View File

@ -0,0 +1,365 @@
/* Variable declarations which are available to all styles. */
:root {
--black-coffee: #352d39;
--floral-white: #fef9ef;
--charcoal: #2c4251;
--charcoal-light: #2c425130;
--red-violet: #943246;
--lavender-blush: #ffedef;
--honey-yellow: #ffb000;
--sunglow: #ffcc00;
--phosphor-brown: #282828;
/* --shadow: 0 0 3px #ffb00066, 0 0 5px #ffcc0033; */
/* The background of the page backdrop. */
--bg-color: var(--floral-white);
/* The color of text on the backdrop. */
--fg-color: black;
/* The color used for borders and highlights. */
--offset-border-color: var(--charcoal);
/* The background used to encapsulate off-set text areas of the page. */
--offset-bg-color: var(--floral-white);
/* The color used for cards and callouts. */
--callout-bg-color: var(--floral-white);
--callout-fg-color: var(--fg-color);
--callout-dropshadow-color: var(--charcoal-light);
/* The color used to set links apart from non-interactable text. */
--link-color: inherit;
}
html{
background-color: var(--black-coffee);
}
/* Applied to the whole visible content of the page. */
body {
max-width: 55em;
margin: 1.5em auto 1.5em auto;
/* provides nice soft padding for text on narrow screens. */
padding: 1em 2.5em 1em 2.5em;
box-shadow: 0 0 0 1em var(--bg-color);
color: var(--fg-color);
text-shadow: var(--shadow);
background-color: var(--bg-color);
border-left: 11.7px var(--black-coffee) dotted;
border-right: 11.7px var(--black-coffee) dotted;
}
/* Applied to the textual content of the page. */
main {
hyphens: auto;
/* "Let it breathe." Text does not need to be jammed as close together as possible. */
line-height: 1.4;
/* Slightly higher font size means it's easier to read. */
/* Setting a pt value here means other adjustments are made in scale. */
}
main header {
text-align: center;
}
main h1 {
font-size: 1.8rem;
}
main h2 {
font-size: 1.5rem;
}
main h3 {
}
/* The main content for the index page, standing out on purpose. */
.hero {
display: flex;
flex-flow: row nowrap;
align-items: center;
}
/* Let the hero portrait image be above the hero intro text on small devices. */
@media only screen and (max-width: 600px) {
}
/* Reduces margin just enough to accomodate the shadow (see below) */
/* (shadows gets cut off otherwise, since it breaches the borders of <body>) */
.hero .portrait {
margin-left: 2px;
}
/* Adds a soft border-like shadow under the image to make it stand out but not too much */
.hero img {
filter: drop-shadow(0 0 2px var(--callout-dropshadow-color));
}
/* Text block in the hero for displaying larger introductory text. */
.intro {
min-width: 200px;
}
/* Make section into cards. */
section {
margin: 0px;
padding: 0px 8px 0px;
color: var(--callout-fg-color);
background-color: var(--bg-color);
}
/* Remove the disclosure triangle, per
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary
*/
summary {
display: block;
}
/* Makes the content cascade downwards nicely.
* Details summary is flush, but details content is one em right. */
details {
padding: 0 0em;
}
details > :not(summary) {
margin-left: 1em;
margin-right: 0em;
}
/* Show a textual prompt for opening details (shown after the summary) */
summary:after {
color: var(--link-color);
font-weight: bold;
content: "Show more...";
}
/* Show a textual prompt for closing details (shown after the summary) */
details[open] summary:after {
content: "Show less...";
}
/* Basic shape and alignment of the navigational header and informational footer. */
header, footer {
text-align: center;
}
/* Place the title on the left and the navigation on the right. */
body>header {
display: flex;
/* spreads the elements of a flex-displayed container as far apart as possible */
justify-content: space-between;
/* aligns the elements of a flex-displayed container vertically, along the center line */
align-items: center;
margin-bottom: 1em;
padding: 0.25rem 0.5rem;
background-color: var(--fg-color);
color: var(--bg-color);
}
/* Let the header text be above the navigation links in the header on small devices. */
@media only screen and (max-width: 600px) {
header {
display: flex;
flex-flow: column nowrap;
align-items: center;
margin-bottom: 1em;
}
.hero {
display: flex;
flex-flow: column nowrap;
align-items: center;
}
body{
margin: 1rem;
padding: 1rem;
}
}
nav.div {
display: block;
float: right;
}
nav a + a {
margin-left: 0.33em;
}
/* Link styling. All links get the same color. When hovering, they get an underline. */
a,
a:visited,
a:hover { color: var(--link-color) }
a { text-decoration: underline; }
a:hover { text-decoration: none; }
a[href*="://"]:after {
content: "↗";
display: inline-block;
font-weight: bold;
}
/* List styling */
li + li { margin-top: 0.5ex; }
/* Turn off bullets and spacing on list pages */
.list ul {
padding-left: 0px;
}
.list li {
list-style-type: none;
}
/* Applied to the Hugo-generated Table of Contents.
* To get a TOC, the following is added to the YAML.
output:
blogdown::html_page:
toc: true
*/
/* Images, tables, etc are centrally aligned. */
img:not(.inline), iframe, video {
max-width: 100%;
display: block;
margin-left: auto;
margin-right: auto;
}
/* Generated tables. */
#goat {
max-width: 100%;
display: block;
margin-left: auto;
margin-right: auto;
}
/* For images with caption, placed in-line with text */
figure {
margin: 20px;
max-width: 300px;
background-color: white;
padding: 2.5%;
border-radius: 0.5rem;
filter: drop-shadow(3px 3px 4px black);
}
figure.right {
float: right;
transform: rotate(0.5deg);
}
figure.left {
float: left;
transform: rotate(-0.75deg);
}
figure.center {
max-width: 100%;
width: auto;
margin: auto;
text-align: center;
}
figure img {
max-width: 200px;
border-radius: 0.5rem;
filter: grayscale(0.5);
}
figure.center img {
max-width: 100%;
}
figure.portrait {
margin: initial;
background-color: white;
padding: 0;
margin: 2.5%;
border-radius: 50%;
filter: none;
}
figure.portrait img {
max-width: 200px;
border-radius: 100%;
}
/* Block quotes and code quotes have some emphasis added. */
blockquote, pre {
/* A bar to the left of each quote. */
border: 1px solid var(--offset-border-color);
border-left: 5px solid var(--offset-border-color);
/* Tastefully rounded corners. */
border-radius: 3px;
/* An offset background. Important to override pygments. */
background-color: var(--offset-bg-color) !important;
/* Basic outstanding layout. */
margin: 1rem 0.75rem 0.5rem 0.75rem;
padding: 0.5rem 1rem;
}
/* Code boxes scroll instead of wrapping. */
pre {
overflow-x: auto;
}
/* pagination */
.pagination li {
display: inline;
list-style: none;
}
ul.pagination {
padding: none;
}
/* Pretty styling for tables. */
table {
border-collapse: collapse;
}
thead th, tfoot th {
margin: auto;
padding: 2px;
font-weight: heavy;
}
td {
padding: 0.5rem 0.5rem;
border: 1px solid var(--fg-color);
}
/*
table {
margin: auto;
border-top: 1px solid var(--fg-color);
border-bottom: 1px solid var(--fg-color);
}
table thead th { border-bottom: 1px solid var(--fg-color); }
th, td { padding: 5px; }
*/
/* Turn off unused elements in print layouts */
@media print {
header, footer { display: none !important; }
code { font-size: 45%; }
a.footnote-return { display: none !important; }
}
/* From https://accessibility.oit.ncsu.edu/it-accessibility-at-nc-state/developers/accessibility-handbook/mouse-and-keyboard-events/skip-to-main-content/ */
a.skip-main {
position: absolute;
left: -9999px;
background-color: #000;
color: #fff;
padding: 0.25em 1em;
border-radius: 16px;
border: 4px solid yellow;
text-align: center;
font-size: 1.25em;
}
a.skip-main:focus,
a.skip-main:active { left: auto; }

13
theme.toml Normal file
View File

@ -0,0 +1,13 @@
name = "MONKEYCHEF"
license = "fuck u"
licenselink = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
description = "A pretty page that looks like paper!"
homepage = "https://nora.codes"
tags = ["minimal", "blog", "personal", "simple", "clean", "starter", "minimalist"]
features = ["blog"]
min_version = "0.69"
[author]
name = "null & void Danger Ultraviolet"
homepage = "https://0ultraviolet.space"