From 57abab7d0c27161e909d07498c86012c82db246e Mon Sep 17 00:00:00 2001
From: Adam Stück
Date: Fri, 15 Dec 2023 11:23:21 +0000
Subject: overhaul: switch from ssg to barf
- simplify and polish most pages
- add /colophon, /now, /contact
- drop /resume-da
- drop javascript
- patch barf to create symlinks for /rss.xml and /feed to /atom.xml
---
.build.yml | 5 +-
Makefile | 13 ++
barf | 107 +++++++++++++++++
build/2023-02-log/index.html | 73 ------------
build/2023-02/index.html | 75 ++++++++++++
build/atom.xml | 53 +++++++++
build/colophon/index.html | 56 +++++++++
build/contact/index.html | 48 ++++++++
build/donate/index.html | 82 +++++++------
build/feed | 1 +
build/index.html | 109 +++++++----------
build/js/showhide.js | 27 -----
build/main.css | 86 --------------
build/now/index.html | 52 ++++++++
build/pages.tsv | 8 ++
build/posts.tsv | 1 +
build/projects/index.html | 63 +++++-----
build/resume-da/index.html | 181 ----------------------------
build/resume/index.html | 277 +++++++++++++++++++++++--------------------
build/rss.xml | 71 +----------
build/services/index.html | 109 ++++++-----------
build/sitemap.xml | 15 ---
build/uses/index.html | 195 ++++++++++++------------------
footer.html | 23 ++++
header.html | 16 +++
index.md | 12 ++
pages/colophon.md | 22 ++++
pages/contact.md | 9 ++
pages/donate.md | 24 ++++
pages/now.md | 16 +++
pages/projects.md | 5 +
pages/resume.md | 181 ++++++++++++++++++++++++++++
pages/services.md | 6 +
pages/uses.md | 58 +++++++++
posts/2023-02.md | 47 ++++++++
src/2023-02-log/index.md | 57 ---------
src/_footer.html | 13 --
src/_header.html | 22 ----
src/donate/index.md | 8 --
src/index.md | 47 --------
src/js/showhide.js | 27 -----
src/main.css | 86 --------------
src/projects/index.md | 7 --
src/resume-da/index.md | 171 --------------------------
src/resume/index.md | 171 --------------------------
src/rss.xml | 70 -----------
src/services/index.md | 20 ----
src/uses/index.md | 60 ----------
ssg | 243 -------------------------------------
49 files changed, 1225 insertions(+), 1903 deletions(-)
create mode 100644 Makefile
create mode 100755 barf
delete mode 100644 build/2023-02-log/index.html
create mode 100644 build/2023-02/index.html
create mode 100644 build/atom.xml
create mode 100644 build/colophon/index.html
create mode 100644 build/contact/index.html
create mode 120000 build/feed
delete mode 100644 build/js/showhide.js
delete mode 100644 build/main.css
create mode 100644 build/now/index.html
create mode 100644 build/pages.tsv
create mode 100644 build/posts.tsv
delete mode 100644 build/resume-da/index.html
mode change 100644 => 120000 build/rss.xml
delete mode 100644 build/sitemap.xml
create mode 100644 footer.html
create mode 100644 header.html
create mode 100644 index.md
create mode 100644 pages/colophon.md
create mode 100644 pages/contact.md
create mode 100644 pages/donate.md
create mode 100644 pages/now.md
create mode 100644 pages/projects.md
create mode 100644 pages/resume.md
create mode 100644 pages/services.md
create mode 100644 pages/uses.md
create mode 100644 posts/2023-02.md
delete mode 100644 src/2023-02-log/index.md
delete mode 100644 src/_footer.html
delete mode 100644 src/_header.html
delete mode 100644 src/donate/index.md
delete mode 100644 src/index.md
delete mode 100644 src/js/showhide.js
delete mode 100644 src/main.css
delete mode 100644 src/projects/index.md
delete mode 100644 src/resume-da/index.md
delete mode 100644 src/resume/index.md
delete mode 100644 src/rss.xml
delete mode 100644 src/services/index.md
delete mode 100644 src/uses/index.md
delete mode 100755 ssg
diff --git a/.build.yml b/.build.yml
index 845e183..68015ee 100644
--- a/.build.yml
+++ b/.build.yml
@@ -2,12 +2,11 @@ image: alpine/edge
oauth: pages.sr.ht/PAGES:RW
packages:
- hut
-- lowdown
environment:
site: adast.dk
tasks:
- package: |
- cd $site
- tar -C build -cvz . > ../site.tar.gz
+ cd $site/build
+ tar -cvz . > ../../site.tar.gz
- upload: |
hut pages publish -d $site site.tar.gz
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b16a580
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,13 @@
+build:
+ sh ./barf
+ rsync -r public/ build/public
+
+clean:
+ rm -rf build/*
+
+watch:
+ while true; do \
+ ls -d .git/* * posts/* pages/* header.html | entr -cd make ;\
+ done
+
+.PHONY: build clean watch
diff --git a/barf b/barf
new file mode 100755
index 0000000..07ad771
--- /dev/null
+++ b/barf
@@ -0,0 +1,107 @@
+#!/bin/sh
+set -eu
+MARKDOWN=smu
+IFS=' '
+
+# Create tab separated file with filename, title, creation date, last update
+index_tsv() {
+ for f in "$1"/*.md
+ do
+ title=$(sed -n '/^# /{s/# //p; q}' "$f")
+ printf '%s\t%s\t%s\t%s\n' "$f" "${title:="No Title"}"
+ done
+}
+
+index_html() {
+ # Print header
+ title=$(sed -n '/^# /{s/# //p; q}' index.md)
+ sed "s/{{TITLE}}/$title/" header.html
+
+ # Intro text
+ $MARKDOWN index.md
+
+ echo ""
+
+ # Posts
+ while read -r f title created; do
+ link=$(echo "$f" | sed -E 's|.*/(.*).md|\1/|')
+ created=$(echo $(head -3 "$f" | tail -1))
+ echo "$created · $title "
+ done < "$1" | sort -r
+
+ echo " "
+
+ # Print footer after post list
+ cat footer.html
+}
+
+atom_xml() {
+ uri=$(sed -rn '/atom.xml/ s/.*href="([^"]*)".*/\1/ p' header.html)
+ domain=$(echo "$uri" | sed 's/atom.xml//g' | sed 's|/[^/]*$||')
+ first_commit_date=$(git log --pretty='format:%ai' . | cut -d ' ' -f1 | tail -1)
+
+ cat <
+
+ $(sed -n '/^# /{s/# //p; q}' index.md)
+
+ $(date +%FT%TZ)
+
+ $(git config user.name)
+
+ $domain,$first_commit_date:default-atom-feed/
+EOF
+
+ while read -r f title created; do
+
+ content=$($MARKDOWN "$f" | sed 's/&/\&/g; s/\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g')
+ post_link=$(echo "$f" | sed -E 's|posts/(.*).md|\1|')
+ basic_date=$(echo $(head -3 "$f" | tail -1))
+ published_date=$(date -d $basic_date -u +%Y-%m-%dT10:%M:%SZ)
+
+ cat <
+ $title
+ $content
+
+ $domain/$post_link
+ $published_date
+ $published_date
+
+EOF
+ done < "$1"
+
+ echo ' '
+}
+
+write_page() {
+ filename=$1
+ directory=$(echo $(basename "$filename" .md))
+ $(mkdir -p build/$directory)
+ target=$(echo "$filename" | sed -r 's|\w+/(.*).md|build/\1/index.html|')
+ created=$(echo $(head -3 "$filename" | tail -1))
+ title=$2
+
+ $MARKDOWN "$filename" | \
+ cat header.html - |\
+ sed "s|{{TITLE}}|$title|" \
+ > "$target" && cat footer.html >> "$target"
+}
+
+rm -rf build && mkdir build
+
+# Blog posts
+index_tsv posts | sort -rt " " -k 3 > build/posts.tsv
+index_html build/posts.tsv > build/index.html
+atom_xml build/posts.tsv > build/atom.xml
+ln -sf atom.xml build/rss.xml
+ln -sf atom.xml build/feed
+while read -r f title created; do
+ write_page "$f" "$title" "$created"
+done < build/posts.tsv
+
+# Pages
+index_tsv pages > build/pages.tsv
+while read -r f title created; do
+ write_page "$f" "$title" "$created"
+done < build/pages.tsv
diff --git a/build/2023-02-log/index.html b/build/2023-02-log/index.html
deleted file mode 100644
index 983a27a..0000000
--- a/build/2023-02-log/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
- Status update, February 2023
-
-
-
-
-
-
-Status update, February 2023
-2023-03-04
-Hello world!
-Hi, welcome to my website.
-This is probably your first time seeing it, but it just went through a
-major makeover. I’ve archived the old
-design if
-you want to check it out.
-The new design is blazingly fast , light as a feather, and anyone can navigate
-it.
-You’ll find my contact details and important links on the homepage.
-There are links to more information about myself and this website, projects I’m
-working on, and my RSS feed at the top.
-I’ve included my PGP key if you wish to send me mail privately.
-This redesign was heavily inspired by bt.ht and
-drewdevault.com .
-
-The CompSci department at my uni hosts an annual LAN party with tournaments
-in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get arena to a playable,
-fun state, and have a LAN tournament to really put it to the test.
-I want to start working on my game again, and I want to it to be playable in
-time for the LAN party.
-I have about 5 weeks to make it happen.
-What to expect
-I have a few technical blog posts planned, but I’ll also just be posting
-about anything I that interests me.
-I think I’ll start doing monthly status updates (like this post), much like
-the engineers at
-sourcehut.org .
-I’d also like to start posting (weekly) development logs for arena.
-Finally, I have a lot more services I need to start hosting before I really
-call this my platform . You can see the list of publicly available
-services by clicking the link at the top of the page. For now, I’m
-prioritising hosting the services that I use regularly.
-That’s all for now!
-Book club
-inspired by 100rabbits
-I’m reading A Voyage for Madmen by Peter Nichols.
-
-
-
-
diff --git a/build/2023-02/index.html b/build/2023-02/index.html
new file mode 100644
index 0000000..38bdbf9
--- /dev/null
+++ b/build/2023-02/index.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ Status update, February 2023
+
+
+
+
+
+ Menu ↓
+
+
+
+Status update, February 2023
+2023-03-04
+Hi, welcome to my website.
+This is probably your first time seeing it, but it just went through a
+major makeover. I've archived the old
+design if
+you want to check it out.
+The new design is blazingly fast , light as a feather, and anyone can navigate
+it.
+This redesign was heavily inspired by bt.ht and
+drewdevault.com .
+You'll find my contact details and important links on the homepage.
+There are links to more information about myself and this website, projects I'm
+working on, and my RSS feed at the top.
+I've included my PGP key if you wish to send me mail privately.
+Game dev is back on the menu!
+The CompSci department at my uni hosts an annual LAN party with tournaments
+in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get arena to a playable,
+fun state, and have a LAN tournament to really put it to the test.
+I want to start working on my game again, and I want to it to be playable in
+time for the LAN party.
+I have about 5 weeks to make it happen.
+What to expect
+I have a few technical blog posts planned, but I'll also just be posting
+about anything I that interests me.
+I think I'll start doing monthly status updates (like this post), much like
+the engineers at
+sourcehut.org .
+I'd also like to start posting (weekly) development logs for arena.
+Finally, I have a lot more services I need to start hosting before I really
+call this my platform . You can see the list of publicly available
+services by clicking the link at the top of the page. For now, I'm
+prioritising hosting the services that I use regularly.
+That's all for now!
+Book club
+I'm reading A Voyage for Madmen by Peter Nichols.
+
diff --git a/build/atom.xml b/build/atom.xml
new file mode 100644
index 0000000..3ae5863
--- /dev/null
+++ b/build/atom.xml
@@ -0,0 +1,53 @@
+
+
+ Adam Stück's blog
+
+ 2023-12-15T11:58:18Z
+
+ Adam Stück
+
+ https://adast.dk,2022-04-23:default-atom-feed/
+
+ Status update, February 2023
+ <h1>Status update, February 2023</h1>
+<p>2023-03-04</p>
+<p>Hi, welcome to my website.
+This is probably your first time seeing it, but it just went through a
+major makeover. I've archived <a href="https://web.archive.org/web/20221223055937/https://adast.xyz/">the old
+design</a> if
+you want to check it out.
+The new design is <em>blazingly fast</em>, light as a feather, and anyone can navigate
+it.
+This redesign was <strong>heavily</strong> inspired by <a href="https://bt.ht">bt.ht</a> and
+<a href="https://drewdevault.com">drewdevault.com</a>.</p>
+<p>You'll find my contact details and important links on the homepage.
+There are links to more information about myself and this website, projects I'm
+working on, and my RSS feed at the top.
+I've included my PGP key if you wish to send me mail privately.</p>
+<h2>Game dev is back on the menu!</h2>
+<p>The CompSci department at my uni hosts an annual LAN party with tournaments
+in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get <a href="https://arena.adast.dk">arena</a> to a playable,
+fun state, and have a LAN tournament to really put it to the test.
+I want to start working on my game again, and I want to it to be playable in
+time for the LAN party.
+I have about 5 weeks to make it happen.</p>
+<h2>What to expect</h2>
+<p>I have a few technical blog posts planned, but I'll also just be posting
+about anything I that interests me.
+I think I'll start doing monthly status updates (like this post), much like
+the <a href="https://sourcehut.org/consultancy/#our-engineers">engineers at
+sourcehut.org</a>.
+I'd also like to start posting (weekly) development logs for arena. </p>
+<p>Finally, I have a lot more services I need to start hosting before I really
+call this <em>my platform</em>. You can see the list of publicly available
+services by clicking the link at the top of the page. For now, I'm
+prioritising hosting the services that I use regularly.</p>
+<p>That's all for now! </p>
+<h2>Book club</h2>
+<p>I'm reading <strong>A Voyage for Madmen</strong> by Peter Nichols.</p>
+
+ https://adast.dk/2023-02
+ 2023-03-04T10:00:00Z
+ 2023-03-04T10:00:00Z
+
+
diff --git a/build/colophon/index.html b/build/colophon/index.html
new file mode 100644
index 0000000..9e89bd7
--- /dev/null
+++ b/build/colophon/index.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ Colophon
+
+
+
+
+
+ Menu ↓
+
+
+
+Colophon
+This website is a collection of living, breathing documents. As I mention on
+the homepage, this place is better referred to as an online brain
+dump . It might change over time. Styles might come and go.
+I can't help that, since tinkering with my personal blog is something I am very
+fond of. It's almost therapeutic.
+For those interested I try to keep the details of the blog up-to-date with the
+information below:
+Website Fast Facts
+
diff --git a/build/contact/index.html b/build/contact/index.html
new file mode 100644
index 0000000..e2ab681
--- /dev/null
+++ b/build/contact/index.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ Contact
+
+
+
+
+
+ Menu ↓
+
+
+
+Contact
+
+Have a comment on one of my posts? Start a discussion in my public
+inbox by sending an email to
+~adamski/public-inbox@lists.sr.ht
+[mailing list etiquette ]
+
diff --git a/build/donate/index.html b/build/donate/index.html
index 483013f..76c52d9 100644
--- a/build/donate/index.html
+++ b/build/donate/index.html
@@ -1,40 +1,56 @@
-
-
-
-
-
- Donate
-
-
-
-
-
-
-Donate
-Help keep the server running.
-Hetzner Referral
-Use my referral link , and get 20 EUR
-of Hetzner Cloud credits for free.
-
+
+
+
+
+
+
+ Donate
+
+
+
+
+
+ Menu ↓
+
- ↑ Back to Top
+
+Donate
+If you feel the burning desire to help support this small blog of mine, please
+take a look at the options below. You can still enjoy everything on this blog
+for free, so please don't feel obligated to donate.
+How are donations used?
+That's a good question. Almost all money donated goes towards hosting, domain
+renewal costs and open source services I use myself . Anything "extra"
+ends up getting me a coffee (or beer) to enjoy while I publish more free (and
+hopefully useful) content.
+Standard Donations
+I currently don't have any options for standard donation.
+Hetzner Referral
+For the web/software folk looking for a deal on server hosting: consider
+using my Hetzner referral link ,
+and get 20 EUR of cloud credits for free. That's roughly 2-4 months
+of hosting depending on the specs you choose. If you like the service
+and end up spending 20 EUR later on, I receive 20 EUR in credits too.
+
-
-
-
diff --git a/build/feed b/build/feed
new file mode 120000
index 0000000..f96e762
--- /dev/null
+++ b/build/feed
@@ -0,0 +1 @@
+atom.xml
\ No newline at end of file
diff --git a/build/index.html b/build/index.html
index b4888b9..0cac416 100644
--- a/build/index.html
+++ b/build/index.html
@@ -1,75 +1,52 @@
-
-
-
-
-
- Adam Stück’s blog
-
-
-
-
-
-
-Adam Stück’s blog
-
-Passionate about open source software, usability, performance, privacy, and
-minimal design.
-Interested in sustainability, game dev, technology, and living life.
-Junior Software Engineer @ Sky Labs Aalborg.
-Links
-
-
-sourcehut
-~adamski
-email
-adam@adast.dk
-pgp
-B5442B88D8E05672
-
+
+
+
+
+
+
+ Adam Stück's blog
+
+
+
-
+
+ Menu ↓
+
-
-2023-03-04 Status update, February 2023
+
+Adam Stück's blog
+I'm passionate about open source software, usability, performance, privacy, and
+minimal design. This small piece of the internet stores a growing collection of
+my personal brain dumps .
+
+Articles
+
-
-
-
diff --git a/build/js/showhide.js b/build/js/showhide.js
deleted file mode 100644
index afc9c06..0000000
--- a/build/js/showhide.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-http://www.tutorialhelpdesk.com/tutorials/web-development/javascript/how-to-show-hide-a-dhtml-div-using-onclick()-event.html
-*/
-
-function ShowHide(elementId)
-{
- var element = document.getElementById(elementId);
- if(element.style.display != "block")
- {
- element.style.display = "block";
- }
- else
- {
- element.style.display = "none";
- }
-}
-function UpdateText(element)
-{
- if(element.innerHTML.indexOf("Hide") == -1)
- {
- element.innerHTML = "Hide Abstract";
- }
- else
- {
- element.innerHTML = "Abstract";
- }
-}
diff --git a/build/main.css b/build/main.css
deleted file mode 100644
index 3291e54..0000000
--- a/build/main.css
+++ /dev/null
@@ -1,86 +0,0 @@
-* {
- box-sizing: border-box;
-}
-body {
- font-family: sans-serif;
- line-height: 1.45;
- margin: 0 auto;
- max-width: 45rem;
- padding: 0 15px;
-}
-hr {
- background-color: grey;
- border: 0;
- height: 1px;
- margin: 2rem 0;
-}
-nav {
- margin: 2rem 0 0;
-}
-main p {
- margin: 1rem;
-}
-h1,h2,h3,h4 {
- margin: 2rem 0 0;
-}
-h1 {
- margin-bottom: 0.5rem;
-}
-h1 + p {
- margin: 0 0 1rem;
-}
-img {
- border: 1px solid lightgrey;
- height: auto;
- max-width: 100%;
- width: auto;
-}
-blockquote {
- background-color: linen;
- border-left: 4px solid lightcoral;
- margin: 2rem 0;
- padding: 10px;
-}
-blockquote p {
- margin: 0;
-}
-figure {
- margin: 2rem 0;
-}
-figcaption {
- color: slategrey;
-}
-code {
- background: #eee;
- padding: 0.3rem;
- tab-size: 4;
-}
-pre {
- background: #eee;
-}
-pre code {
- background: none;
- display: block;
- overflow-x: auto;
- padding: 0.3rem 0.6rem;
-}
-table {
- border-collapse: collapse;
- margin: 2rem 0;
- text-align: left;
- width: 100%;
-}
-tr {
- border-bottom: 1px solid lightgrey;
-}
-tr:nth-of-type(odd) td {
- background-color: #f8f8f8;
-}
-th,td {
- padding: 6px;
-}
-footer {
- border-top: 1px dashed grey;
- margin: 2rem 0;
- padding: 1rem 15px;
-}
diff --git a/build/now/index.html b/build/now/index.html
new file mode 100644
index 0000000..7c513ca
--- /dev/null
+++ b/build/now/index.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ Now
+
+
+
+
+
+ Menu ↓
+
+
+
+Now
+This page is based off the now page concept by Derek Sivers.
+Updated December 15, 2023
+Work
+
+Working as a Linux system administrator & software engineer hybrid
+
+Life
+
+Trying to contribute more to open source projects that I actively use
+Slowly teaching myself the Godot game engine
+Playing Valheim with friends
+
+
diff --git a/build/pages.tsv b/build/pages.tsv
new file mode 100644
index 0000000..39bb355
--- /dev/null
+++ b/build/pages.tsv
@@ -0,0 +1,8 @@
+pages/colophon.md Colophon
+pages/contact.md Contact
+pages/donate.md Donate
+pages/now.md Now
+pages/projects.md Projects
+pages/resume.md Adam Stück
+pages/services.md Services
+pages/uses.md Things I use
diff --git a/build/posts.tsv b/build/posts.tsv
new file mode 100644
index 0000000..a8d370e
--- /dev/null
+++ b/build/posts.tsv
@@ -0,0 +1 @@
+posts/2023-02.md Status update, February 2023
diff --git a/build/projects/index.html b/build/projects/index.html
index 604d67b..d477d27 100644
--- a/build/projects/index.html
+++ b/build/projects/index.html
@@ -1,42 +1,45 @@
-
-
-
-
-
- Projects
-
-
-
-
-
-
-Projects
-Active Projects
+
+
+
+
+
+
+ Projects
+
+
+
+
+
+ Menu ↓
+
+
+
+Projects
arena : Quake-like multiplayer FPS
dotfiles : Configs for my different Linux machines
adast.dk : Personal platform
-
-
-
diff --git a/build/resume-da/index.html b/build/resume-da/index.html
deleted file mode 100644
index 69ecd04..0000000
--- a/build/resume-da/index.html
+++ /dev/null
@@ -1,181 +0,0 @@
-
-
-
-
-
- Adam Stück
-
-
-
-
-
-
-
-
-Adam Stück
-Junior Software Ingeniør & Fritids Sysadmin Aalborg, Danmark adam@adast.dk
-
-Erfaring
-Junior Software Ingeniør hos Sky Labs Aalborg
-2023-nu / Aalborg, Danmark
-Linux, Sysadmin, Self-hosting (fritid)
-2021-nu
-
-Jeg blev hooked på Linux i begyndelsen af 2021
-Prøvede selv at hoste nogle tjenester på Raspberry Pi, senere VPS
-Begyndte at bygge min personlige platform 😎
-Linux, SSH, Unix Shell, Git, POSIX scripting
-Docker, DNS, Certbot, Web Servers, Firewalls, VPNs
-Utallige command line utilities
-
-Studenterprogrammør hos E-Komplet
-2020-2023 / Aalborg, Danmark On-site & remote
-
-Full stack konsulent for E-Komplet klient
-ASP.NET, C#, MSSQL, Azure DevOps, Git, JavaScript, JQuery, HTML
-
-Softwareudvikler hos OK Snacks A/S
-august 2019 / Ikast-Brande, Danmark
-
-Udvikling af et Excel-system til at holde styr på reservedele på lager til produktionsmaskiner
-Microsoft Excel, VBA
-
-Junior Business Analyst hos Arise
-juni 2017 - juli 2017 / Limerick, Irland
-
-Organisering af data i Excel
-Automatisering af Excel-opgaver med VBA
-Udvikling af web apps for at lette nogle callcenter-opgaver
-Microsoft Excel, VBA, PHP, JavaScript, CSS, HTML
-
-Skolepraktik hos Arise
-2015 / Limerick, Irland
-
-To ugers skolepraktik i administrationsafdelingen
-Excel-programmering som bl.a generering af arbejdstidsplaner
-Jeg lærte, hvordan et call center fungerer
-Generelle kontor opgaver
-Microsoft Excel, VBA
-
-Coding, Web Dev, Game Dev (fritid)
-2014-nu
-
-Begyndte at lære programmering med JavaScript
-Kom ind i webudvikling, byggede mange personlige hjemmesider for sjov
-Begyndte at lære spiludvikling med GameMaker og senere Unity
-Forbedret JavaScript og lært C# ved at bruge Unity
-Begyndte at udvikle arena , mit multiplayer Quake-lignende FPS spil
-JavaScript, HTML, CSS, C#, Unity, Blender, Audacity, Git
-
-Uddannelse
-Aalborg Universitet
-2019-2023 / Aalborg, Danmark
-
-Publikationer
-[1] Potency-Based Heuristic Search with Randomness for Explicit Model Checking
-by E.G.Henriksen, A.M. Khorsid, E. Nielsen, Th. Risager, J. Srba, A.M. Stück , S. Sørensen
-In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN’23), volume 13872 of LNCS, pages 180–187, Springer-Verlag, 2023.
-PDF
-©Springer-Verlag
- EE
- BibTex
- Abstract
-
-Konkurrencer
-
-2022: Senior Qualifier i De Danske Cybermesterskaber
-2020: Deltog i Create Jam
-
-Sprog
-
-
-Engelsk
-Flydende skriftligt og mundtligt
-Dansk
-Flydende skriftligt og mundtligt
-Tysk
-Begrænset arbejdskompetence
-Irsk (Gælisk)
-Begrænset arbejdskompetence
-
-Kompetencer
-Værktøjer og applikationer, jeg har eksperterfaring med:
-
-Linux
-Git, Unix Shell
-C#, HTML, CSS, JavaScript
-Unity
-
-Jeg er dygtig til:
-
-C, Rust, python, POSIX Shell (scripting), Java
-Docker, SSH
-
-Jeg har lidt erfaring med:
-
-SQL, PHP, VBA, Haskell, Lua, JQuery, Blazor
-Blender
-
-Interesser
-
-Open source software
-Linux-systemer
-Performance og utilization
-Softwaresikkerhed og privatliv
-Minimalt brugergrænsefladedesign
-Webtilgængelighed
-
-Andet: spiludvikling, vandring/camping, boksning, guitar.
-Referencer
-Udleveres ved henvendelse.
-
-
-
-
diff --git a/build/resume/index.html b/build/resume/index.html
index d0751f4..97dd150 100644
--- a/build/resume/index.html
+++ b/build/resume/index.html
@@ -1,98 +1,129 @@
-
-
-
-
-
- Adam Stück
-
-
-
-
-
-
-
-[ English / Dansk ]
-Adam Stück
-Junior Software Engineer & Hobbyist Sysadmin Aalborg, Denmark adam@adast.dk
-
-Experience
-Junior Software Engineer at Sky Labs Aalborg
-2023-Now / Aalborg, Denmark
-Linux, Sysadmin, Self-hosting (spare time)
-2021-Now
-
-Got hooked on Linux early 2021
-Self-hosting some services on Raspberry Pi, later VPS
-Started building my personal platform 😎
-Linux, SSH, Unix Shell, Git, POSIX scripting
-Docker, DNS, Certbot, Web Servers, Firewalls, VPNs
-Countless command line utilities
-
-Student Programmer at E-Komplet
-2020-2023 / Aalborg, Denmark On-site & remote
-
-Full stack consultant for E-Komplet client
-ASP.NET, C#, MSSQL, Azure DevOps, Git, JavaScript, JQuery, HTML
-
-Software Developer at OK Snacks A/S
-August 2019 / Ikast-Brande, Denmark
-
-Development of an Excel system to track spare parts in stock for production machines
-Microsoft Excel, VBA
-
-Junior Business Analyst at Arise
-June 2017 - July 2017 / Limerick, Ireland
-
-Organization of data in Excel
-Automation of Excel tasks using VBA
-Development of web apps to facilitate some call center tasks
-Microsoft Excel, VBA, PHP, JavaScript, CSS, HTML
-
-Work Placement at Arise
-2015 / Limerick, Ireland
-
-2-week school internship in the administration department
-Some Excel automation, including generation of working schedules
-Learned how a call center operates
-General office duties
-Microsoft Excel, VBA
-
-Coding, Web Dev, Game Dev (spare time)
-2014-Now
-
-Started learning programming with JavaScript
-Got into web development, built many personal websites for fun
-Started learning game development with GameMaker, and later Unity
-Improved at JavaScript and learned C# by using Unity
-Started developing arena , my multiplayer Quake-like FPS game
-JavaScript, HTML, CSS, C#, Unity, Blender, Audacity, Git
-
-Education
-Aalborg University
-2019-2023 / Aalborg, Denmark
-
-Bachelors Degree in Computer Science
-
-Publications
-[1] Potency-Based Heuristic Search with Randomness for Explicit Model Checking
+
+
+
+
+
+
+ Adam Stück
+
+
+
+
+
+ Menu ↓
+
+
+
+Adam Stück
+Linux System Administrator & Software Engineer
+adam@adast.dk
+:flag-dk: :flag-ie:
+Passionate about open source software, usability, performance, privacy, and
+minimal design.
+Skills & Languages
+Core tools are C#, HTML, CSS, JavaScript & the command line. Currently improving my skills
+as a sysadmin and learning the Godot game engine. I also enjoy tinkering with
+basic shell scripts and Unix systems.
+
+Experience
+
+Title Company Duration
+Junior Software Engineer Sky Labs Aalborg 2023-Now
+Student Programmer E-Komplet A/S 2020-2023
+Software Developer OK Snacks A/S 2019
+Junior Business Analyst ADEC Arise 2017
+Work Placement ADEC Arise 2015
+
+
+Education
+
+Institution Program Completion
+Aalborg University Computer Science 2023
+
+
+Publications
+1: Potency-Based Heuristic Search with Randomness for Explicit Model Checking
by E.G.Henriksen, A.M. Khorsid, E. Nielsen, Th. Risager, J. Srba, A.M. Stück , S. Sørensen
-In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN’23), volume 13872 of LNCS, pages 180–187, Springer-Verlag, 2023.
+In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN'23), volume 13872 of LNCS, pages 180--187, Springer-Verlag, 2023.
PDF
-©Springer-Verlag
- EE
- BibTex
- Abstract
-
+Competitions
2022: Senior Qualifier in the Danish Cyber Championships
-2020: Participated in Create Jam
-Languages
+
+Interests
Open source software
-Linux systems
+Web accessibility
Performance and utilization
Software security and privacy
Minimal user interface design
-Web accessibility
+Linux systems
-Other: game dev, hiking/camping, boxing, guitar.
-References
+Other: sailing, hiking/camping, permaculture, solarpunk, game dev, guitar.
+References
Available upon request.
-
-
-
diff --git a/build/rss.xml b/build/rss.xml
deleted file mode 100644
index 928b896..0000000
--- a/build/rss.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- Adam Stück's blog
- https://adast.dk/rss.xml
- Recent content in Adam Stück's blog
- en-us
-
-
-
-
--
-
Status update, February 2023
-https://adast.dk/2023-02-log
- https://adast.dk/2023-02-log
-Sat, 04 Mar 2023 19:56:12 +0100
-Hi, welcome to my website.
-
-This is probably your first time seeing it, but it just went through a
-major makeover. I’ve archived the old
-design if
-you want to check it out.
-
-The new design is blazingly fast , light as a feather, and anyone can navigate it.
-
-You’ll find my contact details and important links on the homepage.
-There are links to more information about myself and this website, projects I’m
-working on, and my RSS feed at the top.
-I’ve included my PGP key if you wish to send me mail privately.
-
-This redesign was heavily inspired by bt.ht and
-drewdevault.com .
-
-
-
-The CompSci department at my uni hosts an annual LAN party with tournaments
-in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get arena to a playable,
-fun state, and have a LAN tournament to really put it to the test.
-
-I want to start working on my game again, and I want to it to be playable in
-time for the LAN party.
-
-I have about 5 weeks to make it happen.
-
-What to expect
-
-I have a few technical blog posts planned, but I’ll also just be posting
-about anything I that interests me.
-
-I think I’ll start doing monthly status updates (like this post), much like
-the engineers at
-sourcehut.org .
-I’d also like to start posting (weekly) development logs for arena.
-
-Finally, I have a lot more services I need to start hosting before I really
-call this my platform . You can see the list of publicly available
-services by clicking the link at the top of the page. For now, I’m
-prioritising hosting the services that I use regularly.
-
-That’s all for now!
-
-Book club
-
-inspired by 100rabbits
-
-I’m reading A Voyage for Madmen by Peter Nichols.
]]>
-
-
-
-
diff --git a/build/rss.xml b/build/rss.xml
new file mode 120000
index 0000000..f96e762
--- /dev/null
+++ b/build/rss.xml
@@ -0,0 +1 @@
+atom.xml
\ No newline at end of file
diff --git a/build/services/index.html b/build/services/index.html
index cc7b5a1..e8a63a2 100644
--- a/build/services/index.html
+++ b/build/services/index.html
@@ -1,77 +1,46 @@
-
-
-
-
-
- Services
-
-
-
-
-
-
-Services
-All services are using their default configs and logging.
-Everything is currently hosted on my Hetzner VPS without any CDN.
-Public
-
-Private
-
-Other: Wireguard (pivpn), Mail (emailwiz)
-
+
+
+
+
+
+
+ Services
+
+
+
+
+
+ Menu ↓
+
- ↑ Back to Top
+
+Services
+
+
-
-
-
diff --git a/build/sitemap.xml b/build/sitemap.xml
deleted file mode 100644
index 64195ff..0000000
--- a/build/sitemap.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-https://adast.dk/resume/ 2023-11-09 1.0
-https://adast.dk/resume-da/ 2023-11-09 1.0
-https://adast.dk/uses/ 2023-11-09 1.0
-https://adast.dk/donate/ 2023-11-09 1.0
-https://adast.dk/2023-02-log/ 2023-11-09 1.0
-https://adast.dk/projects/ 2023-11-09 1.0
-https://adast.dk/services/ 2023-11-09 1.0
-https://adast.dk/index.html 2023-11-09 1.0
-
diff --git a/build/uses/index.html b/build/uses/index.html
index 75bbaf2..0188077 100644
--- a/build/uses/index.html
+++ b/build/uses/index.html
@@ -1,147 +1,102 @@
-
-
-
-
-
- Things I use
-
-
-
-
-
-
-Things I use
+
+
+
+
+
+
+ Things I use
+
+
+
+
+
+ Menu ↓
+
+
+
+Things I use
This page contains a somewhat up-to-date listing of hardware and software that I currently use.
-Seeing similar pages on other people’s personal websites have proved quite valuable to me, so I figured I would do the same!
-Services
-I’m proud to support open source products and privacy-respecting communities. The list is limited right now, but the plan is to expand this over time.
-
-
-
-Service
-Cost/month
-
-
-
-
-sourcehut Open source code hosting with minimalist design and function.
-$2.00
-
-
-
-Machines
+Seeing similar pages on other people's personal websites have proved quite valuable to me, so I figured I would do the same!
+Services
+I'm proud to support open source products and privacy-respecting communities. The list is limited right now, but the plan is to expand this over time.
-
-
-Name
-Description
-
-
-
-
-ooz
-Desktop
-
-
-nova
-Laptop
-
-
-poco
-Phone
-
-
-adast.dk
-Hetzner VPS
-
-
+Service Cost/year
+sourcehut Open source code forge.$24
+trom Trade-free services.$60
+Machines
-nova
+Acer Swift 1 SF114-32
+
-Acer Swift 1 SF114-32
CPU: Intel Pentium Silver N5000
RAM: 8 GB
Storage: 250 GB SSD
OS: Arch Linux
-
-ooz
+
+
+Desktop
+
CPU: Ryzen 7 3700X
GPU: RTX 2080S
-RAM: 16 GB 3200 Mhz CL-16
+RAM: 16 GB 3200 Mhz
OS: Arch Linux
-
-poco
+
+
+Pocofone F1
+
-Pocofone F1
OS: LineageOS
-
-adast.dk
-
-CPX 21
-Location: Nuremberg, Germany
-Price/month: EUR 9.44
-vCPU: 3 AMD EPYC
-RAM: 4 GB
-Storage: 80 GB
-OS: Debian
-
-Accessories
+
+
+Accessories
-
-
-Name
-Description
-
-
-
-
-crkbd
-Split, columnar-staggered, ortholinear keyboard
-
-
-BLON BL-03
-Cheap and cheerful IEMs
-
-
-Drop HD58X
-Open-backed headphones
-
-
-Dell U2520D
-25”, 1440p, good colours, productivity
-
-
+Name Description
+crkbd Split, columnar-staggered, ortholinear keyboard
+BLON BL-03 Cheap and cheerful IEMs
+Drop HD58X Open-backed headphones
+Dell U2520D 25", 1440p, Good colours, Ports galore!
-Software
+Software
-qutebrowser, aerc
-Firefox, Thunderbird
-vim, keyd, pass, mpv, newsboat
+aerc
+Firefox
+keyd
+mpv
+newsboat
+pass
+qutebrowser
+sway/i3wm
+Thunderbird
+vim
+
+For configs and more, have a look at my dotfiles .
+Misc
+
+Colemak-DH keyboard layout.
-For more, have a look at my dotfiles .
-
-
-
diff --git a/footer.html b/footer.html
new file mode 100644
index 0000000..786caca
--- /dev/null
+++ b/footer.html
@@ -0,0 +1,23 @@
+
diff --git a/header.html b/header.html
new file mode 100644
index 0000000..fd4c1d4
--- /dev/null
+++ b/header.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ {{TITLE}}
+
+
+
+
+
+ Menu ↓
+
+
+
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..ba7c4c7
--- /dev/null
+++ b/index.md
@@ -0,0 +1,12 @@
+# Adam Stück's blog
+
+I'm passionate about open source software, usability, performance, privacy, and
+minimal design. This small piece of the internet stores a growing collection of
+my personal [brain dumps](https://bt.ht/dump).
+
+|Service|Description|Link|
+|---|---|
+|sourcehut|Code|[~adamski](#)|
+|peertube|Videos, streams|[tv.adast.dk](https://tv.adast.dk/a/adam)|
+
+## Articles
diff --git a/pages/colophon.md b/pages/colophon.md
new file mode 100644
index 0000000..3481604
--- /dev/null
+++ b/pages/colophon.md
@@ -0,0 +1,22 @@
+# Colophon
+
+This website is a collection of living, breathing documents. As I mention on
+the homepage, this place is better referred to as an online [brain
+dump](https://bt.ht/dump). It might change over time. Styles might come and go.
+I can't help that, since tinkering with my personal blog is something I am very
+fond of. It's almost therapeutic.
+
+For those interested I try to keep the details of the blog up-to-date with the
+information below:
+
+## Website Fast Facts
+
+| Parameter | Source |
+|---|---|
+|Built with:|[barf](https://barf.bt.ht)|
+|Hosted on:|[SourceHut Pages](https://srht.site/)|
+|Source code available:|[SourceHut](https://git.sr.ht/~adamski/adast.dk)|
+|Licensed under:|[MIT](https://git.sr.ht/~adamski/adast.dk/tree/main/item/LICENSE)|
+|Developed on:|One of my [machines](/uses)|
+|Operating system:|Arch Linux|
+
diff --git a/pages/contact.md b/pages/contact.md
new file mode 100644
index 0000000..6bdc318
--- /dev/null
+++ b/pages/contact.md
@@ -0,0 +1,9 @@
+# Contact
+
+* [email](mailto:adam@adast.dk) [[PGP](https://meta.sr.ht/~adamski.pgp)]
+* [XMPP](xmpp:adam@chat.adast.xyz)
+
+Have a comment on one of my posts? Start a discussion in [my public
+inbox](https://lists.sr.ht/~adamski/public-inbox) by sending an email to
+[~adamski/public-inbox@lists.sr.ht](mailto:~adamski/public-inbox@lists.sr.ht)
+[[mailing list etiquette](https://man.sr.ht/lists.sr.ht/etiquette.md)]
diff --git a/pages/donate.md b/pages/donate.md
new file mode 100644
index 0000000..b7e759a
--- /dev/null
+++ b/pages/donate.md
@@ -0,0 +1,24 @@
+# Donate
+
+If you feel the burning desire to help support this small blog of mine, please
+take a look at the options below. You can still enjoy everything on this blog
+for free, so please don't feel obligated to donate.
+
+## How are donations used?
+
+That's a good question. Almost all money donated goes towards hosting, domain
+renewal costs and [open source services I use myself](/uses). Anything "extra"
+ends up getting me a coffee (or beer) to enjoy while I publish more free (and
+hopefully useful) content.
+
+### Standard Donations
+
+I currently don't have any options for standard donation.
+
+### Hetzner Referral
+
+For the web/software folk looking for a deal on server hosting: consider
+using my Hetzner [referral link](https://hetzner.cloud/?ref=bXrpw5w6RQon),
+and get 20 EUR of cloud credits for free. That's roughly 2-4 months
+of hosting depending on the specs you choose. If you like the service
+and end up spending 20 EUR later on, I receive 20 EUR in credits too.
diff --git a/pages/now.md b/pages/now.md
new file mode 100644
index 0000000..6ff0f44
--- /dev/null
+++ b/pages/now.md
@@ -0,0 +1,16 @@
+# Now
+
+This page is based off the [now page concept](https://nownownow.com/about) by Derek Sivers.
+
+**Updated December 15, 2023**
+
+## Work
+
+- Working as a Linux system administrator & software engineer hybrid
+
+## Life
+
+- Trying to contribute more to open source projects that I actively use
+- Slowly teaching myself the Godot game engine
+- Playing Valheim with friends
+
diff --git a/pages/projects.md b/pages/projects.md
new file mode 100644
index 0000000..677cc5f
--- /dev/null
+++ b/pages/projects.md
@@ -0,0 +1,5 @@
+# Projects
+
+* [arena](https://arena.adast.dk): Quake-like multiplayer FPS
+* [dotfiles](https://sr.ht/~adamski/dotfiles): Configs for my different Linux machines
+* [adast.dk](https://sr.ht/~adamski/adast.dk): Personal platform
diff --git a/pages/resume.md b/pages/resume.md
new file mode 100644
index 0000000..817a9a1
--- /dev/null
+++ b/pages/resume.md
@@ -0,0 +1,181 @@
+# Adam Stück
+
+**Linux System Administrator & Software Engineer**
+adam@adast.dk
+:flag-dk: :flag-ie:
+
+Passionate about open source software, usability, performance, privacy, and
+minimal design.
+
+## Skills & Languages
+
+Core tools are C#, HTML, CSS, JavaScript & the command line. Currently improving my skills
+as a sysadmin and learning the Godot game engine. I also enjoy tinkering with
+basic shell scripts and Unix systems.
+
+
+
+## Experience
+
+|Title|Company|Duration|
+|-----|-------|--------|
+|Junior Software Engineer|Sky Labs Aalborg|2023-Now|
+|Student Programmer|E-Komplet A/S|2020-2023|
+|Software Developer|OK Snacks A/S|2019|
+|Junior Business Analyst|ADEC Arise|2017|
+|Work Placement|ADEC Arise|2015|
+
+
+
+## Education
+
+|Institution|Program|Completion|
+|-----------|-------|------|
+|Aalborg University|Computer Science|2023|
+
+
+
+## Publications
+
+1: **Potency-Based Heuristic Search with Randomness for Explicit Model Checking**
+by E.G.Henriksen, A.M. Khorsid, E. Nielsen, Th. Risager, J. Srba, **A.M. Stück**, S. Sørensen
+In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN'23), volume 13872 of LNCS, pages 180--187, Springer-Verlag, 2023.
+[PDF](http://www.cs.aau.dk/~srba/files/HKNRSSS:SPIN:23.pdf)
+[©Springer-Verlag](https://www.springer.com/gp/computer-science/lncs)
+[EE](https://link.springer.com/chapter/10.1007/978-3-031-32157-3_10)
+[BibTex](https://homes.cs.aau.dk/~srba/srba.html#HKNRSSS:SPIN:23)
+
+
+
+## Competitions
+
+* 2022: Senior Qualifier in the Danish Cyber Championships
+
+
+
+## Interests
+
+- Open source software
+- Web accessibility
+- Performance and utilization
+- Software security and privacy
+- Minimal user interface design
+- Linux systems
+
+Other: sailing, hiking/camping, permaculture, solarpunk, game dev, guitar.
+
+## References
+
+Available upon request.
diff --git a/pages/services.md b/pages/services.md
new file mode 100644
index 0000000..2ad8507
--- /dev/null
+++ b/pages/services.md
@@ -0,0 +1,6 @@
+# Services
+
+* [SearXNG](https://search.adast.dk)
+* [PeerTube](https://tv.adast.dk)
+* [Nextcloud](https://cloud.adast.dk)
+* [Snikket](https://chat.adast.xyz)
diff --git a/pages/uses.md b/pages/uses.md
new file mode 100644
index 0000000..7d68a59
--- /dev/null
+++ b/pages/uses.md
@@ -0,0 +1,58 @@
+# Things I use
+
+This page contains a somewhat up-to-date listing of hardware and software that I currently use.
+Seeing similar pages on other people's personal websites have proved quite valuable to me, so I figured I would do the same!
+
+## Services
+
+I'm proud to support open source products and privacy-respecting communities. The list is limited right now, but the plan is to expand this over time.
+
+|Service|Cost/year|
+|---|---|
+|[sourcehut](https://sourcehut.org) Open source code forge.|$24|
+|[trom](https://trom.tf) Trade-free services.|$60|
+
+## Machines
+
+- **Acer Swift 1** SF114-32
+ - CPU: Intel Pentium Silver N5000
+ - RAM: 8 GB
+ - Storage: 250 GB SSD
+ - OS: Arch Linux
+
+- **Desktop**
+ - CPU: Ryzen 7 3700X
+ - GPU: RTX 2080S
+ - RAM: 16 GB 3200 Mhz
+ - OS: Arch Linux
+
+- **Pocofone F1**
+ - OS: LineageOS
+
+## Accessories
+
+|Name|Description|
+|---|---|
+|[crkbd](https://github.com/foostan/crkbd)|Split, columnar-staggered, ortholinear keyboard|
+|BLON BL-03|Cheap and cheerful IEMs|
+|Drop HD58X|Open-backed headphones|
+|Dell U2520D|25", 1440p, Good colours, Ports galore!|
+
+## Software
+
+- aerc
+- Firefox
+- keyd
+- mpv
+- newsboat
+- pass
+- qutebrowser
+- sway/i3wm
+- Thunderbird
+- vim
+
+For configs and more, have a look at my [dotfiles](https://git.sr.ht/~adamski/dotfiles/tree/laptop/item/.config).
+
+## Misc
+
+* Colemak-DH keyboard layout.
diff --git a/posts/2023-02.md b/posts/2023-02.md
new file mode 100644
index 0000000..00f0c2b
--- /dev/null
+++ b/posts/2023-02.md
@@ -0,0 +1,47 @@
+# Status update, February 2023
+
+2023-03-04
+
+Hi, welcome to my website.
+This is probably your first time seeing it, but it just went through a
+major makeover. I've archived [the old
+design](https://web.archive.org/web/20221223055937/https://adast.xyz/) if
+you want to check it out.
+The new design is *blazingly fast*, light as a feather, and anyone can navigate
+it.
+This redesign was **heavily** inspired by [bt.ht](https://bt.ht) and
+[drewdevault.com](https://drewdevault.com).
+
+You'll find my contact details and important links on the homepage.
+There are links to more information about myself and this website, projects I'm
+working on, and my RSS feed at the top.
+I've included my PGP key if you wish to send me mail privately.
+
+## Game dev is back on the menu!
+
+The CompSci department at my uni hosts an annual LAN party with tournaments
+in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get [arena](https://arena.adast.dk) to a playable,
+fun state, and have a LAN tournament to really put it to the test.
+I want to start working on my game again, and I want to it to be playable in
+time for the LAN party.
+I have about 5 weeks to make it happen.
+
+## What to expect
+
+I have a few technical blog posts planned, but I'll also just be posting
+about anything I that interests me.
+I think I'll start doing monthly status updates (like this post), much like
+the [engineers at
+sourcehut.org](https://sourcehut.org/consultancy/#our-engineers).
+I'd also like to start posting (weekly) development logs for arena.
+
+Finally, I have a lot more services I need to start hosting before I really
+call this *my platform*. You can see the list of publicly available
+services by clicking the link at the top of the page. For now, I'm
+prioritising hosting the services that I use regularly.
+
+That's all for now!
+
+## Book club
+
+I'm reading **A Voyage for Madmen** by Peter Nichols.
diff --git a/src/2023-02-log/index.md b/src/2023-02-log/index.md
deleted file mode 100644
index aeebbfd..0000000
--- a/src/2023-02-log/index.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Status update, February 2023
-
-2023-03-04
-
-## Hello world!
-
-Hi, welcome to my website.
-
-This is probably your first time seeing it, but it just went through a
-major makeover. I've archived [the old
-design](https://web.archive.org/web/20221223055937/https://adast.xyz/) if
-you want to check it out.
-
-The new design is *blazingly fast*, light as a feather, and anyone can navigate
-it.
-
-You'll find my contact details and important links on the homepage.
-There are links to more information about myself and this website, projects I'm
-working on, and my RSS feed at the top.
-I've included my PGP key if you wish to send me mail privately.
-
-This redesign was **heavily** inspired by [bt.ht](https://bt.ht) and
-[drewdevault.com](https://drewdevault.com).
-
-## Game dev is back on the menu!
-
-The CompSci department at my uni hosts an annual LAN party with tournaments
-in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get [arena](https://arena.adast.dk) to a playable,
-fun state, and have a LAN tournament to really put it to the test.
-
-I want to start working on my game again, and I want to it to be playable in
-time for the LAN party.
-
-I have about 5 weeks to make it happen.
-
-## What to expect
-
-I have a few technical blog posts planned, but I'll also just be posting
-about anything I that interests me.
-
-I think I'll start doing monthly status updates (like this post), much like
-the [engineers at
-sourcehut.org](https://sourcehut.org/consultancy/#our-engineers).
-I'd also like to start posting (weekly) development logs for arena.
-
-Finally, I have a lot more services I need to start hosting before I really
-call this *my platform*. You can see the list of publicly available
-services by clicking the link at the top of the page. For now, I'm
-prioritising hosting the services that I use regularly.
-
-That's all for now!
-
-## Book club
-
-*inspired by [100rabbits](https://100r.co)*
-
-I'm reading **A Voyage for Madmen** by Peter Nichols.
diff --git a/src/_footer.html b/src/_footer.html
deleted file mode 100644
index 27416cf..0000000
--- a/src/_footer.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
diff --git a/src/_header.html b/src/_header.html
deleted file mode 100644
index 6057dc8..0000000
--- a/src/_header.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/donate/index.md b/src/donate/index.md
deleted file mode 100644
index 66f1132..0000000
--- a/src/donate/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Donate
-
-Help keep the server running.
-
-## Hetzner Referral
-
-Use [my referral link](https://hetzner.cloud/?ref=bXrpw5w6RQon), and get 20 EUR
-of Hetzner Cloud credits for free.
diff --git a/src/index.md b/src/index.md
deleted file mode 100644
index b9c2259..0000000
--- a/src/index.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Adam Stück's blog
-
-
-
-Passionate about open source software, usability, performance, privacy, and
-minimal design.
-
-Interested in sustainability, game dev, technology, and living life.
-
-Junior Software Engineer @ Sky Labs Aalborg.
-
-## Links
-
-
-
-sourcehut
-~adamski
-email
-adam@adast.dk
-pgp
-B5442B88D8E05672
-
-
-
-
-
-
-2023-03-04 Status update, February 2023
diff --git a/src/js/showhide.js b/src/js/showhide.js
deleted file mode 100644
index afc9c06..0000000
--- a/src/js/showhide.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-http://www.tutorialhelpdesk.com/tutorials/web-development/javascript/how-to-show-hide-a-dhtml-div-using-onclick()-event.html
-*/
-
-function ShowHide(elementId)
-{
- var element = document.getElementById(elementId);
- if(element.style.display != "block")
- {
- element.style.display = "block";
- }
- else
- {
- element.style.display = "none";
- }
-}
-function UpdateText(element)
-{
- if(element.innerHTML.indexOf("Hide") == -1)
- {
- element.innerHTML = "Hide Abstract";
- }
- else
- {
- element.innerHTML = "Abstract";
- }
-}
diff --git a/src/main.css b/src/main.css
deleted file mode 100644
index 3291e54..0000000
--- a/src/main.css
+++ /dev/null
@@ -1,86 +0,0 @@
-* {
- box-sizing: border-box;
-}
-body {
- font-family: sans-serif;
- line-height: 1.45;
- margin: 0 auto;
- max-width: 45rem;
- padding: 0 15px;
-}
-hr {
- background-color: grey;
- border: 0;
- height: 1px;
- margin: 2rem 0;
-}
-nav {
- margin: 2rem 0 0;
-}
-main p {
- margin: 1rem;
-}
-h1,h2,h3,h4 {
- margin: 2rem 0 0;
-}
-h1 {
- margin-bottom: 0.5rem;
-}
-h1 + p {
- margin: 0 0 1rem;
-}
-img {
- border: 1px solid lightgrey;
- height: auto;
- max-width: 100%;
- width: auto;
-}
-blockquote {
- background-color: linen;
- border-left: 4px solid lightcoral;
- margin: 2rem 0;
- padding: 10px;
-}
-blockquote p {
- margin: 0;
-}
-figure {
- margin: 2rem 0;
-}
-figcaption {
- color: slategrey;
-}
-code {
- background: #eee;
- padding: 0.3rem;
- tab-size: 4;
-}
-pre {
- background: #eee;
-}
-pre code {
- background: none;
- display: block;
- overflow-x: auto;
- padding: 0.3rem 0.6rem;
-}
-table {
- border-collapse: collapse;
- margin: 2rem 0;
- text-align: left;
- width: 100%;
-}
-tr {
- border-bottom: 1px solid lightgrey;
-}
-tr:nth-of-type(odd) td {
- background-color: #f8f8f8;
-}
-th,td {
- padding: 6px;
-}
-footer {
- border-top: 1px dashed grey;
- margin: 2rem 0;
- padding: 1rem 15px;
-}
diff --git a/src/projects/index.md b/src/projects/index.md
deleted file mode 100644
index e9e77da..0000000
--- a/src/projects/index.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Projects
-
-## Active Projects
-
-* [arena](https://arena.adast.dk): Quake-like multiplayer FPS
-* [dotfiles](https://sr.ht/~adamski/dotfiles): Configs for my different Linux machines
-* [adast.dk](https://sr.ht/~adamski/adast.dk): Personal platform
diff --git a/src/resume-da/index.md b/src/resume-da/index.md
deleted file mode 100644
index b94797a..0000000
--- a/src/resume-da/index.md
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-#### [ [English](/resume) / Dansk ]
-
-# Adam Stück
-
-**Junior Software Ingeniør & Fritids Sysadmin** Aalborg, Danmark adam@adast.dk
-
-
-
-## Erfaring
-
-### Junior Software Ingeniør hos Sky Labs Aalborg
-
-**2023-nu** / Aalborg, Danmark
-
-### Linux, Sysadmin, Self-hosting (fritid)
-
-**2021-nu**
-
-* Jeg blev hooked på Linux i begyndelsen af 2021
-* Prøvede selv at hoste nogle [tjenester](/services) på Raspberry Pi, senere VPS
-* Begyndte at bygge min personlige platform 😎
-* Linux, SSH, Unix Shell, Git, POSIX scripting
-* Docker, DNS, Certbot, Web Servers, Firewalls, VPNs
-* Utallige command line utilities
-
-### Studenterprogrammør hos E-Komplet
-
-**2020-2023** / Aalborg, Danmark On-site & remote
-
-* Full stack konsulent for E-Komplet klient
-* ASP.NET, C#, MSSQL, Azure DevOps, Git, JavaScript, JQuery, HTML
-
-### Softwareudvikler hos OK Snacks A/S
-
-**august 2019** / Ikast-Brande, Danmark
-
-* Udvikling af et Excel-system til at holde styr på reservedele på lager til produktionsmaskiner
-* Microsoft Excel, VBA
-
-### Junior Business Analyst hos Arise
-
-**juni 2017 - juli 2017** / Limerick, Irland
-
-* Organisering af data i Excel
-* Automatisering af Excel-opgaver med VBA
-* Udvikling af web apps for at lette nogle callcenter-opgaver
-* Microsoft Excel, VBA, PHP, JavaScript, CSS, HTML
-
-### Skolepraktik hos Arise
-
-**2015** / Limerick, Irland
-
-* To ugers skolepraktik i administrationsafdelingen
-* Excel-programmering som bl.a generering af arbejdstidsplaner
-* Jeg lærte, hvordan et call center fungerer
-* Generelle kontor opgaver
-* Microsoft Excel, VBA
-
-### Coding, Web Dev, Game Dev (fritid)
-
-**2014-nu**
-
-* Begyndte at lære programmering med JavaScript
-* Kom ind i webudvikling, byggede mange personlige hjemmesider for sjov
-* Begyndte at lære spiludvikling med GameMaker og senere Unity
-* Forbedret JavaScript og lært C# ved at bruge Unity
-* Begyndte at udvikle [arena](https://arena.adast.dk), mit multiplayer Quake-lignende FPS spil
-* JavaScript, HTML, CSS, C#, Unity, Blender, Audacity, Git
-
-## Uddannelse
-
-### Aalborg Universitet
-
-**2019-2023** / Aalborg, Danmark
-
-* Bachelor i Datalogi
-
-## Publikationer
-
-[1] **Potency-Based Heuristic Search with Randomness for Explicit Model Checking**
-by E.G.Henriksen, A.M. Khorsid, E. Nielsen, Th. Risager, J. Srba, **A.M. Stück**, S. Sørensen
-In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN'23), volume 13872 of LNCS, pages 180--187, Springer-Verlag, 2023.
-[PDF](http://www.cs.aau.dk/~srba/files/HKNRSSS:SPIN:23.pdf)
-[©Springer-Verlag](https://www.springer.com/gp/computer-science/lncs)
- [EE](https://link.springer.com/chapter/10.1007/978-3-031-32157-3_10)
- [BibTex](https://homes.cs.aau.dk/~srba/srba.html#HKNRSSS:SPIN:23)
- Abstract
-
-
-
-## Konkurrencer
-
-* 2022: Senior Qualifier i De Danske Cybermesterskaber
-* 2020: Deltog i Create Jam
-
-## Sprog
-
-
-
-Engelsk
-Flydende skriftligt og mundtligt
-Dansk
-Flydende skriftligt og mundtligt
-Tysk
-Begrænset arbejdskompetence
-Irsk (Gælisk)
-Begrænset arbejdskompetence
-
-
-
-## Kompetencer
-
-Værktøjer og applikationer, jeg har eksperterfaring med:
-
-- Linux
-- Git, Unix Shell
-- C#, HTML, CSS, JavaScript
-- Unity
-
-Jeg er dygtig til:
-
-- C, Rust, python, POSIX Shell (scripting), Java
-- Docker, SSH
-
-Jeg har lidt erfaring med:
-
-- SQL, PHP, VBA, Haskell, Lua, JQuery, Blazor
-- Blender
-
-## Interesser
-
-- Open source software
-- Linux-systemer
-- Performance og utilization
-- Softwaresikkerhed og privatliv
-- Minimalt brugergrænsefladedesign
-- Webtilgængelighed
-
-Andet: spiludvikling, vandring/camping, boksning, guitar.
-
-## Referencer
-
-Udleveres ved henvendelse.
diff --git a/src/resume/index.md b/src/resume/index.md
deleted file mode 100644
index ac2831b..0000000
--- a/src/resume/index.md
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-#### [ English / [Dansk](/resume-da) ]
-
-# Adam Stück
-
-**Junior Software Engineer & Hobbyist Sysadmin** Aalborg, Denmark adam@adast.dk
-
-
-
-## Experience
-
-### Junior Software Engineer at Sky Labs Aalborg
-
-**2023-Now** / Aalborg, Denmark
-
-### Linux, Sysadmin, Self-hosting (spare time)
-
-**2021-Now**
-
-* Got hooked on Linux early 2021
-* Self-hosting some [services](/services) on Raspberry Pi, later VPS
-* Started building my personal platform 😎
-* Linux, SSH, Unix Shell, Git, POSIX scripting
-* Docker, DNS, Certbot, Web Servers, Firewalls, VPNs
-* Countless command line utilities
-
-### Student Programmer at E-Komplet
-
-**2020-2023** / Aalborg, Denmark On-site & remote
-
-* Full stack consultant for E-Komplet client
-* ASP.NET, C#, MSSQL, Azure DevOps, Git, JavaScript, JQuery, HTML
-
-### Software Developer at OK Snacks A/S
-
-**August 2019** / Ikast-Brande, Denmark
-
-* Development of an Excel system to track spare parts in stock for production machines
-* Microsoft Excel, VBA
-
-### Junior Business Analyst at Arise
-
-**June 2017 - July 2017** / Limerick, Ireland
-
-* Organization of data in Excel
-* Automation of Excel tasks using VBA
-* Development of web apps to facilitate some call center tasks
-* Microsoft Excel, VBA, PHP, JavaScript, CSS, HTML
-
-### Work Placement at Arise
-
-**2015** / Limerick, Ireland
-
-* 2-week school internship in the administration department
-* Some Excel automation, including generation of working schedules
-* Learned how a call center operates
-* General office duties
-* Microsoft Excel, VBA
-
-### Coding, Web Dev, Game Dev (spare time)
-
-**2014-Now**
-
-* Started learning programming with JavaScript
-* Got into web development, built many personal websites for fun
-* Started learning game development with GameMaker, and later Unity
-* Improved at JavaScript and learned C# by using Unity
-* Started developing [arena](https://arena.adast.dk), my multiplayer Quake-like FPS game
-* JavaScript, HTML, CSS, C#, Unity, Blender, Audacity, Git
-
-## Education
-
-### Aalborg University
-
-**2019-2023** / Aalborg, Denmark
-
-* Bachelors Degree in Computer Science
-
-## Publications
-
-[1] **Potency-Based Heuristic Search with Randomness for Explicit Model Checking**
-by E.G.Henriksen, A.M. Khorsid, E. Nielsen, Th. Risager, J. Srba, **A.M. Stück**, S. Sørensen
-In Proceedings of the 29th International SPIN Symposium on Model Checking of Software (SPIN'23), volume 13872 of LNCS, pages 180--187, Springer-Verlag, 2023.
-[PDF](http://www.cs.aau.dk/~srba/files/HKNRSSS:SPIN:23.pdf)
-[©Springer-Verlag](https://www.springer.com/gp/computer-science/lncs)
- [EE](https://link.springer.com/chapter/10.1007/978-3-031-32157-3_10)
- [BibTex](https://homes.cs.aau.dk/~srba/srba.html#HKNRSSS:SPIN:23)
- Abstract
-
-
-
-## Competitions
-
-* 2022: Senior Qualifier in the Danish Cyber Championships
-* 2020: Participated in Create Jam
-
-## Languages
-
-
-
-English
-Native writing and speaking
-Danish
-Fluent writing and speaking
-German
-Rusty
-Irish
-Rusty
-
-
-
-## Tools
-
-A selection of tools and applications I have expert experience using:
-
-- Linux
-- Git, Unix Shell
-- C#, HTML, CSS, JavaScript
-- Unity
-
-I'm proficient with:
-
-- C, Rust, python, POSIX Shell (scripting), Java
-- Docker, SSH
-
-I have some experience with:
-
-- SQL, PHP, VBA, Haskell, Lua, JQuery, Blazor
-- Blender
-
-## Interests
-
-- Open source software
-- Linux systems
-- Performance and utilization
-- Software security and privacy
-- Minimal user interface design
-- Web accessibility
-
-Other: game dev, hiking/camping, boxing, guitar.
-
-## References
-
-Available upon request.
diff --git a/src/rss.xml b/src/rss.xml
deleted file mode 100644
index 928b896..0000000
--- a/src/rss.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- Adam Stück's blog
- https://adast.dk/rss.xml
- Recent content in Adam Stück's blog
- en-us
-
-
-
-
--
-
Status update, February 2023
-https://adast.dk/2023-02-log
- https://adast.dk/2023-02-log
-Sat, 04 Mar 2023 19:56:12 +0100
-Hi, welcome to my website.
-
-This is probably your first time seeing it, but it just went through a
-major makeover. I’ve archived the old
-design if
-you want to check it out.
-
-The new design is blazingly fast , light as a feather, and anyone can navigate it.
-
-You’ll find my contact details and important links on the homepage.
-There are links to more information about myself and this website, projects I’m
-working on, and my RSS feed at the top.
-I’ve included my PGP key if you wish to send me mail privately.
-
-This redesign was heavily inspired by bt.ht and
-drewdevault.com .
-
-
-
-The CompSci department at my uni hosts an annual LAN party with tournaments
-in the usual titles (csgo, lol, trackmania, etc). It would be amazing to get arena to a playable,
-fun state, and have a LAN tournament to really put it to the test.
-
-I want to start working on my game again, and I want to it to be playable in
-time for the LAN party.
-
-I have about 5 weeks to make it happen.
-
-What to expect
-
-I have a few technical blog posts planned, but I’ll also just be posting
-about anything I that interests me.
-
-I think I’ll start doing monthly status updates (like this post), much like
-the engineers at
-sourcehut.org .
-I’d also like to start posting (weekly) development logs for arena.
-
-Finally, I have a lot more services I need to start hosting before I really
-call this my platform . You can see the list of publicly available
-services by clicking the link at the top of the page. For now, I’m
-prioritising hosting the services that I use regularly.
-
-That’s all for now!
-
-Book club
-
-inspired by 100rabbits
-
-I’m reading A Voyage for Madmen by Peter Nichols.
]]>
-
-
-
-
diff --git a/src/services/index.md b/src/services/index.md
deleted file mode 100644
index 27108f5..0000000
--- a/src/services/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Services
-
-All services are using their default configs and logging.
-Everything is currently hosted on my [Hetzner VPS](/uses#machines) without any CDN.
-
-## Public
-
-| Service | Instance |
-| --- | --- |
-| SearXNG | [search.adast.dk](https://search.adast.dk) |
-| PeerTube | [tv.adast.dk](https://tv.adast.dk) |
-
-## Private
-
-| Service | Instance |
-| --- | --- |
-| Nextcloud | [cloud.adast.dk](https://cloud.adast.dk) |
-| Snikket (XMPP) | [chat.adast.xyz](https://chat.adast.xyz) |
-
-Other: Wireguard (pivpn), Mail (emailwiz)
diff --git a/src/uses/index.md b/src/uses/index.md
deleted file mode 100644
index 30af454..0000000
--- a/src/uses/index.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Things I use
-
-This page contains a somewhat up-to-date listing of hardware and software that I currently use.
-Seeing similar pages on other people's personal websites have proved quite valuable to me, so I figured I would do the same!
-
-## Services
-
-I'm proud to support open source products and privacy-respecting communities. The list is limited right now, but the plan is to expand this over time.
-
-Service | Cost/month
---- | ---
-[sourcehut](https://sourcehut.org) Open source code hosting with minimalist design and function. | $2.00
-
-
-## Machines
-Name | Description
---- | ---
-[ooz](https://wikipedia.org/wiki/The_Ooz) | Desktop
-nova | Laptop
-poco | Phone
-adast.dk | Hetzner VPS
-
-- **nova**
- - Acer Swift 1 SF114-32
- - CPU: Intel Pentium Silver N5000
- - RAM: 8 GB
- - Storage: 250 GB SSD
- - OS: Arch Linux
-- **ooz**
- - CPU: Ryzen 7 3700X
- - GPU: RTX 2080S
- - RAM: 16 GB 3200 Mhz CL-16
- - OS: Arch Linux
-- **poco**
- - Pocofone F1
- - OS: LineageOS
-- **adast.dk**
- - CPX 21
- - Location: Nuremberg, Germany
- - Price/month: EUR 9.44
- - vCPU: 3 AMD EPYC
- - RAM: 4 GB
- - Storage: 80 GB
- - OS: Debian
-
-## Accessories
- Name | Description
- --- | ---
-[crkbd](https://github.com/foostan/crkbd) | Split, columnar-staggered, ortholinear keyboard
-BLON BL-03 | Cheap and cheerful IEMs
-Drop HD58X | Open-backed headphones
-Dell U2520D | 25", 1440p, good colours, productivity
-
-## Software
-
-- qutebrowser, aerc
-- Firefox, Thunderbird
-- vim, keyd, pass, mpv, newsboat
-
-For more, have a look at my [dotfiles](https://git.sr.ht/~adamski/dotfiles/tree/laptop/item/.config).
diff --git a/ssg b/ssg
deleted file mode 100755
index d6c833c..0000000
--- a/ssg
+++ /dev/null
@@ -1,243 +0,0 @@
-#!/bin/sh -e
-#
-# https://rgz.ee/bin/ssg6
-# Copyright 2018-2019 Roman Zolotarev
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-
-main() {
- test -n "$1" || usage
- test -n "$2" || usage
- test -n "$3" || usage
- test -n "$4" || usage
- test -d "$1" || no_dir "$1"
- test -d "$2" || no_dir "$2"
-
- src=$(readlink_f "$1")
- dst=$(readlink_f "$2")
-
- IGNORE=$(
- if ! test -f "$src/.ssgignore"; then
- printf ' ! -path "*/.*"'
- return
- fi
- while read -r x; do
- test -n "$x" || continue
- printf ' ! -path "*/%s*"' "$x"
- done <"$src/.ssgignore"
- )
-
- # files
-
- title="$3"
-
- h_file="$src/_header.html"
- f_file="$src/_footer.html"
- test -f "$f_file" && FOOTER=$(cat "$f_file") && export FOOTER
- test -f "$h_file" && HEADER=$(cat "$h_file") && export HEADER
-
- list_dirs "$src" |
- (cd "$src" && cpio -pdu "$dst")
-
- fs=$(
- if test -f "$dst/.files"; then
- list_affected_files "$src" "$dst/.files"
- else
- list_files "$1"
- fi
- )
-
- if test -n "$fs"; then
- echo "$fs" | tee "$dst/.files"
-
- if echo "$fs" | grep -q '\.md$'; then
- if test -x "$(which lowdown 2>/dev/null)"; then
- echo "$fs" | grep '\.md$' |
- render_md_files_lowdown "$src" "$dst" "$title"
- else
- if test -x "$(which Markdown.pl 2>/dev/null)"; then
- echo "$fs" | grep '\.md$' |
- render_md_files_Markdown_pl "$src" "$dst" "$title"
- else
- echo "couldn't find lowdown nor Markdown.pl"
- exit 3
- fi
- fi
- fi
-
- echo "$fs" | grep '\.html$' |
- render_html_files "$src" "$dst" "$title"
-
- echo "$fs" | grep -Ev '\.md$|\.html$' |
- (cd "$src" && cpio -pu "$dst")
- fi
-
- printf '[ssg] ' >&2
- print_status 'file, ' 'files, ' "$fs" >&2
-
- # sitemap
-
- base_url="$4"
- date=$(date +%Y-%m-%d)
- urls=$(list_pages "$src")
-
- test -n "$urls" &&
- render_sitemap "$urls" "$base_url" "$date" >"$dst/sitemap.xml"
-
- print_status 'url' 'urls' "$urls" >&2
- echo >&2
-}
-
-readlink_f() {
- file="$1"
- cd "$(dirname "$file")"
- file=$(basename "$file")
- while test -L "$file"; do
- file=$(readlink "$file")
- cd "$(dirname "$file")"
- file=$(basename "$file")
- done
- dir=$(pwd -P)
- echo "$dir/$file"
-}
-
-print_status() {
- test -z "$3" && printf 'no %s' "$2" && return
-
- echo "$3" | awk -v singular="$1" -v plural="$2" '
- END {
- if (NR==1) printf NR " " singular
- if (NR>1) printf NR " " plural
- }'
-}
-
-usage() {
- echo "usage: ${0##*/} src dst title base_url" >&2
- exit 1
-}
-
-no_dir() {
- echo "${0##*/}: $1: No such directory" >&2
- exit 2
-}
-
-list_dirs() {
- cd "$1" && eval "find . -type d ! -name '.' ! -path '*/_*' $IGNORE"
-}
-
-list_files() {
- cd "$1" && eval "find . -type f ! -name '.' ! -path '*/_*' $IGNORE"
-}
-
-list_dependant_files() {
- e="\\( -name '*.html' -o -name '*.md' -o -name '*.css' -o -name '*.js' \\)"
- cd "$1" && eval "find . -type f ! -name '.' ! -path '*/_*' $IGNORE $e"
-}
-
-list_newer_files() {
- cd "$1" && eval "find . -type f ! -name '.' $IGNORE -newer $2"
-}
-
-has_partials() {
- grep -qE '^./_.*\.html$|^./_.*\.js$|^./_.*\.css$'
-}
-
-list_affected_files() {
- fs=$(list_newer_files "$1" "$2")
-
- if echo "$fs" | has_partials; then
- list_dependant_files "$1"
- else
- echo "$fs"
- fi
-}
-
-render_html_files() {
- while read -r f; do
- render_html_file "$3" <"$1/$f" >"$2/$f"
- done
-}
-
-render_md_files_lowdown() {
- while read -r f; do
- lowdown \
- --html-no-escapehtml \
- --html-no-skiphtml \
- --parse-no-metadata \
- --parse-no-autolink <"$1/$f" |
- render_html_file "$3" \
- >"$2/${f%\.md}.html"
- done
-}
-
-render_md_files_Markdown_pl() {
- while read -r f; do
- Markdown.pl <"$1/$f" |
- render_html_file "$3" \
- >"$2/${f%\.md}.html"
- done
-}
-
-render_html_file() {
- # h/t Devin Teske
- awk -v title="$1" '
- { body = body "\n" $0 }
- END {
- body = substr(body, 2)
- if (body ~ /<\/?[Hh][Tt][Mm][Ll]/) {
- print body
- exit
- }
- if (match(body, /<[[:space:]]*[Hh]1(>|[[:space:]][^>]*>)/)) {
- t = substr(body, RSTART + RLENGTH)
- sub("<[[:space:]]*/[[:space:]]*[Hh]1.*", "", t)
- gsub(/^[[:space:]]*|[[:space:]]$/, "", t)
- if (t) title = t
- }
- n = split(ENVIRON["HEADER"], header, /\n/)
- for (i = 1; i <= n; i++) {
- if (match(tolower(header[i]), " ")) {
- head = substr(header[i], 1, RSTART - 1)
- tail = substr(header[i], RSTART + RLENGTH)
- print head "" title " " tail
- } else print header[i]
- }
- print body
- print ENVIRON["FOOTER"]
- }'
-}
-
-list_pages() {
- e="\\( -name '*.html' -o -name '*.md' \\)"
- cd "$1" && eval "find . -type f ! -path '*/.*' ! -path '*/_*' $IGNORE $e" |
- sed 's#^./##;s#.md$#.html#;s#/index.html$#/#'
-}
-
-render_sitemap() {
- urls="$1"
- base_url="$2"
- date="$3"
-
- echo ''
- echo ''
- echo "$urls" |
- sed -E 's#^(.*)$#'"$base_url"'/\1 '"$date"' 1.0 #'
- echo ' '
-}
-
-main "$@"
--
cgit v1.2.3-70-g09d2