mirror of
https://github.com/jbowdre/runtimeterror.git
synced 2024-11-25 08:22:19 +00:00
Merge branch 'main' into drafts
This commit is contained in:
commit
d8a9f804bb
8 changed files with 45 additions and 32 deletions
25
.github/workflows/deploy-preview.yml
vendored
25
.github/workflows/deploy-preview.yml
vendored
|
@ -1,10 +1,11 @@
|
||||||
name: Deploy Preview to Neocities
|
name: Build and Deploy Preview
|
||||||
|
|
||||||
# only run on changes to preview
|
# only run on changes to preview
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- preview
|
- preview
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency: # prevent concurrent deploys doing strange things
|
concurrency: # prevent concurrent deploys doing strange things
|
||||||
group: deploy-preview
|
group: deploy-preview
|
||||||
|
@ -42,16 +43,20 @@ jobs:
|
||||||
chmod 644 ~/.ssh/known_hosts
|
chmod 644 ~/.ssh/known_hosts
|
||||||
- name: Build with Hugo
|
- name: Build with Hugo
|
||||||
run: HUGO_REMOTE_FONT_PATH=${{ secrets.REMOTE_FONT_PATH }} hugo --minify --environment preview
|
run: HUGO_REMOTE_FONT_PATH=${{ secrets.REMOTE_FONT_PATH }} hugo --minify --environment preview
|
||||||
- name: Insert 404 page
|
|
||||||
run: |
|
|
||||||
cp public/404/index.html public/not_found.html
|
|
||||||
- name: Highlight with Torchlight
|
- name: Highlight with Torchlight
|
||||||
run: |
|
run: |
|
||||||
npm i @torchlight-api/torchlight-cli
|
npm i @torchlight-api/torchlight-cli
|
||||||
npx torchlight
|
TORCHLIGHT_TOKEN=${{ secrets.TORCHLIGHT_TOKEN }} npx torchlight
|
||||||
- name: Deploy to Neocities
|
- name: Deploy to Bunny
|
||||||
uses: bcomnes/deploy-to-neocities@v1
|
uses: ayeressian/bunnycdn-storage-deploy@v2.2.2
|
||||||
with:
|
with:
|
||||||
api_token: ${{ secrets.NEOCITIES_PREVIEW_API_TOKEN }}
|
source: public
|
||||||
cleanup: true
|
destination: /
|
||||||
dist_dir: public
|
storageZoneName: "${{ secrets.BUNNY_STORAGE_NAME_PREVIEW }}"
|
||||||
|
storagePassword: "${{ secrets.BUNNY_STORAGE_PASSWORD_PREVIEW }}"
|
||||||
|
storageEndpoint: "${{ secrets.BUNNY_STORAGE_ENDPOINT }}"
|
||||||
|
accessKey: "${{ secrets.BUNNY_API_KEY }}"
|
||||||
|
pullZoneId: "${{ secrets.BUNNY_ZONE_ID_PREVIEW }}"
|
||||||
|
upload: "true"
|
||||||
|
remove: "true"
|
||||||
|
purgePullZone: "true"
|
24
.github/workflows/deploy-prod.yml
vendored
24
.github/workflows/deploy-prod.yml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: Deploy to Production
|
name: Build and Deploy Prod
|
||||||
|
|
||||||
# only run on changes to main
|
# only run on changes to main
|
||||||
on:
|
on:
|
||||||
|
@ -45,19 +45,23 @@ jobs:
|
||||||
chmod 644 ~/.ssh/known_hosts
|
chmod 644 ~/.ssh/known_hosts
|
||||||
- name: Build with Hugo
|
- name: Build with Hugo
|
||||||
run: HUGO_REMOTE_FONT_PATH=${{ secrets.REMOTE_FONT_PATH }} hugo --minify
|
run: HUGO_REMOTE_FONT_PATH=${{ secrets.REMOTE_FONT_PATH }} hugo --minify
|
||||||
- name: Insert 404 page
|
|
||||||
run: |
|
|
||||||
cp public/404/index.html public/not_found.html
|
|
||||||
- name: Highlight with Torchlight
|
- name: Highlight with Torchlight
|
||||||
run: |
|
run: |
|
||||||
npm i @torchlight-api/torchlight-cli
|
npm i @torchlight-api/torchlight-cli
|
||||||
npx torchlight
|
TORCHLIGHT_TOKEN=${{ secrets.TORCHLIGHT_TOKEN }} npx torchlight
|
||||||
- name: Deploy HTML to Neocities
|
- name: Deploy to Bunny
|
||||||
uses: bcomnes/deploy-to-neocities@v1
|
uses: ayeressian/bunnycdn-storage-deploy@v2.2.2
|
||||||
with:
|
with:
|
||||||
api_token: ${{ secrets.NEOCITIES_API_TOKEN }}
|
source: public
|
||||||
cleanup: true
|
destination: /
|
||||||
dist_dir: public
|
storageZoneName: "${{ secrets.BUNNY_STORAGE_NAME }}"
|
||||||
|
storagePassword: "${{ secrets.BUNNY_STORAGE_PASSWORD }}"
|
||||||
|
storageEndpoint: "${{ secrets.BUNNY_STORAGE_ENDPOINT }}"
|
||||||
|
accessKey: "${{ secrets.BUNNY_API_KEY }}"
|
||||||
|
pullZoneId: "${{ secrets.BUNNY_ZONE_ID }}"
|
||||||
|
upload: "true"
|
||||||
|
remove: "true"
|
||||||
|
purgePullZone: "true"
|
||||||
- name: Deploy GMI to Agate
|
- name: Deploy GMI to Agate
|
||||||
run: |
|
run: |
|
||||||
rsync -avz --delete --exclude='*.html' --exclude='*.css' --exclude='*.js' -e ssh public/ deploy@${{ secrets.GMI_HOST }}:${{ secrets.GMI_CONTENT_PATH }}
|
rsync -avz --delete --exclude='*.html' --exclude='*.css' --exclude='*.js' -e ssh public/ deploy@${{ secrets.GMI_HOST }}:${{ secrets.GMI_CONTENT_PATH }}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
baseURL = "https://preview--runtimeterror.neocities.org/"
|
baseURL = "https://preview.runtimeterror.dev/"
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "/changelog"
|
title: "/changelog"
|
||||||
date: "2024-05-26T21:19:08Z"
|
date: "2024-05-26T21:19:08Z"
|
||||||
lastmod: "2024-05-30"
|
lastmod: "2024-06-06"
|
||||||
description: "Maybe I should keep a log of all my site-related tinkering?"
|
description: "Maybe I should keep a log of all my site-related tinkering?"
|
||||||
featured: false
|
featured: false
|
||||||
toc: false
|
toc: false
|
||||||
|
@ -10,6 +10,9 @@ categories: slashes
|
||||||
---
|
---
|
||||||
*High-level list of config/layout changes to the site.*
|
*High-level list of config/layout changes to the site.*
|
||||||
|
|
||||||
|
**2024-06-06:**
|
||||||
|
- Migrate hosting from Neocities to Bunny CDN
|
||||||
|
|
||||||
**2024-05-30:**
|
**2024-05-30:**
|
||||||
- Fix broken styling for taxonomy (categories/tags) feeds
|
- Fix broken styling for taxonomy (categories/tags) feeds
|
||||||
- Open "notes" header link in new tab since it's an external link
|
- Open "notes" header link in new tab since it's an external link
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "/colophon"
|
title: "/colophon"
|
||||||
date: "2024-05-26T22:30:58Z"
|
date: "2024-05-26T22:30:58Z"
|
||||||
lastmod: "2024-05-28"
|
lastmod: "2024-06-06"
|
||||||
description: "There's a lot that goes into this site. Let me tell you how it works."
|
description: "There's a lot that goes into this site. Let me tell you how it works."
|
||||||
featured: false
|
featured: false
|
||||||
toc: true
|
toc: true
|
||||||
|
@ -16,8 +16,8 @@ categories: slashes
|
||||||
- performs syntax highlighting with [Torchlight](https://torchlight.dev) ([details](/spotlight-on-torchlight/)).
|
- 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/).
|
- 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.
|
- leverages [tinylytics](https://tinylytics.app/) for privacy-friendly analytics and cute kudos buttons.
|
||||||
- uses [bunny.net](https://bunny.net) for DNS and CDN services.
|
- resolves via [Bunny DNS](https://bunny.net/dns/).
|
||||||
- is published to / hosted by [Neocities](https://neocities.org) with a GitHub Actions workflow ([details](/deploy-hugo-neocities-github-actions/)).
|
- is published to / hosted by [Bunny CND](https://bunny.net/cdn/) with a GitHub Actions workflow.
|
||||||
- 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).
|
- 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).
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Prettify Hugo RSS Feeds with XSLT"
|
title: "Prettify Hugo RSS Feeds with XSLT"
|
||||||
date: 2024-04-30
|
date: 2024-04-30
|
||||||
lastmod: "2024-05-30"
|
lastmod: "2024-06-05"
|
||||||
description: "Making my Hugo-generated RSS XML look as good to human visitors as it does to feed readers."
|
description: "Making my Hugo-generated RSS XML look as good to human visitors as it does to feed readers."
|
||||||
featured: false
|
featured: false
|
||||||
thumbnail: pretty-feed.png
|
thumbnail: pretty-feed.png
|
||||||
|
@ -180,7 +180,7 @@ That's getting there:
|
||||||
|
|
||||||
![A darker styled RSS page](getting-there-feed.png)
|
![A darker styled RSS page](getting-there-feed.png)
|
||||||
|
|
||||||
Including those CSS styles means that the rendered page now uses my color palette and the [font I worked so hard to integrate](/using-custom-font-hugo/). I'm just going to make a few more tweaks to change some of the formatting, put the `New to feeds?` bit on its own line, and point to my [self-hosted instance of the SearXNG metasearch engine](https://scribbles.jbowdre.lol/post/self-hosting-a-search-engine-iyjdlk6y) instead of DDG.
|
Including those CSS styles means that the rendered page now uses my color palette and the [font I worked so hard to integrate](/using-custom-font-hugo/). I'm just going to make a few more tweaks to change some of the formatting, put the `New to feeds?` bit on its own line, and point to [Mojeek](https://mojeek.com) instead of DDG ([why?](https://scribbles.jbowdre.lol/post/a-comprehensive-evaluation-of-various-search-engines-i-ve-used)).
|
||||||
|
|
||||||
Here's my final (for now) `static/xml/feed.xsl` file:
|
Here's my final (for now) `static/xml/feed.xsl` file:
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ Here's my final (for now) `static/xml/feed.xsl` file:
|
||||||
<body>
|
<body>
|
||||||
<h1><xsl:value-of select="rss/channel/title"/> (RSS)</h1>
|
<h1><xsl:value-of select="rss/channel/title"/> (RSS)</h1>
|
||||||
<p>This is an <abbr title="Really Simple Syndication">RSS</abbr> feed. To subscribe to it, copy its address and paste it when your feed reader asks for it. It will be updated periodically in your reader.</p>
|
<p>This is an <abbr title="Really Simple Syndication">RSS</abbr> feed. To subscribe to it, copy its address and paste it when your feed reader asks for it. It will be updated periodically in your reader.</p>
|
||||||
<p>New to feeds? <a href="https://grep.vpota.to/search?q=how+to+get+started+with+rss+feeds" title="Search on the web to learn more">Learn more</a>.</p>
|
<p>New to feeds? <a href="https://www.mojeek.com/search?q=how+to+get+started+with+rss+feeds" title="Search on the web to learn more">Learn more</a>.</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="address">RSS address:</label>
|
<label for="address">RSS address:</label>
|
||||||
<input><xsl:attribute name="type">url</xsl:attribute><xsl:attribute name="id">address</xsl:attribute><xsl:attribute name="spellcheck">false</xsl:attribute><xsl:attribute name="value"><xsl:value-of select="rss/channel/atom:link[@rel='self']/@href"/></xsl:attribute></input>
|
<input><xsl:attribute name="type">url</xsl:attribute><xsl:attribute name="id">address</xsl:attribute><xsl:attribute name="spellcheck">false</xsl:attribute><xsl:attribute name="value"><xsl:value-of select="rss/channel/atom:link[@rel='self']/@href"/></xsl:attribute></input>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "/uses"
|
title: "/uses"
|
||||||
date: "2024-05-29"
|
date: "2024-05-29"
|
||||||
# lastmod: {{ .Date | time.Format "2006-01-02" }}
|
lastmod: "2024-06-02"
|
||||||
description: "The hardware, software, services, and gear which I use (almost) daily."
|
description: "The hardware, software, services, and gear which I use (almost) daily."
|
||||||
toc: true
|
toc: true
|
||||||
timeless: true
|
timeless: true
|
||||||
|
@ -18,7 +18,7 @@ categories: slashes
|
||||||
- **[Weatherflow Tempest Weather Station](https://shop.tempest.earth/products/tempest)** to help me get my Wx nerd on.
|
- **[Weatherflow Tempest Weather Station](https://shop.tempest.earth/products/tempest)** to help me get my Wx nerd on.
|
||||||
|
|
||||||
### Everyday Carry
|
### Everyday Carry
|
||||||
*What has it got in its pockets/backpack?*
|
*What has it got in its pocketses?*
|
||||||
- **[Flipper Zero](https://flipperzero.one/)** running [Momentum Firmware](https://momentum-fw.dev/) in my pocket or bag for on-the-go hacking and exploration.
|
- **[Flipper Zero](https://flipperzero.one/)** running [Momentum Firmware](https://momentum-fw.dev/) in my pocket or bag for on-the-go hacking and exploration.
|
||||||
- **[Leatherman FREE K4](https://www.leatherman.com/free-k4-590.html)** knife/multitool in my pocket for cutting and tinkering.
|
- **[Leatherman FREE K4](https://www.leatherman.com/free-k4-590.html)** knife/multitool in my pocket for cutting and tinkering.
|
||||||
- **[Milky lactase tablets](https://shopmilky.com/)** in my wallet so I can enjoy dairy without consequences.
|
- **[Milky lactase tablets](https://shopmilky.com/)** in my wallet so I can enjoy dairy without consequences.
|
||||||
|
@ -28,7 +28,8 @@ categories: slashes
|
||||||
- **[Pixel Watch 2](https://store.google.com/product/pixel_watch_2)** on my wrist, for notifications and fitness tracking.
|
- **[Pixel Watch 2](https://store.google.com/product/pixel_watch_2)** on my wrist, for notifications and fitness tracking.
|
||||||
- **[ProxGrind RF Field Detector Card](https://www.redteamtools.com/RFID_LF_HF_Field_Detector_Card)** on my keychain to quickly learn about RFID/NFC readers.
|
- **[ProxGrind RF Field Detector Card](https://www.redteamtools.com/RFID_LF_HF_Field_Detector_Card)** on my keychain to quickly learn about RFID/NFC readers.
|
||||||
- **[Ridge Wallet](https://ridge.com/products/aluminum-gunmetal)** in my pocket for keeping my cards handy.
|
- **[Ridge Wallet](https://ridge.com/products/aluminum-gunmetal)** in my pocket for keeping my cards handy.
|
||||||
- **[Ti EDC Backpack](https://bigidesign.com/pages/ti-edc-backpack-landing-page)** for carrying my stuff.
|
- **[RovyVon Aurora A7 EDC Flashlight](https://www.rovyvon.com/collections/aurora-keychain-flashlights/products/aurora-a7-usb-c-gitd-sky-blue-keychain-flashlight-4th-generation)** in my pocket for keeping the darkness at bay.
|
||||||
|
- **[Ti EDC Backpack](https://bigidesign.com/pages/ti-edc-backpack-landing-page)** for carrying my stuff, and keeping it organized while in transit.
|
||||||
- **[Yubico Yubikey 5C NFC](https://www.yubico.com/product/yubikey-5c-nfc/)** on my keychain for hardware token things.
|
- **[Yubico Yubikey 5C NFC](https://www.yubico.com/product/yubikey-5c-nfc/)** on my keychain for hardware token things.
|
||||||
|
|
||||||
### Software
|
### Software
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<body>
|
<body>
|
||||||
<h1><xsl:value-of select="rss/channel/title"/> (RSS)</h1>
|
<h1><xsl:value-of select="rss/channel/title"/> (RSS)</h1>
|
||||||
<p>This is an <abbr title="Really Simple Syndication">RSS</abbr> feed. To subscribe to it, copy its address and paste it when your feed reader asks for it. It will be updated periodically in your reader.</p>
|
<p>This is an <abbr title="Really Simple Syndication">RSS</abbr> feed. To subscribe to it, copy its address and paste it when your feed reader asks for it. It will be updated periodically in your reader.</p>
|
||||||
<p>New to feeds? <a href="https://grep.vpota.to/search?q=how+to+get+started+with+rss+feeds" title="Search on the web to learn more">Learn more</a>.</p>
|
<p>New to feeds? <a href="https://www.mojeek.com/search?q=how+to+get+started+with+rss+feeds" title="Search on the web to learn more">Learn more</a>.</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="address">RSS address:</label>
|
<label for="address">RSS address:</label>
|
||||||
<input><xsl:attribute name="type">url</xsl:attribute><xsl:attribute name="id">address</xsl:attribute><xsl:attribute name="spellcheck">false</xsl:attribute><xsl:attribute name="value"><xsl:value-of select="rss/channel/atom:link[@rel='self']/@href"/></xsl:attribute></input>
|
<input><xsl:attribute name="type">url</xsl:attribute><xsl:attribute name="id">address</xsl:attribute><xsl:attribute name="spellcheck">false</xsl:attribute><xsl:attribute name="value"><xsl:value-of select="rss/channel/atom:link[@rel='self']/@href"/></xsl:attribute></input>
|
||||||
|
|
Loading…
Reference in a new issue