diff --git a/README.md b/README.md index df415a5..b153143 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -[![Deployment Status](https://github.com/jbowdre/runtimeterror/actions/workflows/deploy-to-prod.yml/badge.svg)](https://github.com/jbowdre/runtimeterror/actions/workflows/deploy-to-prod.yml) \ No newline at end of file +[![Deployment Status](https://github.com/jbowdre/runtimeterror/actions/workflows/deploy-prod.yml/badge.svg)](https://github.com/jbowdre/runtimeterror/actions/workflows/deploy-prod.yml) \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md index 57e2c61..3e580c0 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -6,7 +6,7 @@ draft: true description: "This is a new post about..." featured: false toc: true -comments: true +reply: true categories: Tips # Backstage, ChromeOS, Code, Self-Hosting, VMware tags: - android diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml index 603ce6f..50829a1 100644 --- a/config/_default/hugo.toml +++ b/config/_default/hugo.toml @@ -7,6 +7,7 @@ languageCode = "en" DefaultContentLanguage = "en" enableInlineShortcodes = true enableRobotsTXT = true +capitalizeListTitles = false # define gemini media type [mediaTypes] diff --git a/config/_default/menu.toml b/config/_default/menu.toml index 01fd711..b95637b 100644 --- a/config/_default/menu.toml +++ b/config/_default/menu.toml @@ -9,21 +9,45 @@ name = "self-hosting" url = "/categories/self-hosting/" weight = 1 + [[main.params]] + target = "_self" [[main]] identifier = "tips" name = "tips" url = "/categories/tips/" weight = 1 + [[main.params]] + target = "_self" [[main]] identifier = "code" name = "code" url = "/categories/code/" weight = 1 + [[main.params]] + target = "_self" [[main]] - identifier = "virtuallypotato" - name = "whereis virtuallypotato" - url = "/virtuallypotato-runtimeterror/" + identifier = "backstage" + name = "backstage" + url = "/categories/backstage/" + weight = 1 + [[main.params]] + target = "_self" + +[[main]] + identifier = "slashes" + name = "slashes" + url = "/slashes/" + weight = 10 + [[main.params]] + target = "_self" + +[[main]] + identifier = "notes" + name = "notes" + url = "https://notes.runtimeterror.dev" weight = 100 + [[main.params]] + target = "_blank" diff --git a/config/_default/params.toml b/config/_default/params.toml index 71fee0f..94b3418 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -37,24 +37,8 @@ robots = [ ] # Comments -comments = true -giscusCategory = "Announcements" -giscusCategoryId = "DIC_kwDOKKEGD84CcG89" -giscusCrossOrigin = "anonymous" -giscusEmitMetadata = "0" -giscusInputPosition = "bottom" -giscusLang = "en" -giscusLoading = "lazy" -giscusMapping = "og:title" -giscusReactions = "0" -giscusRepo = "jbowdre/site-comments" -giscusRepoId = "R_kgDOKKEGDw" -giscusStrict = "0" -giscusTheme = "noborder_gray" - analytics = true -kudos = true -emailReplies = true +reply = true [author] name = "John Bowdre" @@ -182,8 +166,8 @@ url = "https://scribbles.jbowdre.lol" [[socialLinks]] icon = "fa-solid fa-satellite" -title = "Gemlog" -url = "https://capsule.jbowdre.lol/gemlog/" +title = "Gemini Capsule" +url = "gemini://capsule.jbowdre.lol" [[socialLinks]] icon = "fa-solid fa-circle-user" @@ -200,25 +184,35 @@ icon = "fa-solid fa-envelope" title = "Email" url = "mailto:jbowdre@omg.lol" -[[powerLinks]] -title = "hugo" -url = "https://gohugo.io" +[[slashPages]] +title = "/about" +url = "/about" +label = "about this site" -[[powerLinks]] -title = "neocities" -url = "https://neocities.org/about" +[[slashPages]] +title = "/changelog" +url = "/changelog" +label = "recent changes to the site" -[[powerLinks]] -title = "risotto" -url = "https://github.com/joeroe/risotto" +[[slashPages]] +title = "/colophon" +url = "/colophon" +label = "how this site works" -[[powerLinks]] -title = "torchlight" -url = "https://torchlight.dev" +[[slashPages]] +title = "/homelab" +url = "/homelab" +label = "my homelab setup" -[[powerLinks]] -title = "tinylytics" -url = "https://tinylytics.app/home" +[[slashPages]] +title = "/save" +url = "/save" +label = "referral links" + +[[slashPages]] +title = "/uses" +url = "/uses" +label = "stuff i use" [[verifyLinks]] title = "omg.lol" diff --git a/config/local/params.toml b/config/local/params.toml index 3b5ce10..51e9b52 100644 --- a/config/local/params.toml +++ b/config/local/params.toml @@ -1,2 +1 @@ -comments = true analytics = false \ No newline at end of file diff --git a/config/preview/params.toml b/config/preview/params.toml index c8a1743..8913a08 100644 --- a/config/preview/params.toml +++ b/config/preview/params.toml @@ -1,2 +1,2 @@ -comments = false +reply = false analytics = false \ No newline at end of file diff --git a/content/404.md b/content/404.md index 2d764ec..1a10e4c 100644 --- a/content/404.md +++ b/content/404.md @@ -3,7 +3,6 @@ title = "404'd!" noindex = true timeless = true comments = true -kudos = false +++ We're not sure what you were looking for but it's not here. diff --git a/content/about.md b/content/about.md index 91ccdc7..c5dda2a 100644 --- a/content/about.md +++ b/content/about.md @@ -1,10 +1,14 @@ -+++ -title = "Hi, I'm John." -description = "A brief introduction to me, this blog, and what you're likely to see here." -timeless = true -comments = false -aliases = ["tldr", "bio"] -+++ +--- +title: "/about" +date: "2024-05-26T21:19:08Z" +lastmod: "2024-05-29" +description: "A brief introduction to me, this blog, and what you're likely to see here." +timeless: true +toc: false +categories: slashes +--- +**Hi, I'm John.** + ![Me, +/- a few decades](/images/john.jpg) You've (somehow) managed to stumble upon my dark corner of the internet[^1]. diff --git a/content/categories/slashes/_index.md b/content/categories/slashes/_index.md new file mode 100644 index 0000000..ab09aa0 --- /dev/null +++ b/content/categories/slashes/_index.md @@ -0,0 +1,8 @@ +--- +title: slashes +url: /slashes +aliases: + - categories/slashes +description: > + My collection of slashpages. +--- \ No newline at end of file diff --git a/content/changelog.md b/content/changelog.md new file mode 100644 index 0000000..bf481de --- /dev/null +++ b/content/changelog.md @@ -0,0 +1,31 @@ +--- +title: "/changelog" +date: "2024-05-26T21:19:08Z" +lastmod: "2024-05-30" +description: "Maybe I should keep a log of all my site-related tinkering?" +featured: false +toc: false +timeless: true +categories: slashes +--- +*High-level list of config/layout changes to the site.* + +**2024-05-30:** +- Fix broken styling for taxonomy (categories/tags) feeds +- Open "notes" header link in new tab since it's an external link +- Misc improvements for handling /slashes + +**2024-05-29:** +- Display post descriptions (if set) on archive pages; otherwise fall back to summaries +- Add /slashes archive page +- Add /slashes to top menu, add /about + +**2024-05-27:** +- Replace "powered by" links with slashpages + +**2024-05-26:** +- Begin changelog +- Simplify logic for displaying kudos and post reply buttons +- Reduce gap for paragraphs followed by lists + +The full changelog is of course [on GitHub](https://github.com/jbowdre/runtimeterror/commits/main/). \ No newline at end of file diff --git a/content/colophon.md b/content/colophon.md new file mode 100644 index 0000000..15c6c4b --- /dev/null +++ b/content/colophon.md @@ -0,0 +1,24 @@ +--- +title: "/colophon" +date: "2024-05-26T22:30:58Z" +lastmod: "2024-05-28" +description: "There's a lot that goes into this site. Let me tell you how it works." +featured: false +toc: true +timeless: true +categories: slashes +--- +*I don't consider myself to be a web developer, but I've learned a **ton** through the process of building/tweaking/maintaining this site. The [colophon](https://indieweb.org/colophon) provides a quick overview of what powers `runtimeterror.dev`.* + +### This site... +- is built with [Hugo](https://gohugo.io/) using the [risotto](https://github.com/joeroe/risotto) theme with many, many tweaks and customizations. +- uses the font face [Berkeley Mono](https://berkeleygraphics.com/typefaces/berkeley-mono/) ([details](/using-custom-font-hugo/)). +- performs syntax highlighting with [Torchlight](https://torchlight.dev) ([details](/spotlight-on-torchlight/)). +- provides site search with [lunr](https://lunrjs.com/) based on an implementation detailed by [Victoria Drake](https://victoria.dev/blog/add-search-to-hugo-static-sites-with-lunr/). +- leverages [tinylytics](https://tinylytics.app/) for privacy-friendly analytics and cute kudos buttons. +- uses [bunny.net](https://bunny.net) for DNS and CDN services. +- is published to / hosted by [Neocities](https://neocities.org) with a GitHub Actions workflow ([details](/deploy-hugo-neocities-github-actions/)). +- has a [Gemini](https://geminiprotocol.net) mirror at `gemini://gmi.runtimeterror.dev`. This is generated from a [Hugo gemtext post layout](https://github.com/jbowdre/runtimeterror/blob/main/layouts/_default/single.gmi), deployed to a [Vultr](https://www.vultr.com/) VPS through a GitHub Actions workflow, and served with [Agate](https://github.com/mbrubeck/agate). + + +Look behind the scenes at [github.com/jbowdre/runtimeterror](https://github.com/jbowdre/runtimeterror). diff --git a/content/homelab.md b/content/homelab.md new file mode 100644 index 0000000..f98c015 --- /dev/null +++ b/content/homelab.md @@ -0,0 +1,83 @@ +--- +title: "/homelab" +date: "2024-05-26T21:30:51Z" +lastmod: "2024-05-28" +aliases: + - playground +description: "The systems I use for fun and enrichment." +featured: false +toc: true +timeless: true +categories: slashes +--- +*I enjoy tinkering with small technology projects, and I learn a ton from these experiments. I also self-host a number of apps/services from my home as well as various cloud environments. This page describes some of my technical playground.* + +Everything is connected to my [Tailscale](https://tailscale.com) tailnet, with a GitOps-managed ACL to allow access as needed. This lets me access and manage systems without really caring if they're local or remote. [Tailscale is magic](/secure-networking-made-simple-with-tailscale/). + +### On Premise + +**Proxmox VE 8 Cluster** +- 1x [Intel NUC 9 Extreme (NUC9i9QNX)](https://www.amazon.com/Intel-Extreme-NUC9i9QNX-Single-Model/dp/B0851JV4R8) + - 9th Gen Intel® Core™ i9-9980HK (8 cores @ 2.40GHz) + - 64GB RAM + - 1x 512GB NVMe system drive + - 2x 1TB NVMe drives (ZFS) +- 2x [HP Elite Mini 800 G9](https://www.hp.com/us-en/shop/pdp/hp-elite-mini-800-g9-desktop-pc-p-88u16ua-aba-1) + - 12th Gen Intel® Core™ i7-12700 (8 cores @ 2.10GHz, 4 cores @ 1.60GHz) + - 96GB RAM + - 1x 512GB NVMe system drive + - 1x 2TB NVMe drive (ZFS) +- [Unifi USW Flex XG 10GbE Switch](https://store.ui.com/us/en/collections/unifi-switching-utility-10-gbps-ethernet/products/unifi-flex-xg) + +The Proxmox cluster hosts a number of VMs and LXC containers: +- `doc`: Ubuntu 22.04 Docker host for various on-prem container workloads, served via [Tailscale Serve](/tailscale-ssh-serve-funnel/#tailscale-serve) / [Cloudflare Tunnel](/publish-services-cloudflare-tunnel/): + - [Calibre Web](https://github.com/janeczku/calibre-web) for managing my ebooks + - [Crowdsec](https://www.crowdsec.net/) log processor + - [Cyberchef](https://github.com/gchq/CyberChef), the Cyber Swiss Army Knife + - [Hashicorp Vault](https://www.vaultproject.io/) for secrets management + - [Miniflux](https://miniflux.app/) feed reader + - [Tailscale Golink](https://github.com/tailscale/golink), a private shortlink service ([post](/tailscale-golink-private-shortlinks-tailnet/)) +- `files`: Ubuntu 20.04 file server. Serves (selected) files semi-publicly through [Tailscale Funnel](/tailscale-ssh-serve-funnel/#tailscale-funnel) +- `hassos`: [Home Assistant OS](https://www.home-assistant.io/installation/), manages all my "smart home" stuff ([post](/automating-camera-notifications-home-assistant-ntfy/)) +- `immich`: Ubuntu 22.04 [Immich](https://immich.app/) server +- `ipam`: Ubuntu 20.04 [phpIPAM](https://phpipam.net/) server ([post](/integrating-phpipam-with-vrealize-automation-8/#step-0-phpipam-installation-and-base-configuration)) +- `salt`: Ubuntu 20.04 [Salt](https://saltproject.io/) Master server for configuration management +- `unifi`: UniFi Network Application. Manages the Unifi switch. + +**Hashicorp Nomad Cluster (WIP)** +- 3x [Zima Blade 7700](https://shop.zimaboard.com/products/zimablade-single-board-server-for-cyber-native) + - Intel® Celeron® N3450 (4 cores @ 1.10GHz) + - 16GB RAM + - 1x 32GB eMMC + - 1x 1TB SATA SSD +- [TP-Link TL-SG108E 1GbE Switch](https://www.tp-link.com/us/home-networking/8-port-switch/tl-sg108e/) + +This triad of cute little single-board computers will *eventually* be a combination Nomad + Consul + Vault cluster, fully managed with Salt. + +**[PiAware](https://www.flightaware.com/adsb/piaware/build) ADS-B/MLAT Receiver** +- Raspberry Pi 2 Model B +- 2x [RTL-SDR Blog V3 R860 RTL2832U 1PPM TCXO SMA Dongle](https://www.amazon.com/gp/product/B0129EBDS2) +- [SIGNALPLUS 1090MHz 12dBi 1.1m ADS-B Antenna](https://www.amazon.com/gp/product/B08XYRMG3V/) + +I like to know what's flying overhead, and I'm also feeding flight data to [flightaware.com](https://flightaware.com) and [adsb.fi](https://adsb.fi). + +### Cloud + +**[Oracle Cloud Infrastructure](https://www.oracle.com/cloud/free/)** +- `git`: Ubuntu 22.04 [Forgejo](https://forgejo.org/) server for [git.bowdre.net](https://git.bowdre.net/explore/repos) +- `smp2`: Ubuntu 22.04 [SimpleX](/simplex/) server + +**[Google Cloud Platform](https://cloud.google.com/free/docs/free-cloud-features)** +- `smp`: Ubuntu 22.04 [SimpleX](/simplex/) server +- `smp1`: Ubuntu 22.04 [SimpleX](/simplex/) server + +**[Vultr](https://www.vultr.com)** +- `volly`: Ubuntu 22.04 Docker host for various workloads, served either through [Caddy](https://caddyserver.com/) or [Cloudflare Tunnel](/publish-services-cloudflare-tunnel/): + - [Agate](https://github.com/mbrubeck/agate) Gemini server ([post](/gemini-capsule-gempost-github-actions/)) + - [Crowdsec](https://www.crowdsec.net) security engine + - [Kineto](https://github.com/beelux/kineto) Gemini-to-HTTP proxy ([post](/gemini-capsule-gempost-github-actions/)) + - [Linkding](https://github.com/sissbruecker/linkding) bookmark manager serving [links.bowdre.net](https://links.bowdre.net/bookmarks/shared) + - [ntfy](https://ntfy.sh/) notification service ([post](/easy-push-notifications-with-ntfy/)) + - [SearXNG](https://docs.searxng.org/) self-hosted metasearch engine serving [grep.vpota.to](https://grep.vpota.to) ([post](https://scribbles.jbowdre.lol/post/self-hosting-a-search-engine-iyjdlk6y)) + - [Uptime Kuma](https://github.com/louislam/uptime-kuma) for monitoring internal services (via Tailscale) + - [vault-unseal](https://github.com/lrstanley/vault-unseal) to auto-unseal my on-prem Vault instance diff --git a/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md b/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md index 3184794..b0a9b5c 100644 --- a/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md +++ b/content/posts/automating-camera-notifications-home-assistant-ntfy/index.md @@ -6,7 +6,6 @@ description: "Using the power of Home Assistant automations and Ntfy push notifi featured: true alias: automating-security-camera-notifications-with-home-assistant-and-ntfy toc: true -comments: true thumbnail: thumbnail.png categories: Self-Hosting tags: diff --git a/content/posts/blocking-ai-crawlers/index.md b/content/posts/blocking-ai-crawlers/index.md index 71ecd84..1e9beb9 100644 --- a/content/posts/blocking-ai-crawlers/index.md +++ b/content/posts/blocking-ai-crawlers/index.md @@ -5,7 +5,6 @@ lastmod: "2024-04-14T02:21:57Z" description: "Using Hugo to politely ask AI bots to not steal my content - and then configuring Cloudflare's WAF to actively block them, just to be sure." featured: false toc: true -comments: true categories: Backstage tags: - cloud diff --git a/content/posts/deploy-hugo-neocities-github-actions/index.md b/content/posts/deploy-hugo-neocities-github-actions/index.md index a3fd1e4..7a6e24f 100644 --- a/content/posts/deploy-hugo-neocities-github-actions/index.md +++ b/content/posts/deploy-hugo-neocities-github-actions/index.md @@ -5,7 +5,6 @@ date: 2024-01-21 description: "Using GitHub Actions to automatically deploy a Hugo website to Neocities." featured: false toc: true -comments: true categories: Backstage tags: - cicd diff --git a/content/posts/display-tempest-weather-static-site/index.md b/content/posts/display-tempest-weather-static-site/index.md index 0d50e9b..dc7c1ce 100644 --- a/content/posts/display-tempest-weather-static-site/index.md +++ b/content/posts/display-tempest-weather-static-site/index.md @@ -6,7 +6,6 @@ description: "Using a GitHub Actions workflow to retrieve data from an authentic featured: false thumbnail: "finished-product.png" toc: true -comments: true categories: Backstage tags: - api diff --git a/content/posts/ditching-vsphere-for-proxmox/index.md b/content/posts/ditching-vsphere-for-proxmox/index.md index 0b5d2eb..d52577a 100644 --- a/content/posts/ditching-vsphere-for-proxmox/index.md +++ b/content/posts/ditching-vsphere-for-proxmox/index.md @@ -4,7 +4,6 @@ date: 2023-11-24 description: "I moved my homelab from VMware vSphere to Proxmox VE, and my only regret is that I didn't make this change sooner." featured: false toc: true -comments: true categories: Tips # Projects, Code tags: - homelab diff --git a/content/posts/dynamic-opengraph-images-with-hugo/index.md b/content/posts/dynamic-opengraph-images-with-hugo/index.md index f097c2d..f70f340 100644 --- a/content/posts/dynamic-opengraph-images-with-hugo/index.md +++ b/content/posts/dynamic-opengraph-images-with-hugo/index.md @@ -5,7 +5,6 @@ date: "2024-02-19T04:12:27Z" description: "Using Hugo built-in functions to dynamically generate OpenGraph share images for every post." featured: false toc: true -comments: true thumbnail: hugo-logo-wide.png categories: Backstage tags: diff --git a/content/posts/easy-push-notifications-with-ntfy/index.md b/content/posts/easy-push-notifications-with-ntfy/index.md index fb11bb9..81de62e 100644 --- a/content/posts/easy-push-notifications-with-ntfy/index.md +++ b/content/posts/easy-push-notifications-with-ntfy/index.md @@ -5,7 +5,6 @@ lastmod: 2023-12-22 description: "Deploying and configuring a self-hosted pub-sub notification handler, getting another server to send a notifcation when it boots, and integrating the notification handler into Home Assistant." featured: false toc: true -comments: true categories: Self-Hosting tags: - android diff --git a/content/posts/enable-fips-fix-aria-lifecycle/index.md b/content/posts/enable-fips-fix-aria-lifecycle/index.md index 0adcec9..912431f 100644 --- a/content/posts/enable-fips-fix-aria-lifecycle/index.md +++ b/content/posts/enable-fips-fix-aria-lifecycle/index.md @@ -4,7 +4,6 @@ date: 2024-01-19 # lastmod: 2024-01-19 description: "Never in my life have I seen enabling FIPS *fix* a problem - until now." featured: false -comments: true categories: VMware tags: - vmware diff --git a/content/posts/gemini-capsule-gempost-github-actions/index.md b/content/posts/gemini-capsule-gempost-github-actions/index.md index 647cc70..0cf715f 100644 --- a/content/posts/gemini-capsule-gempost-github-actions/index.md +++ b/content/posts/gemini-capsule-gempost-github-actions/index.md @@ -5,7 +5,6 @@ lastmod: "2024-04-05T21:07:38Z" description: "Deploying a Gemini capsule, powered by Agate, gempost, kineto, Tailscale, and GitHub Actions" featured: false toc: true -comments: true categories: Self-Hosting tags: - caddy diff --git a/content/posts/prettify-hugo-rss-feed-xslt/index.md b/content/posts/prettify-hugo-rss-feed-xslt/index.md index e7eafc2..3667692 100644 --- a/content/posts/prettify-hugo-rss-feed-xslt/index.md +++ b/content/posts/prettify-hugo-rss-feed-xslt/index.md @@ -1,11 +1,11 @@ --- title: "Prettify Hugo RSS Feeds with XSLT" date: 2024-04-30 +lastmod: "2024-05-30" description: "Making my Hugo-generated RSS XML look as good to human visitors as it does to feed readers." featured: false thumbnail: pretty-feed.png toc: true -comments: true categories: Backstage tags: - hugo @@ -96,7 +96,7 @@ All I really need to do to get this XML ready to be styled is just link in a sty {{- $pages = $pages | first $limit -}} {{- end -}} {{- printf "" | safeHTML }} -{{ printf "" | safeHTML }} +{{ printf "" | safeHTML }} " | safeHTML }} -{{ printf "" | safeHTML }} +{{ printf "" | safeHTML }} mailto:blog@runtimeterror.dev?subject={{ urlquery $subject | replaceRE `\+` "%20" }} 📧 Reply via email +{{ $subject := urlquery $subject | replaceRE `\+` "%20" }} +{{ $path := .Page.RelPermalink | path.Dir -}} +{{ $path := strings.Trim $path "/" -}} +{{ $address := printf "blogreply.%s@%s" $path "runtimeterror.dev" -}} + +=> mailto:{{ $address }}?subject={{ $subject }} 📧 Reply by email {{ $related := first 3 (where (where .Site.RegularPages.ByDate.Reverse ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }} {{ if $related }} ## Related articles diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 57a627c..cc059bc 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -33,36 +33,23 @@
{{ .Content }}
- - {{- $showComments := true }} - {{- if eq .Site.Params.comments false }} - {{- $showComments = false }} - {{- else if eq .Params.comments false }} - {{- $showComments = false }} + {{- $reply := true }} + {{- if eq .Site.Params.reply false }} + {{- $reply = false }} + {{- else if eq .Params.reply false }} + {{- $reply = false }} {{- end }} - {{- if ne $showComments false }} + {{- if or (eq $reply true) (eq .Site.Params.analytics "true") }}
- {{- $showKudos := true }} - {{- if eq .Site.Params.kudos false }} - {{- $showKudos = false }} - {{- else if eq .Params.kudos false }} - {{- $showKudos = false }} - {{- end }} - {{- if and (eq .Site.Params.analytics true) (ne $showKudos false) }} + {{- if eq .Site.Params.analytics true }} {{- end }} - {{- $emailReplies := true }} - {{- if eq .Site.Params.emailReplies false }} - {{- $emailReplies = false }} - {{- else if eq .Params.emailReplies false }} - {{- $emailReplies = false }} + {{- if (eq $reply true) }} + {{- $path := .Page.RelPermalink | path.Dir }} + {{- $path := strings.Trim $path "/" }} + {{- $address := printf "blogreply.%s@%s" $path "runtimeterror.dev" }} + 📧 Reply by email {{- end }} - {{- if and (eq .Site.Params.comments true) (ne $emailReplies false) }} - 📧 Reply by email - {{- end }} -
Comments - {{- partial "comments" . }} -
{{- end }} -
+
{{ end }} diff --git a/layouts/partials/about.html b/layouts/partials/about.html index 346de25..2435847 100644 --- a/layouts/partials/about.html +++ b/layouts/partials/about.html @@ -10,7 +10,7 @@ diff --git a/layouts/partials/archive.html b/layouts/partials/archive.html index b6d6ee0..27017fa 100644 --- a/layouts/partials/archive.html +++ b/layouts/partials/archive.html @@ -6,8 +6,13 @@ {{ if .IsHome }}

{{ site.Params.indexTitle | markdownify }}

{{ else }} -

{{ .Title | markdownify }}{{ if eq .Kind "term" }}  

- {{ with .Description }}{{ . }}
{{ else }}
{{ end }} + {{ if eq .Title "slashes" }} +

/slashes

+ My collection of slashpages.
+ {{ else }} +

{{ .Title | markdownify }}{{ if eq .Kind "term" }}  

+ {{ with .Description }}{{ . }}
{{ else }}
{{ end }} + {{ end }} {{ end }}{{ end }} {{ .Content }} @@ -43,7 +48,26 @@ {{ end }} {{- end }} {{- else }} - {{- range (.Paginate $pages).Pages }} + {{- if eq .Title "slashes" }} + {{- $sortedSlashes := sort $pages "Title" }} + {{- range $sortedSlashes }} + {{- $postDate := .Date.Format "2006-01-02" }} + {{- $updateDate := .Lastmod.Format "2006-01-02" }} +
+
+

{{ .Title | markdownify }}

+ +
+
+ {{ .Description }} +
+
+
+ {{- end }} + {{- else }} + {{- range (.Paginate $pages).Pages }} {{- $postDate := .Date.Format "2006-01-02" }} {{- $updateDate := .Lastmod.Format "2006-01-02" }}
@@ -54,10 +78,11 @@

- {{ .Summary }} + {{if .Description }}{{ .Description }}{{ else }}{{ .Summary }}{{ end }}

+ {{- end }} + {{- template "_internal/pagination.html" . }} {{- end }} - {{- template "_internal/pagination.html" . }} {{- end }} \ No newline at end of file diff --git a/layouts/partials/aside.html b/layouts/partials/aside.html index 934ef3b..912b21d 100644 --- a/layouts/partials/aside.html +++ b/layouts/partials/aside.html @@ -10,7 +10,18 @@ {{ if isset .Params "categories" }} {{$related := where .Site.RegularPages ".Params.categories" "eq" .Params.categories }} {{- $relatedLimit := default 8 .Site.Params.numberOfRelatedPosts }} +{{ if eq .Params.categories "slashes" }}

More {{ .Params.categories }}

+{{ $sortedPosts := sort $related "Title" }} + +{{ else }} +

More /slashes

+{{ end }}
{{ end }} diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html deleted file mode 100644 index a8fbe4a..0000000 --- a/layouts/partials/comments.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ if isset site.Params "giscusrepo" }} -
- -
-{{ end }} \ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index d5cea51..9586c47 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,6 +1,5 @@ -{{- partial "lang.html" . -}} -

{"powered_by": [{{- range $i, $link := .Site.Params.powerLinks }}{{ if $i }}, {{ end }}"{{ $link.title }}"{{ end }}]} +

diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..7bf4fcf --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,10 @@ + + diff --git a/static/css/custom.css b/static/css/custom.css index 6172d6b..dfd1a63 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -12,7 +12,6 @@ font-display: fallback; src: local('Berkeley Mono'), url('https://cdn.runtimeterror.dev/fonts/BerkeleyMono-Regular.woff2') format('woff2'), - url('https://cdn.runtimeterror.dev/fonts/BerkeleyMono-Regular.woff') format('woff') } /* override page max-width */ @@ -36,18 +35,18 @@ line-height: 1.3rem; } -.powered_by { +.footer_links { font-size: 12px; line-height: 1.1rem; color: var(--muted); } -.powered_by a:link, .powered_by a:visited { +.footer_links a:link, .footer_links a:visited { color: var(--off-fg); text-decoration: none; } -.powered_by a:hover { +.footer_links a:hover { color: var(--hover); text-decoration: underline; } @@ -393,15 +392,13 @@ hr { margin-top: 1.5rem; } -/* summary styling */ -details { - cursor: pointer; +/* no extra space for paragraphs with lists */ +p:not(:has(+ ol)), +p:not(:has(+ ul)) { + margin-bottom: 1.5em; } -details.comments_widget summary::before { - content: 'Load '; +p:has(+ ol), +p:has(+ ul) { + margin-bottom: 0; } - -details[open].comments_widget summary::before { - content: 'Hide '; -} \ No newline at end of file diff --git a/static/xml/feed.xsl b/static/xml/feed.xsl index b45438f..d51a25c 100644 --- a/static/xml/feed.xsl +++ b/static/xml/feed.xsl @@ -8,7 +8,7 @@ <xsl:value-of select="rss/channel/title"/> (RSS) - +