Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
0360b3fb0d
8 changed files with 141 additions and 36 deletions
|
|
@ -14,8 +14,7 @@
|
||||||
background: linear-gradient(145deg, #e8e0c8, #c4b89a);
|
background: linear-gradient(145deg, #e8e0c8, #c4b89a);
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 25px 30px 45px 30px;
|
padding: 25px 30px 45px 30px;
|
||||||
box-shadow:
|
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8),
|
||||||
0 30px 60px rgba(0, 0, 0, 0.8),
|
|
||||||
inset 0 2px 4px rgba(255, 255, 255, 0.3),
|
inset 0 2px 4px rgba(255, 255, 255, 0.3),
|
||||||
inset 0 -2px 4px rgba(0, 0, 0, 0.3);
|
inset 0 -2px 4px rgba(0, 0, 0, 0.3);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -70,9 +69,7 @@
|
||||||
height: 8px;
|
height: 8px;
|
||||||
background: #0f0;
|
background: #0f0;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow:
|
box-shadow: 0 0 10px #0f0, 0 0 20px #0f0;
|
||||||
0 0 10px #0f0,
|
|
||||||
0 0 20px #0f0;
|
|
||||||
animation: pulse 2s ease-in-out infinite;
|
animation: pulse 2s ease-in-out infinite;
|
||||||
|
|
||||||
@include media-down(lg) {
|
@include media-down(lg) {
|
||||||
|
|
@ -126,8 +123,7 @@
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow:
|
box-shadow: inset 0 0 80px rgba(0, 255, 100, 0.1),
|
||||||
inset 0 0 80px rgba(0, 255, 100, 0.1),
|
|
||||||
inset 0 0 40px rgba(0, 255, 100, 0.05),
|
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(255, 255, 255, 0.1),
|
||||||
inset -3px -3px 8px rgba(0, 0, 0, 0.5);
|
inset -3px -3px 8px rgba(0, 0, 0, 0.5);
|
||||||
|
|
@ -145,8 +141,7 @@
|
||||||
left: -5%;
|
left: -5%;
|
||||||
right: -5%;
|
right: -5%;
|
||||||
bottom: -5%;
|
bottom: -5%;
|
||||||
background:
|
background: radial-gradient(
|
||||||
radial-gradient(
|
|
||||||
ellipse at 30% 30%,
|
ellipse at 30% 30%,
|
||||||
rgba(255, 255, 255, 0.15) 0%,
|
rgba(255, 255, 255, 0.15) 0%,
|
||||||
transparent 40%
|
transparent 40%
|
||||||
|
|
@ -216,6 +211,23 @@
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
margin-bottom: 1rem;
|
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
|
// Blog posts listing
|
||||||
|
|
@ -504,6 +516,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.blog-footer {
|
||||||
|
text-align: center;
|
||||||
|
padding: 1rem;
|
||||||
|
margin: auto;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tag filter navigation
|
// Tag filter navigation
|
||||||
|
|
@ -736,8 +755,7 @@
|
||||||
height: auto;
|
height: auto;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
border: 3px solid transparent;
|
border: 3px solid transparent;
|
||||||
background:
|
background: linear-gradient(#000, #000) padding-box,
|
||||||
linear-gradient(#000, #000) padding-box,
|
|
||||||
linear-gradient(180deg, #0f0, #000) border-box;
|
linear-gradient(180deg, #0f0, #000) border-box;
|
||||||
filter: grayscale(100%) contrast(1.2) brightness(0.9) sepia(100%)
|
filter: grayscale(100%) contrast(1.2) brightness(0.9) sepia(100%)
|
||||||
hue-rotate(60deg) saturate(300%);
|
hue-rotate(60deg) saturate(300%);
|
||||||
|
|
@ -811,6 +829,7 @@
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
text-shadow: 0 0 5px rgba(0, 255, 0, 0.5);
|
text-shadow: 0 0 5px rgba(0, 255, 0, 0.5);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
line-height: 2.2rem;
|
||||||
|
|
||||||
&:hover:not(.disabled) {
|
&:hover:not(.disabled) {
|
||||||
background: rgba(0, 255, 0, 0.2);
|
background: rgba(0, 255, 0, 0.2);
|
||||||
|
|
@ -883,8 +902,7 @@
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(0, 255, 0, 0.1);
|
background: rgba(0, 255, 0, 0.1);
|
||||||
border-color: rgba(0, 255, 0, 0.7);
|
border-color: rgba(0, 255, 0, 0.7);
|
||||||
box-shadow:
|
box-shadow: 0 0 10px rgba(0, 255, 0, 0.4),
|
||||||
0 0 10px rgba(0, 255, 0, 0.4),
|
|
||||||
inset 0 0 10px rgba(0, 255, 0, 0.1);
|
inset 0 0 10px rgba(0, 255, 0, 0.1);
|
||||||
text-shadow: 0 0 10px rgba(0, 255, 0, 0.8);
|
text-shadow: 0 0 10px rgba(0, 255, 0, 0.8);
|
||||||
}
|
}
|
||||||
|
|
@ -893,8 +911,7 @@
|
||||||
&.active span {
|
&.active span {
|
||||||
background: rgba(0, 255, 0, 0.2);
|
background: rgba(0, 255, 0, 0.2);
|
||||||
border-color: rgba(0, 255, 0, 0.8);
|
border-color: rgba(0, 255, 0, 0.8);
|
||||||
box-shadow:
|
box-shadow: 0 0 15px rgba(0, 255, 0, 0.5),
|
||||||
0 0 15px rgba(0, 255, 0, 0.5),
|
|
||||||
inset 0 0 10px rgba(0, 255, 0, 0.2);
|
inset 0 0 10px rgba(0, 255, 0, 0.2);
|
||||||
text-shadow: 0 0 10px rgba(0, 255, 0, 1);
|
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);
|
text-shadow: 0 0 10px rgba(0, 255, 0, 0.8);
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
text-shadow:
|
text-shadow: 0 0 20px rgba(0, 255, 0, 1), 0 0 30px rgba(0, 255, 0, 0.6);
|
||||||
0 0 20px rgba(0, 255, 0, 1),
|
|
||||||
0 0 30px rgba(0, 255, 0, 0.6);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -952,14 +967,10 @@
|
||||||
0%,
|
0%,
|
||||||
100% {
|
100% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
box-shadow:
|
box-shadow: 0 0 10px #0f0, 0 0 20px #0f0;
|
||||||
0 0 10px #0f0,
|
|
||||||
0 0 20px #0f0;
|
|
||||||
}
|
}
|
||||||
50% {
|
50% {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
box-shadow:
|
box-shadow: 0 0 5px #0f0, 0 0 10px #0f0;
|
||||||
0 0 5px #0f0,
|
|
||||||
0 0 10px #0f0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
config.yml
15
config.yml
|
|
@ -14,6 +14,11 @@ outputFormats:
|
||||||
mediaType: "application/json"
|
mediaType: "application/json"
|
||||||
baseName: "webmentions"
|
baseName: "webmentions"
|
||||||
isPlainText: true
|
isPlainText: true
|
||||||
|
RSS:
|
||||||
|
mediaType: application/rss+xml
|
||||||
|
baseName: feed
|
||||||
|
isPlainText: false
|
||||||
|
rel: alternate
|
||||||
|
|
||||||
pagination:
|
pagination:
|
||||||
pagerSize: 5
|
pagerSize: 5
|
||||||
|
|
@ -41,16 +46,6 @@ params:
|
||||||
iconImageHeight: 35
|
iconImageHeight: 35
|
||||||
iconHeight: 70
|
iconHeight: 70
|
||||||
|
|
||||||
fuseOpts:
|
|
||||||
isCaseSensitive: false
|
|
||||||
shouldSort: true
|
|
||||||
location: 0
|
|
||||||
distance: 1000
|
|
||||||
threshold: 0.4
|
|
||||||
minMatchCharLength: 0
|
|
||||||
limit: 10
|
|
||||||
keys: ["title", "permalink", "summary", "content"]
|
|
||||||
|
|
||||||
markup:
|
markup:
|
||||||
highlight:
|
highlight:
|
||||||
noClasses: false
|
noClasses: false
|
||||||
|
|
|
||||||
|
|
@ -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.
|
- 🗨️ 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 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
|
## Links I Found Interesting
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,3 +3,5 @@ title: "Blog"
|
||||||
---
|
---
|
||||||
|
|
||||||
The home of my weekly updates and occasional other thoughts.
|
The home of my weekly updates and occasional other thoughts.
|
||||||
|
|
||||||
|
🛜 [Available via RSS](/blog/feed.xml)
|
||||||
|
|
|
||||||
33
content/blog/app-defaults-2026/index.md
Normal file
33
content/blog/app-defaults-2026/index.md
Normal 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.
|
||||||
|
|
@ -9,7 +9,11 @@
|
||||||
}}{{ end }}{{ end }}
|
}}{{ end }}{{ end }}
|
||||||
</title>
|
</title>
|
||||||
<meta name="viewport" content="width=device-width,minimum-scale=1" />
|
<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 }}
|
$style := $sass | css.Sass | resources.Minify | resources.Fingerprint }}
|
||||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />
|
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,9 @@
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="blog-summary">{{ .Content }}</div>
|
<div class="blog-summary">{{ .Content }}</div>
|
||||||
|
<div class="blog-footer">
|
||||||
|
🛜 <a href="/blog/feed.xml">Available via RSS</a>
|
||||||
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
{{ partial "contact-section.html" . }}
|
{{ partial "contact-section.html" . }}
|
||||||
|
|
|
||||||
56
layouts/rss.xml
Normal file
56
layouts/rss.xml
Normal 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>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue