Merge remote-tracking branch 'origin/main'

This commit is contained in:
Dan 2026-01-14 09:30:37 +00:00
commit 0360b3fb0d
8 changed files with 141 additions and 36 deletions

View file

@ -14,8 +14,7 @@
background: linear-gradient(145deg, #e8e0c8, #c4b89a);
border-radius: 12px;
padding: 25px 30px 45px 30px;
box-shadow:
0 30px 60px rgba(0, 0, 0, 0.8),
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8),
inset 0 2px 4px rgba(255, 255, 255, 0.3),
inset 0 -2px 4px rgba(0, 0, 0, 0.3);
position: relative;
@ -70,9 +69,7 @@
height: 8px;
background: #0f0;
border-radius: 50%;
box-shadow:
0 0 10px #0f0,
0 0 20px #0f0;
box-shadow: 0 0 10px #0f0, 0 0 20px #0f0;
animation: pulse 2s ease-in-out infinite;
@include media-down(lg) {
@ -126,8 +123,7 @@
border-radius: 8px;
position: relative;
overflow: hidden;
box-shadow:
inset 0 0 80px rgba(0, 255, 100, 0.1),
box-shadow: inset 0 0 80px rgba(0, 255, 100, 0.1),
inset 0 0 40px rgba(0, 255, 100, 0.05),
inset 3px 3px 8px rgba(255, 255, 255, 0.1),
inset -3px -3px 8px rgba(0, 0, 0, 0.5);
@ -145,8 +141,7 @@
left: -5%;
right: -5%;
bottom: -5%;
background:
radial-gradient(
background: radial-gradient(
ellipse at 30% 30%,
rgba(255, 255, 255, 0.15) 0%,
transparent 40%
@ -216,6 +211,23 @@
line-height: 1.6;
margin-bottom: 1rem;
}
a {
color: greenyellow;
text-decoration: none;
position: relative;
padding-bottom: 2px;
border-bottom: 1px dotted rgba(173, 255, 47, 0.5);
transition: all 0.3s ease;
text-shadow: 0 0 5px rgba(173, 255, 47, 0.3);
&:hover {
border-bottom-style: solid;
border-bottom-color: rgba(173, 255, 47, 0.8);
text-shadow: 0 0 10px rgba(173, 255, 47, 0.8);
background: rgba(173, 255, 47, 0.05);
}
}
}
// Blog posts listing
@ -504,6 +516,13 @@
}
}
}
.blog-footer {
text-align: center;
padding: 1rem;
margin: auto;
font-size: 1rem;
}
}
// Tag filter navigation
@ -736,8 +755,7 @@
height: auto;
border-radius: 12px;
border: 3px solid transparent;
background:
linear-gradient(#000, #000) padding-box,
background: linear-gradient(#000, #000) padding-box,
linear-gradient(180deg, #0f0, #000) border-box;
filter: grayscale(100%) contrast(1.2) brightness(0.9) sepia(100%)
hue-rotate(60deg) saturate(300%);
@ -811,6 +829,7 @@
transition: all 0.3s ease;
text-shadow: 0 0 5px rgba(0, 255, 0, 0.5);
border-radius: 3px;
line-height: 2.2rem;
&:hover:not(.disabled) {
background: rgba(0, 255, 0, 0.2);
@ -883,8 +902,7 @@
&:hover {
background: rgba(0, 255, 0, 0.1);
border-color: rgba(0, 255, 0, 0.7);
box-shadow:
0 0 10px rgba(0, 255, 0, 0.4),
box-shadow: 0 0 10px rgba(0, 255, 0, 0.4),
inset 0 0 10px rgba(0, 255, 0, 0.1);
text-shadow: 0 0 10px rgba(0, 255, 0, 0.8);
}
@ -893,8 +911,7 @@
&.active span {
background: rgba(0, 255, 0, 0.2);
border-color: rgba(0, 255, 0, 0.8);
box-shadow:
0 0 15px rgba(0, 255, 0, 0.5),
box-shadow: 0 0 15px rgba(0, 255, 0, 0.5),
inset 0 0 10px rgba(0, 255, 0, 0.2);
text-shadow: 0 0 10px rgba(0, 255, 0, 1);
}
@ -933,9 +950,7 @@
text-shadow: 0 0 10px rgba(0, 255, 0, 0.8);
}
to {
text-shadow:
0 0 20px rgba(0, 255, 0, 1),
0 0 30px rgba(0, 255, 0, 0.6);
text-shadow: 0 0 20px rgba(0, 255, 0, 1), 0 0 30px rgba(0, 255, 0, 0.6);
}
}
@ -952,14 +967,10 @@
0%,
100% {
opacity: 1;
box-shadow:
0 0 10px #0f0,
0 0 20px #0f0;
box-shadow: 0 0 10px #0f0, 0 0 20px #0f0;
}
50% {
opacity: 0.5;
box-shadow:
0 0 5px #0f0,
0 0 10px #0f0;
box-shadow: 0 0 5px #0f0, 0 0 10px #0f0;
}
}

View file

@ -14,6 +14,11 @@ outputFormats:
mediaType: "application/json"
baseName: "webmentions"
isPlainText: true
RSS:
mediaType: application/rss+xml
baseName: feed
isPlainText: false
rel: alternate
pagination:
pagerSize: 5
@ -41,16 +46,6 @@ params:
iconImageHeight: 35
iconHeight: 70
fuseOpts:
isCaseSensitive: false
shouldSort: true
location: 0
distance: 1000
threshold: 0.4
minMatchCharLength: 0
limit: 10
keys: ["title", "permalink", "summary", "content"]
markup:
highlight:
noClasses: false

View file

@ -9,7 +9,8 @@ draft: false
- 🗨️ Added the ability to send and receive [webmentions](https://indieweb.org/Webmention) to the blog. Haven't automated displaying of received ones yet, but I'll get there.
- 🧰 Setup a little personal API to handle the guestbook, visitor counter, and aforementioned webmentions.
- 📺 Setup a little dashboard on my homelab for monitoring all of the above!
- 📺 Setup a dashboard on my homelab for monitoring all of the above.
- 🛜 Added an RSS feed for the blog. I've made my full posts available via RSS so you can consume them however you please.
## Links I Found Interesting

View file

@ -3,3 +3,5 @@ title: "Blog"
---
The home of my weekly updates and occasional other thoughts.
🛜 [Available via RSS](/blog/feed.xml)

View file

@ -0,0 +1,33 @@
---
title: "App Defaults - 2026"
date: 2026-01-13T18:27:20Z
tags:
draft: false
---
I've seen a lot of these popping up around the tech space and find them very interesting to see what tools and apps are peoples go-to for various every day things. Apparently there are [over 500 posts](https://defaults.rknight.me/) and counting! Here's mine right now:
- 📨 Mail Client - Proton Mail
- 📮 Mail Server - [Proton Mail](https://pr.tn/ref/MNB13JYX)
- 📝 Notes - Notes.app
- ✅ To-Do - Notes.app
- 📷 Phone Photo Shooting - Camera.app
- 🟦 Photo Management - Photos.app
- 📆 Calendar - Calendar.app
- 📁 Cloud File Storage - None
- 📖 RSS - [FreshRSS](https://github.com/FreshRSS/FreshRSS)
- 🙍🏻‍♂️ Contacts - Contacts.app
- 🌐 Browser - [Zen](https://zen-browser.app/)
- 💬 Chat - Discord
- 🔖 Bookmarks - Firefox Bookmarks Sync
- 📑 Read It Later - Notes.app
- 🧑‍💻 Code Editor - [VSCodium](https://vscodium.com/)
- 🛒 Shopping Lists - Notes.app
- 📰 News - Avoid at all costs
- 🎵 Music - Tidal, [High Tide](https://github.com/Nokse22/high-tide), Turntable
- 🎤 Podcasts - Apple Podcasts
- 🔐 Password Management - Proton Pass
Apparently I dump a lot of stuff in the Notes app on my phone. It's the closest thing to hand and has almost zero barrier to entry. Also I know where all my stuff is then.
I should probably find better ways of organising things, but you know what they say - the best system is the one that works for you.

View file

@ -9,7 +9,11 @@
}}{{ end }}{{ end }}
</title>
<meta name="viewport" content="width=device-width,minimum-scale=1" />
{{ hugo.Generator }} {{ $sass := resources.Get "sass/style.scss" }} {{
{{ range .AlternativeOutputFormats }}
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .RelPermalink }}">
{{ end }}
{{ $sass := resources.Get "sass/style.scss" }} {{
$style := $sass | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />

View file

@ -21,6 +21,9 @@
</div>
{{ end }}
<div class="blog-summary">{{ .Content }}</div>
<div class="blog-footer">
🛜 <a href="/blog/feed.xml">Available via RSS</a>
</div>
</article>
{{ partial "contact-section.html" . }}

56
layouts/rss.xml Normal file
View file

@ -0,0 +1,56 @@
{{- $authorEmail := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .email }}
{{- $authorEmail = . }}
{{- end }}
{{- end }}
{{- end }}
{{- $authorName := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .name }}
{{- $authorName = . }}
{{- end }}
{{- else }}
{{- $authorName = . }}
{{- end }}
{{- end }}
{{- $pctx := . }}
{{- if .IsHome }}{{ $pctx = .Site }}{{ end }}
{{- $pages := slice }}
{{- if or $.IsHome $.IsSection }}
{{- $pages = $pctx.RegularPages }}
{{- else }}
{{- $pages = $pctx.Pages }}
{{- end }}
{{- $limit := .Site.Config.Services.RSS.Limit }}
{{- if ge $limit 1 }}
{{- $pages = $pages | first $limit }}
{{- end }}
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Blog(gish) by Dan @ ritual.sh</title>
<link>{{ .Permalink }}</link>
<description>Dan's thoughts on web and game development, tech experiments, and whatever else catches my attention in the Golden Valley.</description>
<language>{{ site.Language.LanguageCode }}</language>{{ if not .Date.IsZero }}
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{- end }}
{{- range $pages }}
{{- $content := .Content }}
{{- /* Remove graph containers with all their content including canvas and script tags */ -}}
{{- $content = replaceRE `(?s)<div class="graph-container"[^>]*>.*?</div>\s*<script>.*?</script>` "<p><em>[Interactive graph not available in RSS - please visit the full post to view the charts]</em></p>" $content }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
<guid>{{ .Permalink }}</guid>
<description>{{ $content | transform.XMLEscape | safeHTML }}</description>
</item>
{{- end }}
</channel>
</rss>