feat: move from cobalt to zola

This commit is contained in:
Kat Inskip 2025-07-08 02:01:41 -07:00
parent 78626987fe
commit 72899ff7f1
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
62 changed files with 356 additions and 225 deletions

View file

@ -1,7 +0,0 @@
site:
title: dork.dev
description: kat, the dorky developer
base_url: https://dork.dev
posts:
rss: rss.xml

View file

@ -1,2 +0,0 @@
<h1><a href="/">{{ site.title }}</a><small> - {{ page.title }}</small></h1>
<hr>

View file

@ -1,23 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
{% include "head.liquid" %}
</head>
<body>
<div>
<header>
{% include "header.liquid" %}
</header>
<main>
<article>
Published on <time>{{ page.published_date }}</time>.
{{ page.content }}
</article>
</main>
<footer>
{% include "footer.liquid" %}
</footer>
</div>
</body>
</html>

View file

@ -1,19 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
{% include "head.liquid" %}
</head>
<body>
<div>
<header>
{% include "header.liquid" %}
</header>
<main>
{{ page.content }}
</main>
<footer>
{% include "footer.liquid" %}
</footer>
</div>
</body>
</html>

17
config.toml Normal file
View file

@ -0,0 +1,17 @@
# The URL the site will be built for
base_url = "https://dork.dev"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = true
[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
[extra]
# Put all your custom variables here
site_title = "dork.dev"

View file

@ -1,9 +1,7 @@
--- +++
title: Doing something with this domain! title = "Doing something with this domain!"
published_date: 2024-04-07 19:34:53.004899835 +0000 date = 2024-04-07T19:34:53Z
layout: article.liquid +++
is_draft: false
---
I've moved this website to use [cobalt](http://cobalt-org.github.io/)! Hopefully I should be making posts here, too. ^^ I've moved this website to use [cobalt](http://cobalt-org.github.io/)! Hopefully I should be making posts here, too. ^^
I have a few ideas for posts here, including talking about starting with using the RTL-SDR v4 and my experiences so far with the Framework 13 laptop. I have a few ideas for posts here, including talking about starting with using the RTL-SDR v4 and my experiences so far with the Framework 13 laptop.

View file

@ -1,9 +1,7 @@
--- +++
title: The first month of life with the Framework 13 title = "The first month of life with the Framework 13"
published_date: 2024-04-07 19:34:59.86694117 +0000 date = 2024-04-07T19:34:59Z
layout: article.liquid +++
is_draft: false
---
## Preparation ## Preparation
I was starting to feel as if I needed to upgrade away from the Lenovo Thinkpad x270 because of performance issues and I had the money laying around to finally perform that upgrade. I settled upon the Framework 13 for ideological reasons, especially wanting a laptop that could last me a long time and be upgraded as I see fit, through generational improvements of the mainboard. I was starting to feel as if I needed to upgrade away from the Lenovo Thinkpad x270 because of performance issues and I had the money laying around to finally perform that upgrade. I settled upon the Framework 13 for ideological reasons, especially wanting a laptop that could last me a long time and be upgraded as I see fit, through generational improvements of the mainboard.
@ -57,4 +55,4 @@ Here's the lists of games I have installed, as pictures of the applications:
[![A list of games installed via Steam](framework-steam.png)](framework-steam.png) [![A list of games installed via Steam](framework-steam.png)](framework-steam.png)
This brings us practically up to the current day, 2 days before a month has passed since the laptop was made operational. I have felt no buyer's remorse, no bad feelings about this laptop whatsoever. This brings us practically up to the current day, 2 days before a month has passed since the laptop was made operational. I have felt no buyer's remorse, no bad feelings about this laptop whatsoever.

View file

@ -1,9 +1,7 @@
--- +++
title: 2 months into my first 3D printer title = "2 months into my first 3D printer"
published_date: 2024-09-14 19:26:06.673760537 +0000 date = 2024-09-14T19:26:06Z
layout: article.liquid +++
is_draft: false
---
[![Ender 3 V3 SE](printer.jpg)](printer.jpg) [![Ender 3 V3 SE](printer.jpg)](printer.jpg)
## Pre-arrival ## Pre-arrival

View file

@ -1,9 +1,7 @@
--- +++
title: I built two keyboards over the last year! title = "I built two keyboards over the last year!"
published_date: 2025-06-20 07:53:17.789977958 +0000 date = 2025-06-20T07:53:17Z
layout: article.liquid +++
is_draft: false
---
## Handwired ## Handwired

View file

@ -1,9 +1,7 @@
--- +++
title: TaimiHUD - finally, I can play Guild Wars 2 on Linux! title = "TaimiHUD - finally, I can play Guild Wars 2 on Linux!"
published_date: 2025-06-20 07:53:23.065138653 +0000 date = "2025-06-20T07:53:23Z"
layout: article.liquid +++
is_draft: false
---
## An unbelievable quantity of thanks to: ## An unbelievable quantity of thanks to:

6
content/blog/_index.md Normal file
View file

@ -0,0 +1,6 @@
+++
sort_by = "date"
template = "blog.html"
page_template = "page.html"
draft = false
+++

View file

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 3.4 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1,014 KiB

After

Width:  |  Height:  |  Size: 1,014 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 694 KiB

After

Width:  |  Height:  |  Size: 694 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 4 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.7 MiB

After

Width:  |  Height:  |  Size: 6.7 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 3.4 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 13 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 13 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 13 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 380 KiB

After

Width:  |  Height:  |  Size: 380 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 13 MiB

Before After
Before After

12
flake.lock generated
View file

@ -5,11 +5,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -20,11 +20,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1712439257, "lastModified": 1750741721,
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", "narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", "rev": "4b1164c3215f018c4442463a27689d973cffd750",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,5 +1,5 @@
{ {
description = "dork.dev, using the cobalt ssg"; description = "dork.dev; using Zola";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";

View file

@ -1,80 +0,0 @@
---
layout: default.liquid
title: Home
---
<section id="about">
## about
Hi! I'm kat and I'm a dorky developer (meant affectionately, of course; I chose the dork life ^~^).
My hobbies involve software development, system administration, infrastructure, smart home projects, hobbyist electronics, playing with <abbr title="software defined radio">SDR</abbr>, reading books and manga, watching anime, cooking and baking.
I am currently studying for an amateur radio qualification in Canada and I hope to eventually get a firearms possession and acquisition license and a first aid qualification.</p>
This website is not for talking about my professional life, but for credence; I am a DevOps engineer with two years of experience and I have a bachelors (at a first) in Digital Forensics and Cyber Security.
</section>
<section id="posts">
## posts
<nav>
<ul>
{% for post in collections.posts.pages %}
<li>
<article>
<a href="{{ post.permalink }}"><h3>{{ post.title }}</h3></a>
<p><time>{{ post.published_date }}</time></P>
</article>
</li>
{% endfor %}
</ul>
</nav>
</section>
<section id="projects">
## projects
<nav>
<ul>
<li>
<article>
<a href="https://github.com/TaimiHUD/TaimiHUD">
<h3>TaimiHUD/TaimiHUD</h3>
</a>
<p>A Rust Guild Wars 2 addon that provides Encounter Timers, Squad Marker Presets and Pathing for Nexus and ArcDPS.</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/kittywitch/infrastructure">
<h3>kittywitch/infrastructure</h3>
</a>
<p>Personal NixOS + Terraform infrastructure repository.</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/gensokyo.zone/infrastructure">
<h3>gensokyo-zone/infrastructure</h3>
</a>
<p>Apartment NixOS + Terraform infrastructure repository, a project with my wife!</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/kittywitch/konawall-py">
<h3>kittywitch/konawall-py</h3>
</a>
<p>Wallpaper changer for multiple desktop environments with modular services intended to be used with boorus, currently konachan and e621.</p>
</article>
</li>
</ul>
</nav>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,014 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
public/blog/printer.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

BIN
public/blog/taimihud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

10
public/elasticlunr.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
public/gallery-01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

BIN
public/gallery-02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

BIN
public/logotype-holo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

File diff suppressed because one or more lines are too long

1
public/stylesheet.css Normal file
View file

@ -0,0 +1 @@
*{box-sizing:border-box}html{font-family:"Monaspace Krypton",monospace}body{width:80ch;margin:0 auto;line-height:1.4;padding:1em}#gallery ul{list-style-type:none;margin:0;padding:0;column-count:2}img{max-width:100%;max-height:50ch}header nav ul{list-style-type:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5em}header nav ul li{display:inline-block;padding:0;margin:0;flex-grow:1;text-align:center}#interests ul{column-count:2}a,a:link{text-decoration:none;color:#16b1bd}a:visited{text-decoration:none;color:#3784e8}a:hover{text-decoration:none;color:#37dce8;border-bottom:.01rem #37dce8 solid}a:hover:has(img){border:none;padding:.02rem}a:hover:has(img) img{border:.01rem #37dce8 solid}footer nav ul{list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;column-count:2;gap:.5em .25em}footer nav ul li{padding:0;margin:0;flex-grow:1}footer nav ul li:nth-child(2n){text-align:right}@media (prefers-color-scheme: dark){html{color:#ddd;background:#141414}h1,h2,h3{color:#eee}}@media (prefers-color-scheme: light){html{color:#333;background:#fcfcfc}h1,h2,h3{color:#111}}html:has(#color-scheme-dark:checked){color:#ddd;background:#141414}html:has(#color-scheme-dark:checked) h1,html:has(#color-scheme-dark:checked) h2,html:has(#color-scheme-dark:checked) h3{color:#eee}html:has(#color-scheme-light:checked){color:#333;background:#fcfcfc}html:has(#color-scheme-light:checked) h1,html:has(#color-scheme-light:checked) h2,html:has(#color-scheme-light:checked) h3{color:#111}

149
sass/stylesheet.scss Normal file
View file

@ -0,0 +1,149 @@
$light-bg: #fcfcfc;
$light-fg: #333;
$light-heading: #111;
$dark-bg: #141414;
$dark-fg: #ddd;
$dark-heading: #eee;
$link-base: #16b1bd;
$link-hover: #37DCE8;
$link-visited: #3784e8;
* {
box-sizing: border-box;
}
html {
font-family: "Monaspace Krypton", monospace;
}
body {
/* Make the body a 80 character wide container */
width: 80ch;
/* Center the container within the viewport */
margin: 0 auto;
/* Give the lines an adequate amount of room to breathe. */
line-height: 1.4;
/* Make sure the edge of the body has a gap for mobile */
padding: 1em;
}
#gallery {
ul {
list-style-type: none;
margin: 0;
padding: 0;
column-count: 2;
li {
img {
}
}
}
}
img {
/* Make sure that the images do not overflow the body */
max-width: 100%;
/* Make sure that the images are not too tall as to be annoying */
max-height: 50ch;
}
header nav ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
li {
display: inline-block;
padding: 0;
margin: 0;
flex-grow: 1;
text-align: center;
}
}
#interests ul {
column-count: 2;
}
a, a:link {
text-decoration: none;
color: $link-base;
}
a:visited {
text-decoration: none;
color: $link-visited;
}
a:hover {
text-decoration: none;
color: $link-hover;
border-bottom: 0.01rem $link-hover solid;
}
a:hover:has(img) {
border: none;
padding: 0.02rem;
img {
border: 0.01rem $link-hover solid;
}
}
/* We want the footer to be like two columns, where the right columns are also right-aligned and the columns grow to share the space sanely. */
footer nav ul {
list-style-type: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
column-count: 2;
gap: 0.5em 0.25em;
li {
padding: 0;
margin: 0;
flex-grow: 1;
&:nth-child(2n) {
text-align: right;
}
}
}
@media (prefers-color-scheme: dark) {
html {
color: $dark-fg;
background: $dark-bg;
}
h1, h2, h3 {
color: $dark-heading;
}
}
@media (prefers-color-scheme: light) {
html {
color: $light-fg;
background: $light-bg;
}
h1, h2, h3 {
color: $light-heading;
}
}
html:has(#color-scheme-dark:checked) {
color: $dark-fg;
background: $dark-bg;
h1, h2, h3 {
color: $dark-heading;
}
}
html:has(#color-scheme-light:checked) {
color: $light-fg;
background: $light-bg;
h1, h2, h3 {
color: $light-heading;
}
}

View file

@ -1,8 +1,8 @@
{pkgs ? import <nixpkgs> {}}: let {pkgs ? import <nixpkgs> {}}: let
inherit (pkgs) mkShell cobalt; inherit (pkgs) mkShell zola;
in in
mkShell { mkShell {
packages = [ packages = [
cobalt zola
]; ];
} }

View file

@ -1,51 +0,0 @@
/* Let's keep it stupid, simple. ^^ */
*
/* Make CSS sizing sane */
box-sizing: border-box
html
font-family: "Monaspace Krypton", monospace
/* Make the main text not solid black */
color: #333
/* Let's not use solid white */
background: #fcfcfc
body
/* Make the body a 80 character wide container */
width: 80ch
/* Center the container within the viewport */
margin: 0 auto
/* Give the lines an adequate amount of room to breathe. */
line-height: 1.4
/* Make sure the edge of the body has a gap for mobile */
padding: 1em
h1, h2, h3
/* More contrast with the headers than the main text */
color: #111
img
/* Make sure that the images do not overflow the body */
max-width: 100%
/* Make sure that the images are not too tall as to be annoying */
max-height: 50ch
/* We want the footer to be like two columns, where the right columns are also right-aligned and the columns grow to share the space sanely. */
footer nav ul
list-style-type: none
padding: 0
margin: 0
display: flex
flex-wrap: wrap
column-count: 2
gap: 0.5em 0.25em
li
display: inline-block
padding: 0
margin: 0
flex-grow: 1
&:nth-child(2n)
text-align: right

24
templates/base.html Normal file
View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ config.extra.site_title }}</title>
{% include "head.html" %}
</head>
<body>
<div>
<header>
{% include "header.html" %}
</header>
<main>
{% block content %} {% endblock content %}
</main>
<footer>
{% include "footer.html" %}
</footer>
</div>
</body>
</html>

18
templates/blog.html Normal file
View file

@ -0,0 +1,18 @@
{% extends "base.html" %}
{% block content %}
<section id="blogposts">
<h2>Blogposts</h2>
<ul>
{% for post in section.pages %}
<li>
<article>
<a href="{{post.permalink | safe}}"><h3>{{ post.title }}</h3></a>
<p>Posted: <time>{{ post.date }}</time></p>
</article>
</li>
{% endfor %}
</ul>
</section>
{% endblock content %}

View file

@ -1,7 +1,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title>dork.dev - {{ page.title }}</title> <title>{{ config.extra.site_title }}</title>
<link rel="stylesheet" type="text/css" href="/stylesheet.css"> <link rel="stylesheet" type="text/css" href="/stylesheet.css">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:title" content="{{ site.title }} - {{ page.title }}" /> <meta property="og:title" content="{{ config.extra.site_title }}" />
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
<meta property="og:url" content="{{ page.permalink }}" /> <meta property="og:url" content="{{ current_url }}" />

13
templates/header.html Normal file
View file

@ -0,0 +1,13 @@
<input name="color-scheme" type="radio" id="color-scheme-dark" value="dark">
<label for="color-scheme-dark">Dark</label>
<input name="color-scheme" type="radio" id="color-scheme-light" value="light">
<label for="color-scheme-light">Light</label>
<h1><a href="/">{{ config.extra.site_title }}</h1>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog">Blog</a></li>
</ul>
</nav>
<hr>

75
templates/index.html Normal file
View file

@ -0,0 +1,75 @@
{% extends "base.html" %}
{% block content %}
<section id="about">
<h2>About</h2>
Hi! I'm Kat. I have an eclectic range of interests.
</section>
<section id="interests">
<h2>Interests</h2>
<ul>
<li>Software Development</li>
<li>Video game modding</li>
<li>System Administration</li>
<li>Development Operations</li>
<li>Digital Infrastructure</li>
<li>Hobbyist Electronics</li>
<li>Smart Home Projects</li>
<li>Software-defined Radio</li>
<li>Amateur Radio (not yet licensed!)</li>
<li>Firearms</li>
<li>Anime and Manga</li>
<li>Cyber Security</li>
<li>3D Printing</li>
<li>Mechanical Keyboards</li>
</ul>
</section>
<section id="projects">
<h2>Projects</h2>
Please see <a href="https://github.com/kittywitch">my GitHub</a>.
<nav>
<ul>
<li>
<article>
<a href="https://github.com/TaimiHUD/TaimiHUD">
<h3>TaimiHUD/TaimiHUD</h3>
</a>
<p>A Rust Guild Wars 2 addon that provides Encounter Timers, Squad Marker Presets and Pathing for Nexus and ArcDPS.</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/kittywitch/infrastructure">
<h3>kittywitch/infrastructure</h3>
</a>
<p>Personal NixOS + Terraform infrastructure repository.</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/gensokyo.zone/infrastructure">
<h3>gensokyo-zone/infrastructure</h3>
</a>
<p>Apartment NixOS + Terraform infrastructure repository, a project with my wife!</p>
</article>
</li>
<li>
<article>
<a href="https://github.com/kittywitch/konawall-py">
<h3>kittywitch/konawall-py</h3>
</a>
<p>Wallpaper changer for multiple desktop environments with modular services intended to be used with boorus, currently konachan and e621.</p>
</article>
</li>
</ul>
</nav>
</section>
{% endblock content %}

9
templates/page.html Normal file
View file

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block content %}
<h1 class="title">
{{ page.title }}
</h1>
<p class="subtitle"><strong><time>{{ page.date }}</time></strong></p>
{{ page.content | safe }}
{% endblock content %}