1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-09-19 20:02:10 +00:00
No description
Find a file
2023-11-24 21:04:41 -08:00
archetypes Archetypes and automation for composing notes 2022-06-02 22:03:23 -07:00
assets remove some redundant/unnecessary CSS rules 2023-11-17 16:02:23 -08:00
content Remove cringe-ass opening to gnu/linux article 2023-11-24 21:00:04 -08:00
csv Yesterweb webring shut down :( 2023-11-14 16:59:45 -08:00
data Fix: fetch webmention json only once 2022-12-24 08:26:31 -08:00
dynamic Reduce unnecessary whitespace 2022-06-08 17:30:15 -07:00
layouts Continue my online preferred-name transition 2023-11-24 12:57:18 -08:00
linter-configs Update Webhint configs 2023-11-23 18:40:01 -08:00
scripts Fix perms 2023-11-24 21:04:41 -08:00
static add linkhut social profile 2023-11-17 21:00:16 -08:00
.achecker.yml Moar site testing 2022-07-17 20:01:54 -07:00
.build.yml Fix perms 2023-11-24 21:04:41 -08:00
.gitignore Fix: fetch webmention json only once 2022-12-24 08:26:31 -08:00
.rsyncignore More .well-known stuff 2022-09-25 13:51:35 -07:00
config.toml Continue transitioning from real name to handle 2023-11-14 23:22:10 -08:00
LICENSE License: Update CC license to CC BY-SA 4.0 2021-06-15 13:14:45 -07:00
Makefile Move some CI logic to scripts/makefile 2023-11-24 13:02:52 -08:00
Makefile.online Update Webhint configs 2023-11-23 18:40:01 -08:00
package.json Moar site testing 2022-07-17 20:01:54 -07:00
README.md Clarify forge backend 2023-11-17 04:33:58 -08:00

seirdy.one

builds.sr.ht status

Code for my personal website, seirdy.one. Built with Hugo.

Also builds my Gemini capsule: gemini://seirdy.one/.

I document my site design standards on my website.

Repository mirroring

This repository is pushed to the following forges:

Dependencies

Build-time dependencies

  • Hugo. I usually use the most recent version of Hugo at the time of publishing, but it should work with any version of Hugo v0.116.0 or later (v0.116.0 had an improvement to where that I might use).
  • bmake or GNU Make. OpenBSD make (omake) should work too, but I haven't tested it.
  • Git (Hugo uses Git info for features like date last updated)
  • curl, for fetching some webring code and all my webmentions. this requires authentication. When running locally, it invokes pash, my password manager; when running in CI, it reads a file for a secret. You may have to modify scripts/get-webmentions.sh to avoid this.
  • POSIX utilities: grep, find, sed, POSIX-compliant /bin/sh, etc. Tested to work with Busybox and GNU Coreutils.

Before deploying, I use some tools for post-processing:

I also apply static compression at max levels, using the following tools:

  • Efficient Compression Tool It's like zopfli but more efficient and faster. If you don't have it installed, it should be trivial to edit scripts/compress.sh to replace ect with gzip or zopfli.
  • Brotli

I package all build-time dependencies except curl as statically-linked binaries in a tarball, available at https://seirdy.one/pb/binaries.tar.gz.

Other dependencies

To deploy, I use rsync with SSH and zstd support.

Further tasks also use additional command-line utilities such as sd, htmlq, and a version of xargs that supports the -P flag (nearly all versions of xargs do, but it's not POSIX). I run all npm packages using pnpm -s dlx (similar to npx).

To lint:

  • Stylelint
  • html-validate
  • A very recent build of the W3C's Nu HTML checker to validate the HTML and XHTML, available on your $PATH as vnu. I have a very simple shell-script wrapper for this that invokes java -jar.
  • jq, to filter false-positives from the Nu HTML checker and to verify that JSON files parse.
  • HTMLProofer, version 5 or later. Requires Ruby.

More in-depth local tests:

  • Axe-Core, using the CLI and a headless browser (Firefox or Chromium).
  • IBM Equal Access Checker, using the CLI and a headless Chromium. Runs on a patched version of the site with a modified stylesheet due to a bug (reported upstream).

Remote tests:

  • Lighthouse
  • WebHint (might not pass; only informative)
  • Feed validator (requires Python)

Build instructions

  • To just build the HTML: make hugo
  • To build the polygot formatted HTML and XHTML: make hugo xhtmlize
  • To lint and validate: make hugo xhtmlize lint-local
  • To build everything and compress: make hugo xhtmlize compress copy-to-xhtml
  • To deploy the clearnet site and corresponding Tor hidden service: make deploy-prod deploy-onion.

lint-local and deployment tasks support limited parallelization with -j.