diff --git a/.github/workflows/bundler-update.yaml b/.github/workflows/bundler-update.yaml
index ea00d27..24c5bc1 100644
--- a/.github/workflows/bundler-update.yaml
+++ b/.github/workflows/bundler-update.yaml
@@ -20,7 +20,7 @@ jobs:
- name: Update Gem lock file
run: nix develop --command bundle update
- name: Update the hashes in the gemset.nix file
- run: nix develop --command bundix
+ run: nix develop --command bundix --lock
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
diff --git a/.github/workflows/flake-lock-updater.yaml b/.github/workflows/flake-lock-updater.yaml
index 694b9e8..0db8c5c 100644
--- a/.github/workflows/flake-lock-updater.yaml
+++ b/.github/workflows/flake-lock-updater.yaml
@@ -3,7 +3,7 @@ name: Flake ❄️ Lock 🔒️ Updater ✨
"on":
schedule:
# Pi o'clock
- - cron: '3 14 * * 1,5'
+ - cron: "3 14 * * 1,5"
workflow_dispatch:
jobs:
diff --git a/.github/workflows/link-checker.yaml b/.github/workflows/link-checker.yaml
new file mode 100644
index 0000000..0b68c3e
--- /dev/null
+++ b/.github/workflows/link-checker.yaml
@@ -0,0 +1,34 @@
+name: Check URLs with Lychee
+
+"on":
+ pull_request:
+ branches: [main]
+ push:
+ branches: [main]
+ schedule:
+ # Run once a month on the 14th.
+ - cron: "0 0 14 * *"
+ workflow_dispatch:
+
+jobs:
+ link-checker:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Restore lychee cache
+ uses: actions/cache@v4
+ with:
+ path: .lycheecache
+ key: cache-lychee-${{ github.sha }}
+ restore-keys: cache-lychee-
+ - uses: actions/checkout@v4
+ - uses: DeterminateSystems/nix-installer-action@v14
+ - uses: DeterminateSystems/magic-nix-cache-action@v8
+ # todo Cache bundler stuff?
+ - name: Build with Jekyll
+ run: nix build
+ - name: Convert the README files to html
+ run: nix develop --command asciidoctor {CODE_OF_CONDUCT,LICENSE,README}.adoc
+ - name: Run lychee on the generated site
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: nix develop --command lychee --cache --no-progress --verbose result/srv/ ./*.html
diff --git a/.gitignore b/.gitignore
index d0cf0ee..3f20b22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -75,3 +75,11 @@ result
# git-hooks.nix
/.pre-commit-config.yaml
+
+# lychee
+.lycheecache
+
+# Asciidoctor
+CODE_OF_CONDUCT.html
+LICENSE.html
+README.html
diff --git a/.ignore b/.ignore
deleted file mode 100644
index 88cc107..0000000
--- a/.ignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.jpg
-*.png
diff --git a/.justfile b/.justfile
index e923eab..aec2016 100644
--- a/.justfile
+++ b/.justfile
@@ -1,16 +1,18 @@
default: serve
+alias c := check
+
+check: build
+ yamllint .
+ asciidoctor {CODE_OF_CONDUCT,LICENSE,README}.adoc
+ lychee --cache _site/ *.html
+
alias f := format
alias fmt := format
format:
treefmt
-alias l := lint
-
-lint:
- yamllint .
-
alias b := build
build:
@@ -34,5 +36,5 @@ update: && build test
nu update-nixos-release.nu
nix flake update
bundle update
- bundix
+ bundix --lock
nu update-nix-direnv.nu
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index c7cecc9..6ed7eb4 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -6,6 +6,7 @@
"bbenoist.nix",
"thenuprojectcontributors.vscode-nushell-lang",
"nefrob.vscode-just-syntax",
- "tekumara.typos-vscode"
+ "tekumara.typos-vscode",
+ "jnoortheen.nix-ide"
]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 073d68d..a45313e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,5 @@
{
- "files.associations": {
- "*.html": "liquid"
- },
+ "asciidoc.antora.enableAntoraSupport": false,
"cSpell.words": [
"accountsservices",
"adoc",
@@ -282,5 +280,9 @@
"zstd",
"ZSYS"
],
- "asciidoc.antora.enableAntoraSupport": false
+ "files.associations": {
+ "*.html": "liquid"
+ },
+ "nix.enableLanguageServer": true,
+ "nix.serverPath": "nil"
}
diff --git a/.yamllint.yaml b/.yamllint.yaml
index 38c68ba..8658d92 100644
--- a/.yamllint.yaml
+++ b/.yamllint.yaml
@@ -3,3 +3,5 @@ extends: default
rules:
document-start: disable
line-length: disable
+ comments:
+ min-spaces-from-content: 1
diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc
index 28a180a..18590a7 100644
--- a/CODE_OF_CONDUCT.adoc
+++ b/CODE_OF_CONDUCT.adoc
@@ -75,11 +75,11 @@ Violating these terms may lead to a permanent ban.
== Attribution
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct/.
-Community Impact Guidelines were inspired by https://github.com/mozilla/diversity[Mozilla's code of conduct enforcement ladder].
+Community Impact Guidelines were inspired by https://github.com/mozilla/inclusion[Mozilla's code of conduct enforcement ladder].
[homepage]: https://www.contributor-covenant.org
-For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq.
-Translations are available at https://www.contributor-covenant.org/translations.
+For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq/.
+Translations are available at https://www.contributor-covenant.org/translations/.
diff --git a/Gemfile b/Gemfile
index 85cda4d..a5d3dd9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -18,4 +18,4 @@ group :jekyll_plugins do
gem 'jekyll-include-cache'
end
-gem "webrick", "~> 1.7"
+gem "webrick"
diff --git a/Gemfile.lock b/Gemfile.lock
index 426170e..76ffc82 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -128,7 +128,7 @@ DEPENDENCIES
kramdown (>= 2.3.0)
minimal-mistakes-jekyll
rouge
- webrick (~> 1.7)
+ webrick
BUNDLED WITH
- 2.5.16
+ 2.5.9
diff --git a/LICENSE.adoc b/LICENSE.adoc
index f58ff0b..74accaf 100644
--- a/LICENSE.adoc
+++ b/LICENSE.adoc
@@ -1,7 +1,7 @@
= GNU General Public License
_Version 3, 29 June 2007_
-_Copyright © 2007 Free Software Foundation, Inc. <>_
+_Copyright © 2007 Free Software Foundation, Inc. _
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
@@ -584,11 +584,11 @@ for a GUI interface, you would use an “about box”.
You should also get your employer (if you work as a programmer) or school, if any, to
sign a “copyright disclaimer” for the program, if necessary. For more
information on this, and how to apply and follow the GNU GPL, see
-<>.
+.
The GNU General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may consider it
more useful to permit linking proprietary applications with the library. If this is
what you want to do, use the GNU Lesser General Public License instead of this
License. But first, please read
-<>.
+.
diff --git a/README.adoc b/README.adoc
index 90989b7..a442241 100644
--- a/README.adoc
+++ b/README.adoc
@@ -148,7 +148,7 @@ Several of these projects are enumerated below.
* https://jekyllrb.com/[Jekyll]
* https://github.com/asciidoctor/jekyll-asciidoc[jekyll-asciidoc]
* https://mmistakes.github.io/minimal-mistakes/[Minimal Mistakes]
-* https://rouge.jneen.net/[Rouge]
+* https://rouge.jneen.net[Rouge]
* https://www.ruby-lang.org/en/[Ruby]
== Code of Conduct
diff --git a/_config.yml b/_config.yml
index 4a9acab..4990d5e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -32,8 +32,7 @@ name: >-
Jordan Williams
-
JWillikers by
+
JWillikers by
Jordan Williams
is licensed under a
@@ -174,6 +173,7 @@ exclude:
- Gemfile.lock
- gemset.nix
- Rakefile
+ - result/
- vendor/bundle/
- vendor/cache/
- vendor/gems/
diff --git a/_drafts/Automount an Encrypted Volume as a Regular Old User.adoc b/_drafts/Automount an Encrypted Volume as a Regular Old User.adoc
index 7b95cca..bef57fe 100644
--- a/_drafts/Automount an Encrypted Volume as a Regular Old User.adoc
+++ b/_drafts/Automount an Encrypted Volume as a Regular Old User.adoc
@@ -2,7 +2,7 @@
:page-layout:
:page-category: Data Storage
:page-tags: [automount, Btrfs, Cryptsetup, elementary, encryption, GIO, Linux, mount, systemd, Ubuntu, udev, udevil, udisks2]
-:Bash: https://www.gnu.org/software/bash/[Bash]
+:Bash: https://tiswww.case.edu/php/chet/bash/bashtop.html[Bash]
:Btrfs: https://btrfs.wiki.kernel.org/index.php/Main_Page[Btrfs]
:Cryptsetup: https://gitlab.com/cryptsetup/cryptsetup[Cryptsetup]
:elementary-OS: https://elementary.io/[elementary OS]
diff --git a/_drafts/Backup User Snapper Snapshots.adoc b/_drafts/Backup User Snapper Snapshots.adoc
index 569f584..1b4e48c 100644
--- a/_drafts/Backup User Snapper Snapshots.adoc
+++ b/_drafts/Backup User Snapper Snapshots.adoc
@@ -3,7 +3,7 @@
:page-category: Data Storage
:page-tags: [backups, Btrbk, Btrfs, elementary, Linux, snap-sync, Snapper, snapshots, Ubuntu]
:arch-wiki-snapper-change-frequencies: https://wiki.archlinux.org/index.php/snapper#Change_snapshot_and_cleanup_frequencies[Change snapshot and cleanup frequencies]
-:bash: https://www.gnu.org/software/bash/[Bash]
+:bash: https://tiswww.case.edu/php/chet/bash/bashtop.html[Bash]
:btrbk: https://github.com/digint/btrbk[Btrbk]
:btrfs: https://btrfs.wiki.kernel.org/index.php/Main_Page[Btrfs]
:btrfs-maintenance-toolbox: https://github.com/kdave/btrfsmaintenance[Btrfs maintenance toolbox]
diff --git a/_pages/about.adoc b/_pages/about.adoc
index 7d483f3..9394ae2 100644
--- a/_pages/about.adoc
+++ b/_pages/about.adoc
@@ -69,7 +69,7 @@ If you haven't figured it out yet, I'm big proponent of open-source software whe
I enjoy collaborating with other developers to improve open-source software for everyone.
* Desktop Linux, namely https://ubuntu.com/download/desktop[Ubuntu] and https://www.gnome.org/[GNOME]
-* Open-hardware mobile devices (and relevant software), such as the https://www.pine64.org/pinebook-pro/[Pinebook Pro], https://www.pine64.org/pinephone/[PinePhone], and https://www.pine64.org/pinetab/[PineTab] developed by https://www.pine64.org/[Pine64]
+* Open-hardware mobile devices (and relevant software), such as the https://pine64.org/devices/pinebook_pro/[Pinebook Pro], https://www.pine64.org/pinephone/[PinePhone], and https://pine64.org/devices/pinetab/[PineTab] developed by https://www.pine64.org/[Pine64]
* Safe, simple, and easy-to-use programming languages like https://www.rust-lang.org/[Rust] and https://golang.org/[Go]
* https://www.openbsd.org/[OpenBSD]
* https://www.freebsd.org/[FreeBSD]
@@ -103,7 +103,7 @@ Operating Systems::
Languages::
* https://asciidoctor.org/[Asciidoctor]
* https://www.gnu.org/software/gawk/manual/gawk.html[awk]
-* https://www.gnu.org/software/bash/[Bash]
+* https://tiswww.case.edu/php/chet/bash/bashtop.html[Bash]
* http://www.open-std.org/jtc1/sc22/wg14/[C]
* https://isocpp.org/[{cpp}] (Standards including 98, 11, 14, 17, 20)
* https://fishshell.com/[fish]
@@ -211,7 +211,7 @@ System Utilities::
* https://www.sudo.ws/[Sudo]
Filesystems::
-* https://openzfs.org/wiki/Main_Pag[OpenZFS]
+* https://openzfs.org/wiki/Main_Page[OpenZFS]
Services::
* https://nextcloud.com/[Nextcloud]
diff --git a/_posts/2020-03-28-DNSSEC With Unbound.adoc b/_posts/2020-03-28-DNSSEC With Unbound.adoc
index da44a06..1da449b 100644
--- a/_posts/2020-03-28-DNSSEC With Unbound.adoc
+++ b/_posts/2020-03-28-DNSSEC With Unbound.adoc
@@ -9,7 +9,7 @@ Using this http://www.lonecpluspluscoder.com/2020/01/16/building-an-openbsd-wire
== Unbound Configuration
-Use the https://man.openbsd.org/ftp.1[ftp] command to download the https://wiki.archlinux.org/index.php/unbound#Root_hints[Root Hints].
+Use the https://man.openbsd.org/ftp.1[ftp] command to download the https://wiki.archlinux.org/title/unbound#Root_hints[Root Hints].
[,sh]
----
@@ -69,7 +69,7 @@ rcctl restart unbound
Verify that DNSSEC is working with the https://man.openbsd.org/OpenBSD-6.6/dig[dig] command from a computer using your unbound server.
This website, `jwillikers.com`, has DNSSEC enabled and so makes for a good address to test.
-Cloudflare provides a nice write-up about using dig to verify DNSSEC https://support.cloudflare.com/hc/en-us/articles/360021111972-Troubleshooting-DNSSEC#TroubleshootingDNSSEC-DNSSECinPracticewithDig[here].
+Cloudflare provides a nice write-up about using dig to verify DNSSEC https://developers.cloudflare.com/dns/dnssec/troubleshooting/#TroubleshootingDNSSEC-DNSSECinPracticewithDig[here].
[,sh]
----
diff --git a/_posts/2020-05-25-Automatically Detect and Report Hard Drive Failure.adoc b/_posts/2020-05-25-Automatically Detect and Report Hard Drive Failure.adoc
index ae75378..4a9b843 100644
--- a/_posts/2020-05-25-Automatically Detect and Report Hard Drive Failure.adoc
+++ b/_posts/2020-05-25-Automatically Detect and Report Hard Drive Failure.adoc
@@ -14,7 +14,7 @@ SmartMonTools is even cross-platform and available in package repositories every
== Tutorial
This tutorial describes the steps required to setup automated hard disk health checks and email notifications using SmartMonTools 7.1 on Ubuntu 20.04.
-If you're configuring a desktop like me or otherwise configuring a system which doesn't have a https://en.wikipedia.org/wiki/Message_transfer_agent[MTA (Mail Transport Agent)] or https://en.wikipedia.org/wiki/Email_client[MUA (Mail User Agent)] setup already and wish to send emails externally, I recommend following my tutorial on setting up an <>.
+If you're configuring a desktop like me or otherwise configuring a system which doesn't have a https://en.wikipedia.org/wiki/Message_transfer_agent[MTA (Mail Transport Agent)] or https://en.wikipedia.org/wiki/Email_client[MUA (Mail User Agent)] setup already and wish to send emails externally, I recommend following my tutorial on setting up an <>.
Emails sent straight from a willy-nilly desktop user account to an online email provider are unlikely to be accepted.
With https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol[SMTP], your system can relay emails through your online email provider to remedy this.
diff --git a/_posts/2020-06-30-Install ZFS on the Pinebook Pro.adoc b/_posts/2020-06-30-Install ZFS on the Pinebook Pro.adoc
index 898b5b2..9cfe88d 100644
--- a/_posts/2020-06-30-Install ZFS on the Pinebook Pro.adoc
+++ b/_posts/2020-06-30-Install ZFS on the Pinebook Pro.adoc
@@ -32,11 +32,11 @@ $ sudo pacman -S dkms linux-pinebookpro-headers
$ sudo pacman -S yay
----
-. Then, install the https://aur.archlinux.org/packages/zfs-dkms-any/[zfs-dkms-any] package from the AUR.
+. Then, install the https://aur.archlinux.org/packages/zfs-dkms[zfs-dkms] package from the AUR.
+
[,sh]
----
-$ yay -S zfs-dkms-any
+$ yay -S zfs-dkms
----
=== Configure
@@ -64,4 +64,4 @@ $ sudo systemctl enable zfs.target
=== Next Steps
-See <> to learn how to use ZFS to store your files on a microSD card.
+See <> to learn how to use ZFS to store your files on a microSD card.
diff --git a/_posts/2020-07-03-External Storage on the Pinebook Pro With ZFS.adoc b/_posts/2020-07-03-External Storage on the Pinebook Pro With ZFS.adoc
index 862ef24..5830ec9 100644
--- a/_posts/2020-07-03-External Storage on the Pinebook Pro With ZFS.adoc
+++ b/_posts/2020-07-03-External Storage on the Pinebook Pro With ZFS.adoc
@@ -12,7 +12,7 @@ And now you're just dying to use ZFS on that, right?
== Tutorial
-Following the previous post, <>, this tutorial describes the steps required to setup a microSD card for your music files with ZFS on the Pinebook Pro.
+Following the previous post, <>, this tutorial describes the steps required to setup a microSD card for your music files with ZFS on the Pinebook Pro.
=== Create the Pool
diff --git a/_posts/2020-09-04-Update U-Boot on the PinePhone.adoc b/_posts/2020-09-04-Update U-Boot on the PinePhone.adoc
index 5029f01..c89ef81 100644
--- a/_posts/2020-09-04-Update U-Boot on the PinePhone.adoc
+++ b/_posts/2020-09-04-Update U-Boot on the PinePhone.adoc
@@ -4,7 +4,7 @@
:page-tags: [ArchLinux, Boot, Linux, Manjaro, PinePhone, UBoot]
As I big fan of https://www.gnome.org/[GNOME], I really wanted a similar experience on the https://www.pine64.org/pinephone/[PinePhone].
-That's why I opted for running https://osdn.net/projects/manjaro-arm/[Manjaro ARM]'s alpha for the PinePhone, which comes in a GNOME-like https://developer.puri.sm/Librem5/Software_Reference/Environments/Phosh.html[Phosh] flavor.
+That's why I opted for running https://wiki.manjaro.org/index.php/Manjaro-ARM[Manjaro ARM]'s alpha for the PinePhone, which comes in a GNOME-like https://developer.puri.sm/Librem5/Software_Reference/Environments/Phosh.html[Phosh] flavor.
It's been running from the SD card great so far, but I thought to update the internal https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinephone-crust[U-Boot] as <>.
== Tutorial
diff --git a/_posts/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass.adoc b/_posts/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass.adoc
index 22a98b3..c4f7d42 100644
--- a/_posts/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass.adoc
+++ b/_posts/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass/2020-09-13-Easily Virtualize Ubuntu MATE on macOS With Multipass.adoc
@@ -13,11 +13,11 @@ While I was working on my recent post <