summaryrefslogtreecommitdiff
path: root/deps.mk
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2026-09-03 09:19:35 -0300
committerEuAndreh <eu@euandre.org>2026-09-07 04:46:50 -0300
commit6ca718aca59eac9f250badd26f9b118e705d0c20 (patch)
treecd74733352a79303d23dd6029cabfaca2fafbc33 /deps.mk
parentsrc/static.conf ($discussions_url_prefix): Fix typo in address (diff)
downloadeuandre.org-6ca718aca59eac9f250badd26f9b118e705d0c20.tar.gz
euandre.org-6ca718aca59eac9f250badd26f9b118e705d0c20.tar.xz
m
Diffstat (limited to '')
-rw-r--r--deps.mk2564
1 files changed, 1911 insertions, 653 deletions
diff --git a/deps.mk b/deps.mk
index 43a93e9..d83b23d 100644
--- a/deps.mk
+++ b/deps.mk
@@ -1,8 +1,17 @@
pages.adoc = \
src/content/en/about.adoc \
- src/content/en/index.adoc \
+ src/content/eo/pri.adoc \
+ src/content/es/acerca.adoc \
+ src/content/fr/a-propos.adoc \
src/content/pt/sobre.adoc \
+homes.adoc = \
+ src/content/en/index.adoc \
+ src/content/eo/index.adoc \
+ src/content/es/index.adoc \
+ src/content/fr/index.adoc \
+ src/content/pt/index.adoc \
+
articles.adoc = \
src/content/en/blog/2018/07/17/guix-nixos.adoc \
src/content/en/blog/2018/08/01/npm-ci-reproducibility.adoc \
@@ -45,6 +54,8 @@ articles.adoc = \
src/content/en/pastebin/2023/07/22/funcallable-amop.adoc \
src/content/en/podcast/2020/12/19/test-entry.adoc \
src/content/en/screencast/2021/02/07/autoqemu.adoc \
+ src/content/en/slide/2020/10/19/feature-flags.adoc \
+ src/content/en/slide/2020/11/14/local-first-hype.adoc \
src/content/en/til/2020/08/12/filename-timestamp.adoc \
src/content/en/til/2020/08/13/code-jekyll.adoc \
src/content/en/til/2020/08/14/browse-git.adoc \
@@ -68,17 +79,19 @@ articles.adoc = \
src/content/en/til/2021/04/24/scm-nif.adoc \
src/content/en/til/2021/07/23/git-tls-gpg.adoc \
src/content/en/til/2021/08/11/js-bigint-reviver.adoc \
+ src/content/en/til/2026/09/05/multiline-sh-comments.adoc \
src/content/pt/hea/2020/08/12/arquivo-datado.adoc \
-slides.adoc = \
- src/content/en/slide/2020/10/19/feature-flags.adoc \
- src/content/en/slide/2020/11/14/local-first-hype.adoc \
+slides.eslaides = \
+ src/content/en/slide/2020/10/19/feature-flags.eslaides \
+ src/content/en/slide/2020/11/14/local-first-hype.eslaides \
categories.adoc = \
src/content/en/blog/categories.adoc \
src/content/en/pastebin/categories.adoc \
src/content/en/podcast/categories.adoc \
src/content/en/screencast/categories.adoc \
+ src/content/en/slide/categories.adoc \
src/content/en/til/categories.adoc \
src/content/pt/hea/categorias.adoc \
@@ -87,6 +100,7 @@ indexes.adoc = \
src/content/en/pastebin/index.adoc \
src/content/en/podcast/index.adoc \
src/content/en/screencast/index.adoc \
+ src/content/en/slide/index.adoc \
src/content/en/til/index.adoc \
src/content/pt/hea/index.adoc \
@@ -95,20 +109,21 @@ feeds.xml = \
src/content/en/pastebin/feed.xml \
src/content/en/podcast/feed.xml \
src/content/en/screencast/feed.xml \
+ src/content/en/slide/feed.xml \
src/content/en/til/feed.xml \
src/content/pt/hea/feed.xml \
images.svg = \
src/content/img/atom.svg \
- src/content/img/envelope/dark.svg \
- src/content/img/envelope/light.svg \
+ src/content/img/envelope.svg \
src/content/img/favicon.svg \
- src/content/img/link/dark.svg \
- src/content/img/link/light.svg \
- src/content/img/lock/dark.svg \
- src/content/img/lock/light.svg \
- src/content/img/logo/dark.svg \
- src/content/img/logo/light.svg \
+ src/content/img/link.svg \
+ src/content/img/lock.svg \
+ src/content/img/logo.svg \
+ src/content/img/monogram-filled.svg \
+ src/content/img/thumb.svg \
+ src/content/img/wordmark-filled.svg \
+ src/content/img/wordmark.svg \
sources.media = \
src/content/en/podcast/2020/12/19/test-entry.flac \
@@ -133,9 +148,9 @@ sources.extras = \
src/content/en/podcast/2020/12/19/test-entry.ogg \
src/content/en/screencast/2021/02/07/autoqemu.tar.gz \
src/content/en/screencast/2021/02/07/autoqemu.webm \
+ src/content/l/multiline-sh \
sources.po = \
- po/de.po \
po/en.po \
po/eo.po \
po/es.po \
@@ -143,421 +158,304 @@ sources.po = \
po/fr.po \
po/pt.po \
-src/content/en/about.html.gz: src/content/en/about.html
-src/content/en/index.html.gz: src/content/en/index.html
-src/content/pt/sobre.html.gz: src/content/pt/sobre.html
-src/content/en/blog/2018/07/17/guix-nixos.html.gz: src/content/en/blog/2018/07/17/guix-nixos.html
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.html.gz: src/content/en/blog/2018/08/01/npm-ci-reproducibility.html
-src/content/en/blog/2018/12/21/ytdl-subs.html.gz: src/content/en/blog/2018/12/21/ytdl-subs.html
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.html.gz: src/content/en/blog/2019/06/02/nixos-stateless-workstation.html
-src/content/en/blog/2020/08/10/guix-srht.html.gz: src/content/en/blog/2020/08/10/guix-srht.html
-src/content/en/blog/2020/08/31/database-i-wish-i-had.html.gz: src/content/en/blog/2020/08/31/database-i-wish-i-had.html
-src/content/en/blog/2020/10/05/cargo2nix.html.gz: src/content/en/blog/2020/10/05/cargo2nix.html
-src/content/en/blog/2020/10/05/swift2nix.html.gz: src/content/en/blog/2020/10/05/swift2nix.html
-src/content/en/blog/2020/10/19/feature-flags.html.gz: src/content/en/blog/2020/10/19/feature-flags.html
-src/content/en/blog/2020/10/20/wrong-interviewing.html.gz: src/content/en/blog/2020/10/20/wrong-interviewing.html
-src/content/en/blog/2020/11/07/diy-bugs.html.gz: src/content/en/blog/2020/11/07/diy-bugs.html
-src/content/en/blog/2020/11/08/paradigm-shift-review.html.gz: src/content/en/blog/2020/11/08/paradigm-shift-review.html
-src/content/en/blog/2020/11/12/database-parsers-trees.html.gz: src/content/en/blog/2020/11/12/database-parsers-trees.html
-src/content/en/blog/2020/11/14/local-first-review.html.gz: src/content/en/blog/2020/11/14/local-first-review.html
-src/content/en/blog/2021/01/26/remembering-ann.html.gz: src/content/en/blog/2021/01/26/remembering-ann.html
-src/content/en/blog/2021/02/17/fallible.html.gz: src/content/en/blog/2021/02/17/fallible.html
-src/content/en/blog/2021/04/29/relational-review.html.gz: src/content/en/blog/2021/04/29/relational-review.html
-src/content/en/pastebin/2016/04/05/rpn.html.gz: src/content/en/pastebin/2016/04/05/rpn.html
-src/content/en/pastebin/2018/07/11/nix-pinning.html.gz: src/content/en/pastebin/2018/07/11/nix-pinning.html
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html.gz: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html.gz: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html
-src/content/en/pastebin/2018/07/13/guixbuilder.html.gz: src/content/en/pastebin/2018/07/13/guixbuilder.html
-src/content/en/pastebin/2018/07/13/nix-strpad.html.gz: src/content/en/pastebin/2018/07/13/nix-strpad.html
-src/content/en/pastebin/2018/07/25/nix-exps.html.gz: src/content/en/pastebin/2018/07/25/nix-exps.html
-src/content/en/pastebin/2018/07/25/nix-showdrv.html.gz: src/content/en/pastebin/2018/07/25/nix-showdrv.html
-src/content/en/pastebin/2019/06/08/inconsistent-hash.html.gz: src/content/en/pastebin/2019/06/08/inconsistent-hash.html
-src/content/en/pastebin/2019/12/29/raku-tuple-type.html.gz: src/content/en/pastebin/2019/12/29/raku-tuple-type.html
-src/content/en/pastebin/2020/01/04/guix-import-failure.html.gz: src/content/en/pastebin/2020/01/04/guix-import-failure.html
-src/content/en/pastebin/2020/02/14/guix-shebang.html.gz: src/content/en/pastebin/2020/02/14/guix-shebang.html
-src/content/en/pastebin/2020/11/27/guix-build-local.html.gz: src/content/en/pastebin/2020/11/27/guix-build-local.html
-src/content/en/pastebin/2020/12/15/guix-pack-fail.html.gz: src/content/en/pastebin/2020/12/15/guix-pack-fail.html
-src/content/en/pastebin/2021/04/03/naive-slugify-js.html.gz: src/content/en/pastebin/2021/04/03/naive-slugify-js.html
-src/content/en/pastebin/2021/06/08/reading-session-pt1.html.gz: src/content/en/pastebin/2021/06/08/reading-session-pt1.html
-src/content/en/pastebin/2021/06/22/curl-wget.html.gz: src/content/en/pastebin/2021/06/22/curl-wget.html
-src/content/en/pastebin/2021/08/11/h1-spacing.html.gz: src/content/en/pastebin/2021/08/11/h1-spacing.html
-src/content/en/pastebin/2021/09/02/sicp-3-19.html.gz: src/content/en/pastebin/2021/09/02/sicp-3-19.html
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html.gz: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html
-src/content/en/pastebin/2022/07/14/git-cleanup.html.gz: src/content/en/pastebin/2022/07/14/git-cleanup.html
-src/content/en/pastebin/2023/07/22/funcallable-amop.html.gz: src/content/en/pastebin/2023/07/22/funcallable-amop.html
-src/content/en/podcast/2020/12/19/test-entry.html.gz: src/content/en/podcast/2020/12/19/test-entry.html
-src/content/en/screencast/2021/02/07/autoqemu.html.gz: src/content/en/screencast/2021/02/07/autoqemu.html
-src/content/en/til/2020/08/12/filename-timestamp.html.gz: src/content/en/til/2020/08/12/filename-timestamp.html
-src/content/en/til/2020/08/13/code-jekyll.html.gz: src/content/en/til/2020/08/13/code-jekyll.html
-src/content/en/til/2020/08/14/browse-git.html.gz: src/content/en/til/2020/08/14/browse-git.html
-src/content/en/til/2020/08/16/git-search.html.gz: src/content/en/til/2020/08/16/git-search.html
-src/content/en/til/2020/08/28/grep-online.html.gz: src/content/en/til/2020/08/28/grep-online.html
-src/content/en/til/2020/09/04/cli-email-fun-profit.html.gz: src/content/en/til/2020/09/04/cli-email-fun-profit.html
-src/content/en/til/2020/09/05/oldschool-pr.html.gz: src/content/en/til/2020/09/05/oldschool-pr.html
-src/content/en/til/2020/10/11/search-git-history.html.gz: src/content/en/til/2020/10/11/search-git-history.html
-src/content/en/til/2020/11/08/find-broken-symlink.html.gz: src/content/en/til/2020/11/08/find-broken-symlink.html
-src/content/en/til/2020/11/12/diy-nix-bash-ci.html.gz: src/content/en/til/2020/11/12/diy-nix-bash-ci.html
-src/content/en/til/2020/11/12/git-bisect-automation.html.gz: src/content/en/til/2020/11/12/git-bisect-automation.html
-src/content/en/til/2020/11/12/useful-bashvars.html.gz: src/content/en/til/2020/11/12/useful-bashvars.html
-src/content/en/til/2020/11/14/gpodder-media.html.gz: src/content/en/til/2020/11/14/gpodder-media.html
-src/content/en/til/2020/11/30/git-notes-ci.html.gz: src/content/en/til/2020/11/30/git-notes-ci.html
-src/content/en/til/2020/12/15/shellcheck-repo.html.gz: src/content/en/til/2020/12/15/shellcheck-repo.html
-src/content/en/til/2020/12/29/svg.html.gz: src/content/en/til/2020/12/29/svg.html
-src/content/en/til/2021/01/12/curl-awk-emails.html.gz: src/content/en/til/2021/01/12/curl-awk-emails.html
-src/content/en/til/2021/01/17/posix-shebang.html.gz: src/content/en/til/2021/01/17/posix-shebang.html
-src/content/en/til/2021/04/24/cl-generic-precedence.html.gz: src/content/en/til/2021/04/24/cl-generic-precedence.html
-src/content/en/til/2021/04/24/clojure-autocurry.html.gz: src/content/en/til/2021/04/24/clojure-autocurry.html
-src/content/en/til/2021/04/24/scm-nif.html.gz: src/content/en/til/2021/04/24/scm-nif.html
-src/content/en/til/2021/07/23/git-tls-gpg.html.gz: src/content/en/til/2021/07/23/git-tls-gpg.html
-src/content/en/til/2021/08/11/js-bigint-reviver.html.gz: src/content/en/til/2021/08/11/js-bigint-reviver.html
-src/content/pt/hea/2020/08/12/arquivo-datado.html.gz: src/content/pt/hea/2020/08/12/arquivo-datado.html
-src/content/en/blog/index.html.gz: src/content/en/blog/index.html
-src/content/en/pastebin/index.html.gz: src/content/en/pastebin/index.html
-src/content/en/podcast/index.html.gz: src/content/en/podcast/index.html
-src/content/en/screencast/index.html.gz: src/content/en/screencast/index.html
-src/content/en/til/index.html.gz: src/content/en/til/index.html
-src/content/pt/hea/index.html.gz: src/content/pt/hea/index.html
-src/content/en/blog/categories.html.gz: src/content/en/blog/categories.html
-src/content/en/pastebin/categories.html.gz: src/content/en/pastebin/categories.html
-src/content/en/podcast/categories.html.gz: src/content/en/podcast/categories.html
-src/content/en/screencast/categories.html.gz: src/content/en/screencast/categories.html
-src/content/en/til/categories.html.gz: src/content/en/til/categories.html
-src/content/pt/hea/categorias.html.gz: src/content/pt/hea/categorias.html
-src/content/en/about.snippets.gz: src/content/en/about.snippets
-src/content/en/index.snippets.gz: src/content/en/index.snippets
-src/content/pt/sobre.snippets.gz: src/content/pt/sobre.snippets
-src/content/en/blog/2018/07/17/guix-nixos.snippets.gz: src/content/en/blog/2018/07/17/guix-nixos.snippets
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets.gz: src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets
-src/content/en/blog/2018/12/21/ytdl-subs.snippets.gz: src/content/en/blog/2018/12/21/ytdl-subs.snippets
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.snippets.gz: src/content/en/blog/2019/06/02/nixos-stateless-workstation.snippets
-src/content/en/blog/2020/08/10/guix-srht.snippets.gz: src/content/en/blog/2020/08/10/guix-srht.snippets
-src/content/en/blog/2020/08/31/database-i-wish-i-had.snippets.gz: src/content/en/blog/2020/08/31/database-i-wish-i-had.snippets
-src/content/en/blog/2020/10/05/cargo2nix.snippets.gz: src/content/en/blog/2020/10/05/cargo2nix.snippets
-src/content/en/blog/2020/10/05/swift2nix.snippets.gz: src/content/en/blog/2020/10/05/swift2nix.snippets
-src/content/en/blog/2020/10/19/feature-flags.snippets.gz: src/content/en/blog/2020/10/19/feature-flags.snippets
-src/content/en/blog/2020/10/20/wrong-interviewing.snippets.gz: src/content/en/blog/2020/10/20/wrong-interviewing.snippets
-src/content/en/blog/2020/11/07/diy-bugs.snippets.gz: src/content/en/blog/2020/11/07/diy-bugs.snippets
-src/content/en/blog/2020/11/08/paradigm-shift-review.snippets.gz: src/content/en/blog/2020/11/08/paradigm-shift-review.snippets
-src/content/en/blog/2020/11/12/database-parsers-trees.snippets.gz: src/content/en/blog/2020/11/12/database-parsers-trees.snippets
-src/content/en/blog/2020/11/14/local-first-review.snippets.gz: src/content/en/blog/2020/11/14/local-first-review.snippets
-src/content/en/blog/2021/01/26/remembering-ann.snippets.gz: src/content/en/blog/2021/01/26/remembering-ann.snippets
-src/content/en/blog/2021/02/17/fallible.snippets.gz: src/content/en/blog/2021/02/17/fallible.snippets
-src/content/en/blog/2021/04/29/relational-review.snippets.gz: src/content/en/blog/2021/04/29/relational-review.snippets
-src/content/en/pastebin/2016/04/05/rpn.snippets.gz: src/content/en/pastebin/2016/04/05/rpn.snippets
-src/content/en/pastebin/2018/07/11/nix-pinning.snippets.gz: src/content/en/pastebin/2018/07/11/nix-pinning.snippets
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets.gz: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets.gz: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets
-src/content/en/pastebin/2018/07/13/guixbuilder.snippets.gz: src/content/en/pastebin/2018/07/13/guixbuilder.snippets
-src/content/en/pastebin/2018/07/13/nix-strpad.snippets.gz: src/content/en/pastebin/2018/07/13/nix-strpad.snippets
-src/content/en/pastebin/2018/07/25/nix-exps.snippets.gz: src/content/en/pastebin/2018/07/25/nix-exps.snippets
-src/content/en/pastebin/2018/07/25/nix-showdrv.snippets.gz: src/content/en/pastebin/2018/07/25/nix-showdrv.snippets
-src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets.gz: src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets
-src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets.gz: src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets
-src/content/en/pastebin/2020/01/04/guix-import-failure.snippets.gz: src/content/en/pastebin/2020/01/04/guix-import-failure.snippets
-src/content/en/pastebin/2020/02/14/guix-shebang.snippets.gz: src/content/en/pastebin/2020/02/14/guix-shebang.snippets
-src/content/en/pastebin/2020/11/27/guix-build-local.snippets.gz: src/content/en/pastebin/2020/11/27/guix-build-local.snippets
-src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets.gz: src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets
-src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets.gz: src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets
-src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets.gz: src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets
-src/content/en/pastebin/2021/06/22/curl-wget.snippets.gz: src/content/en/pastebin/2021/06/22/curl-wget.snippets
-src/content/en/pastebin/2021/08/11/h1-spacing.snippets.gz: src/content/en/pastebin/2021/08/11/h1-spacing.snippets
-src/content/en/pastebin/2021/09/02/sicp-3-19.snippets.gz: src/content/en/pastebin/2021/09/02/sicp-3-19.snippets
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets.gz: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets
-src/content/en/pastebin/2022/07/14/git-cleanup.snippets.gz: src/content/en/pastebin/2022/07/14/git-cleanup.snippets
-src/content/en/pastebin/2023/07/22/funcallable-amop.snippets.gz: src/content/en/pastebin/2023/07/22/funcallable-amop.snippets
-src/content/en/podcast/2020/12/19/test-entry.snippets.gz: src/content/en/podcast/2020/12/19/test-entry.snippets
-src/content/en/screencast/2021/02/07/autoqemu.snippets.gz: src/content/en/screencast/2021/02/07/autoqemu.snippets
-src/content/en/til/2020/08/12/filename-timestamp.snippets.gz: src/content/en/til/2020/08/12/filename-timestamp.snippets
-src/content/en/til/2020/08/13/code-jekyll.snippets.gz: src/content/en/til/2020/08/13/code-jekyll.snippets
-src/content/en/til/2020/08/14/browse-git.snippets.gz: src/content/en/til/2020/08/14/browse-git.snippets
-src/content/en/til/2020/08/16/git-search.snippets.gz: src/content/en/til/2020/08/16/git-search.snippets
-src/content/en/til/2020/08/28/grep-online.snippets.gz: src/content/en/til/2020/08/28/grep-online.snippets
-src/content/en/til/2020/09/04/cli-email-fun-profit.snippets.gz: src/content/en/til/2020/09/04/cli-email-fun-profit.snippets
-src/content/en/til/2020/09/05/oldschool-pr.snippets.gz: src/content/en/til/2020/09/05/oldschool-pr.snippets
-src/content/en/til/2020/10/11/search-git-history.snippets.gz: src/content/en/til/2020/10/11/search-git-history.snippets
-src/content/en/til/2020/11/08/find-broken-symlink.snippets.gz: src/content/en/til/2020/11/08/find-broken-symlink.snippets
-src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets.gz: src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets
-src/content/en/til/2020/11/12/git-bisect-automation.snippets.gz: src/content/en/til/2020/11/12/git-bisect-automation.snippets
-src/content/en/til/2020/11/12/useful-bashvars.snippets.gz: src/content/en/til/2020/11/12/useful-bashvars.snippets
-src/content/en/til/2020/11/14/gpodder-media.snippets.gz: src/content/en/til/2020/11/14/gpodder-media.snippets
-src/content/en/til/2020/11/30/git-notes-ci.snippets.gz: src/content/en/til/2020/11/30/git-notes-ci.snippets
-src/content/en/til/2020/12/15/shellcheck-repo.snippets.gz: src/content/en/til/2020/12/15/shellcheck-repo.snippets
-src/content/en/til/2020/12/29/svg.snippets.gz: src/content/en/til/2020/12/29/svg.snippets
-src/content/en/til/2021/01/12/curl-awk-emails.snippets.gz: src/content/en/til/2021/01/12/curl-awk-emails.snippets
-src/content/en/til/2021/01/17/posix-shebang.snippets.gz: src/content/en/til/2021/01/17/posix-shebang.snippets
-src/content/en/til/2021/04/24/cl-generic-precedence.snippets.gz: src/content/en/til/2021/04/24/cl-generic-precedence.snippets
-src/content/en/til/2021/04/24/clojure-autocurry.snippets.gz: src/content/en/til/2021/04/24/clojure-autocurry.snippets
-src/content/en/til/2021/04/24/scm-nif.snippets.gz: src/content/en/til/2021/04/24/scm-nif.snippets
-src/content/en/til/2021/07/23/git-tls-gpg.snippets.gz: src/content/en/til/2021/07/23/git-tls-gpg.snippets
-src/content/en/til/2021/08/11/js-bigint-reviver.snippets.gz: src/content/en/til/2021/08/11/js-bigint-reviver.snippets
-src/content/pt/hea/2020/08/12/arquivo-datado.snippets.gz: src/content/pt/hea/2020/08/12/arquivo-datado.snippets
-src/content/en/blog/index.snippets.gz: src/content/en/blog/index.snippets
-src/content/en/pastebin/index.snippets.gz: src/content/en/pastebin/index.snippets
-src/content/en/podcast/index.snippets.gz: src/content/en/podcast/index.snippets
-src/content/en/screencast/index.snippets.gz: src/content/en/screencast/index.snippets
-src/content/en/til/index.snippets.gz: src/content/en/til/index.snippets
-src/content/pt/hea/index.snippets.gz: src/content/pt/hea/index.snippets
-src/content/en/blog/categories.snippets.gz: src/content/en/blog/categories.snippets
-src/content/en/pastebin/categories.snippets.gz: src/content/en/pastebin/categories.snippets
-src/content/en/podcast/categories.snippets.gz: src/content/en/podcast/categories.snippets
-src/content/en/screencast/categories.snippets.gz: src/content/en/screencast/categories.snippets
-src/content/en/til/categories.snippets.gz: src/content/en/til/categories.snippets
-src/content/pt/hea/categorias.snippets.gz: src/content/pt/hea/categorias.snippets
-src/content/en/slide/2020/10/19/feature-flags.pdf.gz: src/content/en/slide/2020/10/19/feature-flags.pdf
-src/content/en/slide/2020/11/14/local-first-hype.pdf.gz: src/content/en/slide/2020/11/14/local-first-hype.pdf
-src/content/en/blog/feed.xml.gz: src/content/en/blog/feed.xml
-src/content/en/pastebin/feed.xml.gz: src/content/en/pastebin/feed.xml
-src/content/en/podcast/feed.xml.gz: src/content/en/podcast/feed.xml
-src/content/en/screencast/feed.xml.gz: src/content/en/screencast/feed.xml
-src/content/en/til/feed.xml.gz: src/content/en/til/feed.xml
-src/content/pt/hea/feed.xml.gz: src/content/pt/hea/feed.xml
-src/content/en/podcast/2020/12/19/test-entry.flac.torrent.gz: src/content/en/podcast/2020/12/19/test-entry.flac.torrent
-src/content/en/podcast/2020/12/19/test-entry.ogg.torrent.gz: src/content/en/podcast/2020/12/19/test-entry.ogg.torrent
-src/content/en/screencast/2021/02/07/autoqemu.webm.torrent.gz: src/content/en/screencast/2021/02/07/autoqemu.webm.torrent
+music.ly = \
+
+music.ogg = \
+
+music.include = \
+
+src/content/l/multiline-sh: src/content/en/til/2026/09/05/multiline-sh-comments.html
+root.dir = src/content
+
+comments.archives = src/comments.mastodon.json src/comments.lemmy.json
-src/content/en/about.htmlbody src/content/en/about.snippets src/content/en/about.conf: src/content/en/about.adoc
-src/content/en/index.htmlbody src/content/en/index.snippets src/content/en/index.conf: src/content/en/index.adoc
-src/content/pt/sobre.htmlbody src/content/pt/sobre.snippets src/content/pt/sobre.conf: src/content/pt/sobre.adoc
-src/content/en/blog/2018/07/17/guix-nixos.htmlbody src/content/en/blog/2018/07/17/guix-nixos.snippets src/content/en/blog/2018/07/17/guix-nixos.conf: src/content/en/blog/2018/07/17/guix-nixos.adoc
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf: src/content/en/blog/2018/08/01/npm-ci-reproducibility.adoc
-src/content/en/blog/2018/12/21/ytdl-subs.htmlbody src/content/en/blog/2018/12/21/ytdl-subs.snippets src/content/en/blog/2018/12/21/ytdl-subs.conf: src/content/en/blog/2018/12/21/ytdl-subs.adoc
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody src/content/en/blog/2019/06/02/nixos-stateless-workstation.snippets src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf: src/content/en/blog/2019/06/02/nixos-stateless-workstation.adoc
-src/content/en/blog/2020/08/10/guix-srht.htmlbody src/content/en/blog/2020/08/10/guix-srht.snippets src/content/en/blog/2020/08/10/guix-srht.conf: src/content/en/blog/2020/08/10/guix-srht.adoc
-src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody src/content/en/blog/2020/08/31/database-i-wish-i-had.snippets src/content/en/blog/2020/08/31/database-i-wish-i-had.conf: src/content/en/blog/2020/08/31/database-i-wish-i-had.adoc
-src/content/en/blog/2020/10/05/cargo2nix.htmlbody src/content/en/blog/2020/10/05/cargo2nix.snippets src/content/en/blog/2020/10/05/cargo2nix.conf: src/content/en/blog/2020/10/05/cargo2nix.adoc
-src/content/en/blog/2020/10/05/swift2nix.htmlbody src/content/en/blog/2020/10/05/swift2nix.snippets src/content/en/blog/2020/10/05/swift2nix.conf: src/content/en/blog/2020/10/05/swift2nix.adoc
-src/content/en/blog/2020/10/19/feature-flags.htmlbody src/content/en/blog/2020/10/19/feature-flags.snippets src/content/en/blog/2020/10/19/feature-flags.conf: src/content/en/blog/2020/10/19/feature-flags.adoc
-src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody src/content/en/blog/2020/10/20/wrong-interviewing.snippets src/content/en/blog/2020/10/20/wrong-interviewing.conf: src/content/en/blog/2020/10/20/wrong-interviewing.adoc
-src/content/en/blog/2020/11/07/diy-bugs.htmlbody src/content/en/blog/2020/11/07/diy-bugs.snippets src/content/en/blog/2020/11/07/diy-bugs.conf: src/content/en/blog/2020/11/07/diy-bugs.adoc
-src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody src/content/en/blog/2020/11/08/paradigm-shift-review.snippets src/content/en/blog/2020/11/08/paradigm-shift-review.conf: src/content/en/blog/2020/11/08/paradigm-shift-review.adoc
-src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody src/content/en/blog/2020/11/12/database-parsers-trees.snippets src/content/en/blog/2020/11/12/database-parsers-trees.conf: src/content/en/blog/2020/11/12/database-parsers-trees.adoc
-src/content/en/blog/2020/11/14/local-first-review.htmlbody src/content/en/blog/2020/11/14/local-first-review.snippets src/content/en/blog/2020/11/14/local-first-review.conf: src/content/en/blog/2020/11/14/local-first-review.adoc
-src/content/en/blog/2021/01/26/remembering-ann.htmlbody src/content/en/blog/2021/01/26/remembering-ann.snippets src/content/en/blog/2021/01/26/remembering-ann.conf: src/content/en/blog/2021/01/26/remembering-ann.adoc
-src/content/en/blog/2021/02/17/fallible.htmlbody src/content/en/blog/2021/02/17/fallible.snippets src/content/en/blog/2021/02/17/fallible.conf: src/content/en/blog/2021/02/17/fallible.adoc
-src/content/en/blog/2021/04/29/relational-review.htmlbody src/content/en/blog/2021/04/29/relational-review.snippets src/content/en/blog/2021/04/29/relational-review.conf: src/content/en/blog/2021/04/29/relational-review.adoc
-src/content/en/pastebin/2016/04/05/rpn.htmlbody src/content/en/pastebin/2016/04/05/rpn.snippets src/content/en/pastebin/2016/04/05/rpn.conf: src/content/en/pastebin/2016/04/05/rpn.adoc
-src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody src/content/en/pastebin/2018/07/11/nix-pinning.snippets src/content/en/pastebin/2018/07/11/nix-pinning.conf: src/content/en/pastebin/2018/07/11/nix-pinning.adoc
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc
-src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder.snippets src/content/en/pastebin/2018/07/13/guixbuilder.conf: src/content/en/pastebin/2018/07/13/guixbuilder.adoc
-src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody src/content/en/pastebin/2018/07/13/nix-strpad.snippets src/content/en/pastebin/2018/07/13/nix-strpad.conf: src/content/en/pastebin/2018/07/13/nix-strpad.adoc
-src/content/en/pastebin/2018/07/25/nix-exps.htmlbody src/content/en/pastebin/2018/07/25/nix-exps.snippets src/content/en/pastebin/2018/07/25/nix-exps.conf: src/content/en/pastebin/2018/07/25/nix-exps.adoc
-src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody src/content/en/pastebin/2018/07/25/nix-showdrv.snippets src/content/en/pastebin/2018/07/25/nix-showdrv.conf: src/content/en/pastebin/2018/07/25/nix-showdrv.adoc
-src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets src/content/en/pastebin/2019/06/08/inconsistent-hash.conf: src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc
-src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets src/content/en/pastebin/2019/12/29/raku-tuple-type.conf: src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc
-src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody src/content/en/pastebin/2020/01/04/guix-import-failure.snippets src/content/en/pastebin/2020/01/04/guix-import-failure.conf: src/content/en/pastebin/2020/01/04/guix-import-failure.adoc
-src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody src/content/en/pastebin/2020/02/14/guix-shebang.snippets src/content/en/pastebin/2020/02/14/guix-shebang.conf: src/content/en/pastebin/2020/02/14/guix-shebang.adoc
-src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody src/content/en/pastebin/2020/11/27/guix-build-local.snippets src/content/en/pastebin/2020/11/27/guix-build-local.conf: src/content/en/pastebin/2020/11/27/guix-build-local.adoc
-src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets src/content/en/pastebin/2020/12/15/guix-pack-fail.conf: src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc
-src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets src/content/en/pastebin/2021/04/03/naive-slugify-js.conf: src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc
-src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets src/content/en/pastebin/2021/06/08/reading-session-pt1.conf: src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc
-src/content/en/pastebin/2021/06/22/curl-wget.htmlbody src/content/en/pastebin/2021/06/22/curl-wget.snippets src/content/en/pastebin/2021/06/22/curl-wget.conf: src/content/en/pastebin/2021/06/22/curl-wget.adoc
-src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody src/content/en/pastebin/2021/08/11/h1-spacing.snippets src/content/en/pastebin/2021/08/11/h1-spacing.conf: src/content/en/pastebin/2021/08/11/h1-spacing.adoc
-src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody src/content/en/pastebin/2021/09/02/sicp-3-19.snippets src/content/en/pastebin/2021/09/02/sicp-3-19.conf: src/content/en/pastebin/2021/09/02/sicp-3-19.adoc
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc
-src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody src/content/en/pastebin/2022/07/14/git-cleanup.snippets src/content/en/pastebin/2022/07/14/git-cleanup.conf: src/content/en/pastebin/2022/07/14/git-cleanup.adoc
-src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody src/content/en/pastebin/2023/07/22/funcallable-amop.snippets src/content/en/pastebin/2023/07/22/funcallable-amop.conf: src/content/en/pastebin/2023/07/22/funcallable-amop.adoc
-src/content/en/podcast/2020/12/19/test-entry.htmlbody src/content/en/podcast/2020/12/19/test-entry.snippets src/content/en/podcast/2020/12/19/test-entry.conf: src/content/en/podcast/2020/12/19/test-entry.adoc
-src/content/en/screencast/2021/02/07/autoqemu.htmlbody src/content/en/screencast/2021/02/07/autoqemu.snippets src/content/en/screencast/2021/02/07/autoqemu.conf: src/content/en/screencast/2021/02/07/autoqemu.adoc
-src/content/en/til/2020/08/12/filename-timestamp.htmlbody src/content/en/til/2020/08/12/filename-timestamp.snippets src/content/en/til/2020/08/12/filename-timestamp.conf: src/content/en/til/2020/08/12/filename-timestamp.adoc
-src/content/en/til/2020/08/13/code-jekyll.htmlbody src/content/en/til/2020/08/13/code-jekyll.snippets src/content/en/til/2020/08/13/code-jekyll.conf: src/content/en/til/2020/08/13/code-jekyll.adoc
-src/content/en/til/2020/08/14/browse-git.htmlbody src/content/en/til/2020/08/14/browse-git.snippets src/content/en/til/2020/08/14/browse-git.conf: src/content/en/til/2020/08/14/browse-git.adoc
-src/content/en/til/2020/08/16/git-search.htmlbody src/content/en/til/2020/08/16/git-search.snippets src/content/en/til/2020/08/16/git-search.conf: src/content/en/til/2020/08/16/git-search.adoc
-src/content/en/til/2020/08/28/grep-online.htmlbody src/content/en/til/2020/08/28/grep-online.snippets src/content/en/til/2020/08/28/grep-online.conf: src/content/en/til/2020/08/28/grep-online.adoc
-src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody src/content/en/til/2020/09/04/cli-email-fun-profit.snippets src/content/en/til/2020/09/04/cli-email-fun-profit.conf: src/content/en/til/2020/09/04/cli-email-fun-profit.adoc
-src/content/en/til/2020/09/05/oldschool-pr.htmlbody src/content/en/til/2020/09/05/oldschool-pr.snippets src/content/en/til/2020/09/05/oldschool-pr.conf: src/content/en/til/2020/09/05/oldschool-pr.adoc
-src/content/en/til/2020/10/11/search-git-history.htmlbody src/content/en/til/2020/10/11/search-git-history.snippets src/content/en/til/2020/10/11/search-git-history.conf: src/content/en/til/2020/10/11/search-git-history.adoc
-src/content/en/til/2020/11/08/find-broken-symlink.htmlbody src/content/en/til/2020/11/08/find-broken-symlink.snippets src/content/en/til/2020/11/08/find-broken-symlink.conf: src/content/en/til/2020/11/08/find-broken-symlink.adoc
-src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets src/content/en/til/2020/11/12/diy-nix-bash-ci.conf: src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc
-src/content/en/til/2020/11/12/git-bisect-automation.htmlbody src/content/en/til/2020/11/12/git-bisect-automation.snippets src/content/en/til/2020/11/12/git-bisect-automation.conf: src/content/en/til/2020/11/12/git-bisect-automation.adoc
-src/content/en/til/2020/11/12/useful-bashvars.htmlbody src/content/en/til/2020/11/12/useful-bashvars.snippets src/content/en/til/2020/11/12/useful-bashvars.conf: src/content/en/til/2020/11/12/useful-bashvars.adoc
-src/content/en/til/2020/11/14/gpodder-media.htmlbody src/content/en/til/2020/11/14/gpodder-media.snippets src/content/en/til/2020/11/14/gpodder-media.conf: src/content/en/til/2020/11/14/gpodder-media.adoc
-src/content/en/til/2020/11/30/git-notes-ci.htmlbody src/content/en/til/2020/11/30/git-notes-ci.snippets src/content/en/til/2020/11/30/git-notes-ci.conf: src/content/en/til/2020/11/30/git-notes-ci.adoc
-src/content/en/til/2020/12/15/shellcheck-repo.htmlbody src/content/en/til/2020/12/15/shellcheck-repo.snippets src/content/en/til/2020/12/15/shellcheck-repo.conf: src/content/en/til/2020/12/15/shellcheck-repo.adoc
-src/content/en/til/2020/12/29/svg.htmlbody src/content/en/til/2020/12/29/svg.snippets src/content/en/til/2020/12/29/svg.conf: src/content/en/til/2020/12/29/svg.adoc
-src/content/en/til/2021/01/12/curl-awk-emails.htmlbody src/content/en/til/2021/01/12/curl-awk-emails.snippets src/content/en/til/2021/01/12/curl-awk-emails.conf: src/content/en/til/2021/01/12/curl-awk-emails.adoc
-src/content/en/til/2021/01/17/posix-shebang.htmlbody src/content/en/til/2021/01/17/posix-shebang.snippets src/content/en/til/2021/01/17/posix-shebang.conf: src/content/en/til/2021/01/17/posix-shebang.adoc
-src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody src/content/en/til/2021/04/24/cl-generic-precedence.snippets src/content/en/til/2021/04/24/cl-generic-precedence.conf: src/content/en/til/2021/04/24/cl-generic-precedence.adoc
-src/content/en/til/2021/04/24/clojure-autocurry.htmlbody src/content/en/til/2021/04/24/clojure-autocurry.snippets src/content/en/til/2021/04/24/clojure-autocurry.conf: src/content/en/til/2021/04/24/clojure-autocurry.adoc
-src/content/en/til/2021/04/24/scm-nif.htmlbody src/content/en/til/2021/04/24/scm-nif.snippets src/content/en/til/2021/04/24/scm-nif.conf: src/content/en/til/2021/04/24/scm-nif.adoc
-src/content/en/til/2021/07/23/git-tls-gpg.htmlbody src/content/en/til/2021/07/23/git-tls-gpg.snippets src/content/en/til/2021/07/23/git-tls-gpg.conf: src/content/en/til/2021/07/23/git-tls-gpg.adoc
-src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody src/content/en/til/2021/08/11/js-bigint-reviver.snippets src/content/en/til/2021/08/11/js-bigint-reviver.conf: src/content/en/til/2021/08/11/js-bigint-reviver.adoc
-src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody src/content/pt/hea/2020/08/12/arquivo-datado.snippets src/content/pt/hea/2020/08/12/arquivo-datado.conf: src/content/pt/hea/2020/08/12/arquivo-datado.adoc
-src/content/en/blog/index.htmlbody src/content/en/blog/index.snippets src/content/en/blog/index.conf: src/content/en/blog/index.adoc
-src/content/en/pastebin/index.htmlbody src/content/en/pastebin/index.snippets src/content/en/pastebin/index.conf: src/content/en/pastebin/index.adoc
-src/content/en/podcast/index.htmlbody src/content/en/podcast/index.snippets src/content/en/podcast/index.conf: src/content/en/podcast/index.adoc
-src/content/en/screencast/index.htmlbody src/content/en/screencast/index.snippets src/content/en/screencast/index.conf: src/content/en/screencast/index.adoc
-src/content/en/til/index.htmlbody src/content/en/til/index.snippets src/content/en/til/index.conf: src/content/en/til/index.adoc
-src/content/pt/hea/index.htmlbody src/content/pt/hea/index.snippets src/content/pt/hea/index.conf: src/content/pt/hea/index.adoc
-src/content/en/blog/categories.htmlbody src/content/en/blog/categories.snippets src/content/en/blog/categories.conf: src/content/en/blog/categories.adoc
-src/content/en/pastebin/categories.htmlbody src/content/en/pastebin/categories.snippets src/content/en/pastebin/categories.conf: src/content/en/pastebin/categories.adoc
-src/content/en/podcast/categories.htmlbody src/content/en/podcast/categories.snippets src/content/en/podcast/categories.conf: src/content/en/podcast/categories.adoc
-src/content/en/screencast/categories.htmlbody src/content/en/screencast/categories.snippets src/content/en/screencast/categories.conf: src/content/en/screencast/categories.adoc
-src/content/en/til/categories.htmlbody src/content/en/til/categories.snippets src/content/en/til/categories.conf: src/content/en/til/categories.adoc
-src/content/pt/hea/categorias.htmlbody src/content/pt/hea/categorias.snippets src/content/pt/hea/categorias.conf: src/content/pt/hea/categorias.adoc
-src/content/en/about.html: src/content/en/about.conf src/content/en/about.htmlbody
-src/content/en/index.html: src/content/en/index.conf src/content/en/index.htmlbody
-src/content/pt/sobre.html: src/content/pt/sobre.conf src/content/pt/sobre.htmlbody
-src/content/en/blog/2018/07/17/guix-nixos.html: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/07/17/guix-nixos.htmlbody
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.html: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody
-src/content/en/blog/2018/12/21/ytdl-subs.html: src/content/en/blog/2018/12/21/ytdl-subs.conf src/content/en/blog/2018/12/21/ytdl-subs.htmlbody
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.html: src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody
-src/content/en/blog/2020/08/10/guix-srht.html: src/content/en/blog/2020/08/10/guix-srht.conf src/content/en/blog/2020/08/10/guix-srht.htmlbody
-src/content/en/blog/2020/08/31/database-i-wish-i-had.html: src/content/en/blog/2020/08/31/database-i-wish-i-had.conf src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody
-src/content/en/blog/2020/10/05/cargo2nix.html: src/content/en/blog/2020/10/05/cargo2nix.conf src/content/en/blog/2020/10/05/cargo2nix.htmlbody
-src/content/en/blog/2020/10/05/swift2nix.html: src/content/en/blog/2020/10/05/swift2nix.conf src/content/en/blog/2020/10/05/swift2nix.htmlbody
-src/content/en/blog/2020/10/19/feature-flags.html: src/content/en/blog/2020/10/19/feature-flags.conf src/content/en/blog/2020/10/19/feature-flags.htmlbody
-src/content/en/blog/2020/10/20/wrong-interviewing.html: src/content/en/blog/2020/10/20/wrong-interviewing.conf src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody
-src/content/en/blog/2020/11/07/diy-bugs.html: src/content/en/blog/2020/11/07/diy-bugs.conf src/content/en/blog/2020/11/07/diy-bugs.htmlbody
-src/content/en/blog/2020/11/08/paradigm-shift-review.html: src/content/en/blog/2020/11/08/paradigm-shift-review.conf src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody
-src/content/en/blog/2020/11/12/database-parsers-trees.html: src/content/en/blog/2020/11/12/database-parsers-trees.conf src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody
-src/content/en/blog/2020/11/14/local-first-review.html: src/content/en/blog/2020/11/14/local-first-review.conf src/content/en/blog/2020/11/14/local-first-review.htmlbody
-src/content/en/blog/2021/01/26/remembering-ann.html: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/01/26/remembering-ann.htmlbody
-src/content/en/blog/2021/02/17/fallible.html: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/02/17/fallible.htmlbody
-src/content/en/blog/2021/04/29/relational-review.html: src/content/en/blog/2021/04/29/relational-review.conf src/content/en/blog/2021/04/29/relational-review.htmlbody
-src/content/en/pastebin/2016/04/05/rpn.html: src/content/en/pastebin/2016/04/05/rpn.conf src/content/en/pastebin/2016/04/05/rpn.htmlbody
-src/content/en/pastebin/2018/07/11/nix-pinning.html: src/content/en/pastebin/2018/07/11/nix-pinning.conf src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody
-src/content/en/pastebin/2018/07/13/guixbuilder.html: src/content/en/pastebin/2018/07/13/guixbuilder.conf src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody
-src/content/en/pastebin/2018/07/13/nix-strpad.html: src/content/en/pastebin/2018/07/13/nix-strpad.conf src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody
-src/content/en/pastebin/2018/07/25/nix-exps.html: src/content/en/pastebin/2018/07/25/nix-exps.conf src/content/en/pastebin/2018/07/25/nix-exps.htmlbody
-src/content/en/pastebin/2018/07/25/nix-showdrv.html: src/content/en/pastebin/2018/07/25/nix-showdrv.conf src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody
-src/content/en/pastebin/2019/06/08/inconsistent-hash.html: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody
-src/content/en/pastebin/2019/12/29/raku-tuple-type.html: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody
-src/content/en/pastebin/2020/01/04/guix-import-failure.html: src/content/en/pastebin/2020/01/04/guix-import-failure.conf src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody
-src/content/en/pastebin/2020/02/14/guix-shebang.html: src/content/en/pastebin/2020/02/14/guix-shebang.conf src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody
-src/content/en/pastebin/2020/11/27/guix-build-local.html: src/content/en/pastebin/2020/11/27/guix-build-local.conf src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody
-src/content/en/pastebin/2020/12/15/guix-pack-fail.html: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody
-src/content/en/pastebin/2021/04/03/naive-slugify-js.html: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody
-src/content/en/pastebin/2021/06/08/reading-session-pt1.html: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody
-src/content/en/pastebin/2021/06/22/curl-wget.html: src/content/en/pastebin/2021/06/22/curl-wget.conf src/content/en/pastebin/2021/06/22/curl-wget.htmlbody
-src/content/en/pastebin/2021/08/11/h1-spacing.html: src/content/en/pastebin/2021/08/11/h1-spacing.conf src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody
-src/content/en/pastebin/2021/09/02/sicp-3-19.html: src/content/en/pastebin/2021/09/02/sicp-3-19.conf src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody
-src/content/en/pastebin/2022/07/14/git-cleanup.html: src/content/en/pastebin/2022/07/14/git-cleanup.conf src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody
-src/content/en/pastebin/2023/07/22/funcallable-amop.html: src/content/en/pastebin/2023/07/22/funcallable-amop.conf src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody
-src/content/en/podcast/2020/12/19/test-entry.html: src/content/en/podcast/2020/12/19/test-entry.conf src/content/en/podcast/2020/12/19/test-entry.htmlbody
-src/content/en/screencast/2021/02/07/autoqemu.html: src/content/en/screencast/2021/02/07/autoqemu.conf src/content/en/screencast/2021/02/07/autoqemu.htmlbody
-src/content/en/til/2020/08/12/filename-timestamp.html: src/content/en/til/2020/08/12/filename-timestamp.conf src/content/en/til/2020/08/12/filename-timestamp.htmlbody
-src/content/en/til/2020/08/13/code-jekyll.html: src/content/en/til/2020/08/13/code-jekyll.conf src/content/en/til/2020/08/13/code-jekyll.htmlbody
-src/content/en/til/2020/08/14/browse-git.html: src/content/en/til/2020/08/14/browse-git.conf src/content/en/til/2020/08/14/browse-git.htmlbody
-src/content/en/til/2020/08/16/git-search.html: src/content/en/til/2020/08/16/git-search.conf src/content/en/til/2020/08/16/git-search.htmlbody
-src/content/en/til/2020/08/28/grep-online.html: src/content/en/til/2020/08/28/grep-online.conf src/content/en/til/2020/08/28/grep-online.htmlbody
-src/content/en/til/2020/09/04/cli-email-fun-profit.html: src/content/en/til/2020/09/04/cli-email-fun-profit.conf src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody
-src/content/en/til/2020/09/05/oldschool-pr.html: src/content/en/til/2020/09/05/oldschool-pr.conf src/content/en/til/2020/09/05/oldschool-pr.htmlbody
-src/content/en/til/2020/10/11/search-git-history.html: src/content/en/til/2020/10/11/search-git-history.conf src/content/en/til/2020/10/11/search-git-history.htmlbody
-src/content/en/til/2020/11/08/find-broken-symlink.html: src/content/en/til/2020/11/08/find-broken-symlink.conf src/content/en/til/2020/11/08/find-broken-symlink.htmlbody
-src/content/en/til/2020/11/12/diy-nix-bash-ci.html: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody
-src/content/en/til/2020/11/12/git-bisect-automation.html: src/content/en/til/2020/11/12/git-bisect-automation.conf src/content/en/til/2020/11/12/git-bisect-automation.htmlbody
-src/content/en/til/2020/11/12/useful-bashvars.html: src/content/en/til/2020/11/12/useful-bashvars.conf src/content/en/til/2020/11/12/useful-bashvars.htmlbody
-src/content/en/til/2020/11/14/gpodder-media.html: src/content/en/til/2020/11/14/gpodder-media.conf src/content/en/til/2020/11/14/gpodder-media.htmlbody
-src/content/en/til/2020/11/30/git-notes-ci.html: src/content/en/til/2020/11/30/git-notes-ci.conf src/content/en/til/2020/11/30/git-notes-ci.htmlbody
-src/content/en/til/2020/12/15/shellcheck-repo.html: src/content/en/til/2020/12/15/shellcheck-repo.conf src/content/en/til/2020/12/15/shellcheck-repo.htmlbody
-src/content/en/til/2020/12/29/svg.html: src/content/en/til/2020/12/29/svg.conf src/content/en/til/2020/12/29/svg.htmlbody
-src/content/en/til/2021/01/12/curl-awk-emails.html: src/content/en/til/2021/01/12/curl-awk-emails.conf src/content/en/til/2021/01/12/curl-awk-emails.htmlbody
-src/content/en/til/2021/01/17/posix-shebang.html: src/content/en/til/2021/01/17/posix-shebang.conf src/content/en/til/2021/01/17/posix-shebang.htmlbody
-src/content/en/til/2021/04/24/cl-generic-precedence.html: src/content/en/til/2021/04/24/cl-generic-precedence.conf src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody
-src/content/en/til/2021/04/24/clojure-autocurry.html: src/content/en/til/2021/04/24/clojure-autocurry.conf src/content/en/til/2021/04/24/clojure-autocurry.htmlbody
-src/content/en/til/2021/04/24/scm-nif.html: src/content/en/til/2021/04/24/scm-nif.conf src/content/en/til/2021/04/24/scm-nif.htmlbody
-src/content/en/til/2021/07/23/git-tls-gpg.html: src/content/en/til/2021/07/23/git-tls-gpg.conf src/content/en/til/2021/07/23/git-tls-gpg.htmlbody
-src/content/en/til/2021/08/11/js-bigint-reviver.html: src/content/en/til/2021/08/11/js-bigint-reviver.conf src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody
-src/content/pt/hea/2020/08/12/arquivo-datado.html: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody
-src/content/en/blog/index.html: src/content/en/blog/index.conf src/content/en/blog/index.htmlbody
-src/content/en/pastebin/index.html: src/content/en/pastebin/index.conf src/content/en/pastebin/index.htmlbody
-src/content/en/podcast/index.html: src/content/en/podcast/index.conf src/content/en/podcast/index.htmlbody
-src/content/en/screencast/index.html: src/content/en/screencast/index.conf src/content/en/screencast/index.htmlbody
-src/content/en/til/index.html: src/content/en/til/index.conf src/content/en/til/index.htmlbody
-src/content/pt/hea/index.html: src/content/pt/hea/index.conf src/content/pt/hea/index.htmlbody
-src/content/en/blog/categories.html: src/content/en/blog/categories.conf src/content/en/blog/categories.htmlbody
-src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.conf src/content/en/pastebin/categories.htmlbody
-src/content/en/podcast/categories.html: src/content/en/podcast/categories.conf src/content/en/podcast/categories.htmlbody
-src/content/en/screencast/categories.html: src/content/en/screencast/categories.conf src/content/en/screencast/categories.htmlbody
-src/content/en/til/categories.html: src/content/en/til/categories.conf src/content/en/til/categories.htmlbody
-src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.conf src/content/pt/hea/categorias.htmlbody
+comments.dir = src/comments
-src/content/en/about.updatedat-check: src/content/en/about.conf
-src/content/en/index.updatedat-check: src/content/en/index.conf
-src/content/pt/sobre.updatedat-check: src/content/pt/sobre.conf
-src/content/en/blog/2018/07/17/guix-nixos.updatedat-check: src/content/en/blog/2018/07/17/guix-nixos.conf
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.updatedat-check: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf
-src/content/en/blog/2018/12/21/ytdl-subs.updatedat-check: src/content/en/blog/2018/12/21/ytdl-subs.conf
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.updatedat-check: src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf
-src/content/en/blog/2020/08/10/guix-srht.updatedat-check: src/content/en/blog/2020/08/10/guix-srht.conf
-src/content/en/blog/2020/08/31/database-i-wish-i-had.updatedat-check: src/content/en/blog/2020/08/31/database-i-wish-i-had.conf
-src/content/en/blog/2020/10/05/cargo2nix.updatedat-check: src/content/en/blog/2020/10/05/cargo2nix.conf
-src/content/en/blog/2020/10/05/swift2nix.updatedat-check: src/content/en/blog/2020/10/05/swift2nix.conf
-src/content/en/blog/2020/10/19/feature-flags.updatedat-check: src/content/en/blog/2020/10/19/feature-flags.conf
-src/content/en/blog/2020/10/20/wrong-interviewing.updatedat-check: src/content/en/blog/2020/10/20/wrong-interviewing.conf
-src/content/en/blog/2020/11/07/diy-bugs.updatedat-check: src/content/en/blog/2020/11/07/diy-bugs.conf
-src/content/en/blog/2020/11/08/paradigm-shift-review.updatedat-check: src/content/en/blog/2020/11/08/paradigm-shift-review.conf
-src/content/en/blog/2020/11/12/database-parsers-trees.updatedat-check: src/content/en/blog/2020/11/12/database-parsers-trees.conf
-src/content/en/blog/2020/11/14/local-first-review.updatedat-check: src/content/en/blog/2020/11/14/local-first-review.conf
-src/content/en/blog/2021/01/26/remembering-ann.updatedat-check: src/content/en/blog/2021/01/26/remembering-ann.conf
-src/content/en/blog/2021/02/17/fallible.updatedat-check: src/content/en/blog/2021/02/17/fallible.conf
-src/content/en/blog/2021/04/29/relational-review.updatedat-check: src/content/en/blog/2021/04/29/relational-review.conf
-src/content/en/pastebin/2016/04/05/rpn.updatedat-check: src/content/en/pastebin/2016/04/05/rpn.conf
-src/content/en/pastebin/2018/07/11/nix-pinning.updatedat-check: src/content/en/pastebin/2018/07/11/nix-pinning.conf
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.updatedat-check: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf
-src/content/en/pastebin/2018/07/13/guixbuilder.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder.conf
-src/content/en/pastebin/2018/07/13/nix-strpad.updatedat-check: src/content/en/pastebin/2018/07/13/nix-strpad.conf
-src/content/en/pastebin/2018/07/25/nix-exps.updatedat-check: src/content/en/pastebin/2018/07/25/nix-exps.conf
-src/content/en/pastebin/2018/07/25/nix-showdrv.updatedat-check: src/content/en/pastebin/2018/07/25/nix-showdrv.conf
-src/content/en/pastebin/2019/06/08/inconsistent-hash.updatedat-check: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf
-src/content/en/pastebin/2019/12/29/raku-tuple-type.updatedat-check: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf
-src/content/en/pastebin/2020/01/04/guix-import-failure.updatedat-check: src/content/en/pastebin/2020/01/04/guix-import-failure.conf
-src/content/en/pastebin/2020/02/14/guix-shebang.updatedat-check: src/content/en/pastebin/2020/02/14/guix-shebang.conf
-src/content/en/pastebin/2020/11/27/guix-build-local.updatedat-check: src/content/en/pastebin/2020/11/27/guix-build-local.conf
-src/content/en/pastebin/2020/12/15/guix-pack-fail.updatedat-check: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf
-src/content/en/pastebin/2021/04/03/naive-slugify-js.updatedat-check: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf
-src/content/en/pastebin/2021/06/08/reading-session-pt1.updatedat-check: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf
-src/content/en/pastebin/2021/06/22/curl-wget.updatedat-check: src/content/en/pastebin/2021/06/22/curl-wget.conf
-src/content/en/pastebin/2021/08/11/h1-spacing.updatedat-check: src/content/en/pastebin/2021/08/11/h1-spacing.conf
-src/content/en/pastebin/2021/09/02/sicp-3-19.updatedat-check: src/content/en/pastebin/2021/09/02/sicp-3-19.conf
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.updatedat-check: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf
-src/content/en/pastebin/2022/07/14/git-cleanup.updatedat-check: src/content/en/pastebin/2022/07/14/git-cleanup.conf
-src/content/en/pastebin/2023/07/22/funcallable-amop.updatedat-check: src/content/en/pastebin/2023/07/22/funcallable-amop.conf
-src/content/en/podcast/2020/12/19/test-entry.updatedat-check: src/content/en/podcast/2020/12/19/test-entry.conf
-src/content/en/screencast/2021/02/07/autoqemu.updatedat-check: src/content/en/screencast/2021/02/07/autoqemu.conf
-src/content/en/til/2020/08/12/filename-timestamp.updatedat-check: src/content/en/til/2020/08/12/filename-timestamp.conf
-src/content/en/til/2020/08/13/code-jekyll.updatedat-check: src/content/en/til/2020/08/13/code-jekyll.conf
-src/content/en/til/2020/08/14/browse-git.updatedat-check: src/content/en/til/2020/08/14/browse-git.conf
-src/content/en/til/2020/08/16/git-search.updatedat-check: src/content/en/til/2020/08/16/git-search.conf
-src/content/en/til/2020/08/28/grep-online.updatedat-check: src/content/en/til/2020/08/28/grep-online.conf
-src/content/en/til/2020/09/04/cli-email-fun-profit.updatedat-check: src/content/en/til/2020/09/04/cli-email-fun-profit.conf
-src/content/en/til/2020/09/05/oldschool-pr.updatedat-check: src/content/en/til/2020/09/05/oldschool-pr.conf
-src/content/en/til/2020/10/11/search-git-history.updatedat-check: src/content/en/til/2020/10/11/search-git-history.conf
-src/content/en/til/2020/11/08/find-broken-symlink.updatedat-check: src/content/en/til/2020/11/08/find-broken-symlink.conf
-src/content/en/til/2020/11/12/diy-nix-bash-ci.updatedat-check: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf
-src/content/en/til/2020/11/12/git-bisect-automation.updatedat-check: src/content/en/til/2020/11/12/git-bisect-automation.conf
-src/content/en/til/2020/11/12/useful-bashvars.updatedat-check: src/content/en/til/2020/11/12/useful-bashvars.conf
-src/content/en/til/2020/11/14/gpodder-media.updatedat-check: src/content/en/til/2020/11/14/gpodder-media.conf
-src/content/en/til/2020/11/30/git-notes-ci.updatedat-check: src/content/en/til/2020/11/30/git-notes-ci.conf
-src/content/en/til/2020/12/15/shellcheck-repo.updatedat-check: src/content/en/til/2020/12/15/shellcheck-repo.conf
-src/content/en/til/2020/12/29/svg.updatedat-check: src/content/en/til/2020/12/29/svg.conf
-src/content/en/til/2021/01/12/curl-awk-emails.updatedat-check: src/content/en/til/2021/01/12/curl-awk-emails.conf
-src/content/en/til/2021/01/17/posix-shebang.updatedat-check: src/content/en/til/2021/01/17/posix-shebang.conf
-src/content/en/til/2021/04/24/cl-generic-precedence.updatedat-check: src/content/en/til/2021/04/24/cl-generic-precedence.conf
-src/content/en/til/2021/04/24/clojure-autocurry.updatedat-check: src/content/en/til/2021/04/24/clojure-autocurry.conf
-src/content/en/til/2021/04/24/scm-nif.updatedat-check: src/content/en/til/2021/04/24/scm-nif.conf
-src/content/en/til/2021/07/23/git-tls-gpg.updatedat-check: src/content/en/til/2021/07/23/git-tls-gpg.conf
-src/content/en/til/2021/08/11/js-bigint-reviver.updatedat-check: src/content/en/til/2021/08/11/js-bigint-reviver.conf
-src/content/pt/hea/2020/08/12/arquivo-datado.updatedat-check: src/content/pt/hea/2020/08/12/arquivo-datado.conf
-src/content/en/blog/index.updatedat-check: src/content/en/blog/index.conf
-src/content/en/pastebin/index.updatedat-check: src/content/en/pastebin/index.conf
-src/content/en/podcast/index.updatedat-check: src/content/en/podcast/index.conf
-src/content/en/screencast/index.updatedat-check: src/content/en/screencast/index.conf
-src/content/en/til/index.updatedat-check: src/content/en/til/index.conf
-src/content/pt/hea/index.updatedat-check: src/content/pt/hea/index.conf
-src/content/en/blog/categories.updatedat-check: src/content/en/blog/categories.conf
-src/content/en/pastebin/categories.updatedat-check: src/content/en/pastebin/categories.conf
-src/content/en/podcast/categories.updatedat-check: src/content/en/podcast/categories.conf
-src/content/en/screencast/categories.updatedat-check: src/content/en/screencast/categories.conf
-src/content/en/til/categories.updatedat-check: src/content/en/til/categories.conf
-src/content/pt/hea/categorias.updatedat-check: src/content/pt/hea/categorias.conf
+comments.map = src/comments.txt
+
+img.dir = img
+
+src/content/en/about.htmlbody src/content/en/about.snippets src/content/en/about.json: src/content/en/about.adoc
+src/content/eo/pri.htmlbody src/content/eo/pri.snippets src/content/eo/pri.json: src/content/eo/pri.adoc
+src/content/es/acerca.htmlbody src/content/es/acerca.snippets src/content/es/acerca.json: src/content/es/acerca.adoc
+src/content/fr/a-propos.htmlbody src/content/fr/a-propos.snippets src/content/fr/a-propos.json: src/content/fr/a-propos.adoc
+src/content/pt/sobre.htmlbody src/content/pt/sobre.snippets src/content/pt/sobre.json: src/content/pt/sobre.adoc
+src/content/en/blog/2018/07/17/guix-nixos.htmlbody src/content/en/blog/2018/07/17/guix-nixos.snippets src/content/en/blog/2018/07/17/guix-nixos.json: src/content/en/blog/2018/07/17/guix-nixos.adoc
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets src/content/en/blog/2018/08/01/npm-ci-reproducibility.json: src/content/en/blog/2018/08/01/npm-ci-reproducibility.adoc
+src/content/en/blog/2018/12/21/ytdl-subs.htmlbody src/content/en/blog/2018/12/21/ytdl-subs.snippets src/content/en/blog/2018/12/21/ytdl-subs.json: src/content/en/blog/2018/12/21/ytdl-subs.adoc
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody src/content/en/blog/2019/06/02/nixos-stateless-workstation.snippets src/content/en/blog/2019/06/02/nixos-stateless-workstation.json: src/content/en/blog/2019/06/02/nixos-stateless-workstation.adoc
+src/content/en/blog/2020/08/10/guix-srht.htmlbody src/content/en/blog/2020/08/10/guix-srht.snippets src/content/en/blog/2020/08/10/guix-srht.json: src/content/en/blog/2020/08/10/guix-srht.adoc
+src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody src/content/en/blog/2020/08/31/database-i-wish-i-had.snippets src/content/en/blog/2020/08/31/database-i-wish-i-had.json: src/content/en/blog/2020/08/31/database-i-wish-i-had.adoc
+src/content/en/blog/2020/10/05/cargo2nix.htmlbody src/content/en/blog/2020/10/05/cargo2nix.snippets src/content/en/blog/2020/10/05/cargo2nix.json: src/content/en/blog/2020/10/05/cargo2nix.adoc
+src/content/en/blog/2020/10/05/swift2nix.htmlbody src/content/en/blog/2020/10/05/swift2nix.snippets src/content/en/blog/2020/10/05/swift2nix.json: src/content/en/blog/2020/10/05/swift2nix.adoc
+src/content/en/blog/2020/10/19/feature-flags.htmlbody src/content/en/blog/2020/10/19/feature-flags.snippets src/content/en/blog/2020/10/19/feature-flags.json: src/content/en/blog/2020/10/19/feature-flags.adoc
+src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody src/content/en/blog/2020/10/20/wrong-interviewing.snippets src/content/en/blog/2020/10/20/wrong-interviewing.json: src/content/en/blog/2020/10/20/wrong-interviewing.adoc
+src/content/en/blog/2020/11/07/diy-bugs.htmlbody src/content/en/blog/2020/11/07/diy-bugs.snippets src/content/en/blog/2020/11/07/diy-bugs.json: src/content/en/blog/2020/11/07/diy-bugs.adoc
+src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody src/content/en/blog/2020/11/08/paradigm-shift-review.snippets src/content/en/blog/2020/11/08/paradigm-shift-review.json: src/content/en/blog/2020/11/08/paradigm-shift-review.adoc
+src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody src/content/en/blog/2020/11/12/database-parsers-trees.snippets src/content/en/blog/2020/11/12/database-parsers-trees.json: src/content/en/blog/2020/11/12/database-parsers-trees.adoc
+src/content/en/blog/2020/11/14/local-first-review.htmlbody src/content/en/blog/2020/11/14/local-first-review.snippets src/content/en/blog/2020/11/14/local-first-review.json: src/content/en/blog/2020/11/14/local-first-review.adoc
+src/content/en/blog/2021/01/26/remembering-ann.htmlbody src/content/en/blog/2021/01/26/remembering-ann.snippets src/content/en/blog/2021/01/26/remembering-ann.json: src/content/en/blog/2021/01/26/remembering-ann.adoc
+src/content/en/blog/2021/02/17/fallible.htmlbody src/content/en/blog/2021/02/17/fallible.snippets src/content/en/blog/2021/02/17/fallible.json: src/content/en/blog/2021/02/17/fallible.adoc
+src/content/en/blog/2021/04/29/relational-review.htmlbody src/content/en/blog/2021/04/29/relational-review.snippets src/content/en/blog/2021/04/29/relational-review.json: src/content/en/blog/2021/04/29/relational-review.adoc
+src/content/en/pastebin/2016/04/05/rpn.htmlbody src/content/en/pastebin/2016/04/05/rpn.snippets src/content/en/pastebin/2016/04/05/rpn.json: src/content/en/pastebin/2016/04/05/rpn.adoc
+src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody src/content/en/pastebin/2018/07/11/nix-pinning.snippets src/content/en/pastebin/2018/07/11/nix-pinning.json: src/content/en/pastebin/2018/07/11/nix-pinning.adoc
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc
+src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder.snippets src/content/en/pastebin/2018/07/13/guixbuilder.json: src/content/en/pastebin/2018/07/13/guixbuilder.adoc
+src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody src/content/en/pastebin/2018/07/13/nix-strpad.snippets src/content/en/pastebin/2018/07/13/nix-strpad.json: src/content/en/pastebin/2018/07/13/nix-strpad.adoc
+src/content/en/pastebin/2018/07/25/nix-exps.htmlbody src/content/en/pastebin/2018/07/25/nix-exps.snippets src/content/en/pastebin/2018/07/25/nix-exps.json: src/content/en/pastebin/2018/07/25/nix-exps.adoc
+src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody src/content/en/pastebin/2018/07/25/nix-showdrv.snippets src/content/en/pastebin/2018/07/25/nix-showdrv.json: src/content/en/pastebin/2018/07/25/nix-showdrv.adoc
+src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets src/content/en/pastebin/2019/06/08/inconsistent-hash.json: src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc
+src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets src/content/en/pastebin/2019/12/29/raku-tuple-type.json: src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc
+src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody src/content/en/pastebin/2020/01/04/guix-import-failure.snippets src/content/en/pastebin/2020/01/04/guix-import-failure.json: src/content/en/pastebin/2020/01/04/guix-import-failure.adoc
+src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody src/content/en/pastebin/2020/02/14/guix-shebang.snippets src/content/en/pastebin/2020/02/14/guix-shebang.json: src/content/en/pastebin/2020/02/14/guix-shebang.adoc
+src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody src/content/en/pastebin/2020/11/27/guix-build-local.snippets src/content/en/pastebin/2020/11/27/guix-build-local.json: src/content/en/pastebin/2020/11/27/guix-build-local.adoc
+src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets src/content/en/pastebin/2020/12/15/guix-pack-fail.json: src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc
+src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets src/content/en/pastebin/2021/04/03/naive-slugify-js.json: src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc
+src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets src/content/en/pastebin/2021/06/08/reading-session-pt1.json: src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc
+src/content/en/pastebin/2021/06/22/curl-wget.htmlbody src/content/en/pastebin/2021/06/22/curl-wget.snippets src/content/en/pastebin/2021/06/22/curl-wget.json: src/content/en/pastebin/2021/06/22/curl-wget.adoc
+src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody src/content/en/pastebin/2021/08/11/h1-spacing.snippets src/content/en/pastebin/2021/08/11/h1-spacing.json: src/content/en/pastebin/2021/08/11/h1-spacing.adoc
+src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody src/content/en/pastebin/2021/09/02/sicp-3-19.snippets src/content/en/pastebin/2021/09/02/sicp-3-19.json: src/content/en/pastebin/2021/09/02/sicp-3-19.adoc
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc
+src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody src/content/en/pastebin/2022/07/14/git-cleanup.snippets src/content/en/pastebin/2022/07/14/git-cleanup.json: src/content/en/pastebin/2022/07/14/git-cleanup.adoc
+src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody src/content/en/pastebin/2023/07/22/funcallable-amop.snippets src/content/en/pastebin/2023/07/22/funcallable-amop.json: src/content/en/pastebin/2023/07/22/funcallable-amop.adoc
+src/content/en/podcast/2020/12/19/test-entry.htmlbody src/content/en/podcast/2020/12/19/test-entry.snippets src/content/en/podcast/2020/12/19/test-entry.json: src/content/en/podcast/2020/12/19/test-entry.adoc
+src/content/en/screencast/2021/02/07/autoqemu.htmlbody src/content/en/screencast/2021/02/07/autoqemu.snippets src/content/en/screencast/2021/02/07/autoqemu.json: src/content/en/screencast/2021/02/07/autoqemu.adoc
+src/content/en/slide/2020/10/19/feature-flags.htmlbody src/content/en/slide/2020/10/19/feature-flags.snippets src/content/en/slide/2020/10/19/feature-flags.json: src/content/en/slide/2020/10/19/feature-flags.adoc
+src/content/en/slide/2020/11/14/local-first-hype.htmlbody src/content/en/slide/2020/11/14/local-first-hype.snippets src/content/en/slide/2020/11/14/local-first-hype.json: src/content/en/slide/2020/11/14/local-first-hype.adoc
+src/content/en/til/2020/08/12/filename-timestamp.htmlbody src/content/en/til/2020/08/12/filename-timestamp.snippets src/content/en/til/2020/08/12/filename-timestamp.json: src/content/en/til/2020/08/12/filename-timestamp.adoc
+src/content/en/til/2020/08/13/code-jekyll.htmlbody src/content/en/til/2020/08/13/code-jekyll.snippets src/content/en/til/2020/08/13/code-jekyll.json: src/content/en/til/2020/08/13/code-jekyll.adoc
+src/content/en/til/2020/08/14/browse-git.htmlbody src/content/en/til/2020/08/14/browse-git.snippets src/content/en/til/2020/08/14/browse-git.json: src/content/en/til/2020/08/14/browse-git.adoc
+src/content/en/til/2020/08/16/git-search.htmlbody src/content/en/til/2020/08/16/git-search.snippets src/content/en/til/2020/08/16/git-search.json: src/content/en/til/2020/08/16/git-search.adoc
+src/content/en/til/2020/08/28/grep-online.htmlbody src/content/en/til/2020/08/28/grep-online.snippets src/content/en/til/2020/08/28/grep-online.json: src/content/en/til/2020/08/28/grep-online.adoc
+src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody src/content/en/til/2020/09/04/cli-email-fun-profit.snippets src/content/en/til/2020/09/04/cli-email-fun-profit.json: src/content/en/til/2020/09/04/cli-email-fun-profit.adoc
+src/content/en/til/2020/09/05/oldschool-pr.htmlbody src/content/en/til/2020/09/05/oldschool-pr.snippets src/content/en/til/2020/09/05/oldschool-pr.json: src/content/en/til/2020/09/05/oldschool-pr.adoc
+src/content/en/til/2020/10/11/search-git-history.htmlbody src/content/en/til/2020/10/11/search-git-history.snippets src/content/en/til/2020/10/11/search-git-history.json: src/content/en/til/2020/10/11/search-git-history.adoc
+src/content/en/til/2020/11/08/find-broken-symlink.htmlbody src/content/en/til/2020/11/08/find-broken-symlink.snippets src/content/en/til/2020/11/08/find-broken-symlink.json: src/content/en/til/2020/11/08/find-broken-symlink.adoc
+src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets src/content/en/til/2020/11/12/diy-nix-bash-ci.json: src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc
+src/content/en/til/2020/11/12/git-bisect-automation.htmlbody src/content/en/til/2020/11/12/git-bisect-automation.snippets src/content/en/til/2020/11/12/git-bisect-automation.json: src/content/en/til/2020/11/12/git-bisect-automation.adoc
+src/content/en/til/2020/11/12/useful-bashvars.htmlbody src/content/en/til/2020/11/12/useful-bashvars.snippets src/content/en/til/2020/11/12/useful-bashvars.json: src/content/en/til/2020/11/12/useful-bashvars.adoc
+src/content/en/til/2020/11/14/gpodder-media.htmlbody src/content/en/til/2020/11/14/gpodder-media.snippets src/content/en/til/2020/11/14/gpodder-media.json: src/content/en/til/2020/11/14/gpodder-media.adoc
+src/content/en/til/2020/11/30/git-notes-ci.htmlbody src/content/en/til/2020/11/30/git-notes-ci.snippets src/content/en/til/2020/11/30/git-notes-ci.json: src/content/en/til/2020/11/30/git-notes-ci.adoc
+src/content/en/til/2020/12/15/shellcheck-repo.htmlbody src/content/en/til/2020/12/15/shellcheck-repo.snippets src/content/en/til/2020/12/15/shellcheck-repo.json: src/content/en/til/2020/12/15/shellcheck-repo.adoc
+src/content/en/til/2020/12/29/svg.htmlbody src/content/en/til/2020/12/29/svg.snippets src/content/en/til/2020/12/29/svg.json: src/content/en/til/2020/12/29/svg.adoc
+src/content/en/til/2021/01/12/curl-awk-emails.htmlbody src/content/en/til/2021/01/12/curl-awk-emails.snippets src/content/en/til/2021/01/12/curl-awk-emails.json: src/content/en/til/2021/01/12/curl-awk-emails.adoc
+src/content/en/til/2021/01/17/posix-shebang.htmlbody src/content/en/til/2021/01/17/posix-shebang.snippets src/content/en/til/2021/01/17/posix-shebang.json: src/content/en/til/2021/01/17/posix-shebang.adoc
+src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody src/content/en/til/2021/04/24/cl-generic-precedence.snippets src/content/en/til/2021/04/24/cl-generic-precedence.json: src/content/en/til/2021/04/24/cl-generic-precedence.adoc
+src/content/en/til/2021/04/24/clojure-autocurry.htmlbody src/content/en/til/2021/04/24/clojure-autocurry.snippets src/content/en/til/2021/04/24/clojure-autocurry.json: src/content/en/til/2021/04/24/clojure-autocurry.adoc
+src/content/en/til/2021/04/24/scm-nif.htmlbody src/content/en/til/2021/04/24/scm-nif.snippets src/content/en/til/2021/04/24/scm-nif.json: src/content/en/til/2021/04/24/scm-nif.adoc
+src/content/en/til/2021/07/23/git-tls-gpg.htmlbody src/content/en/til/2021/07/23/git-tls-gpg.snippets src/content/en/til/2021/07/23/git-tls-gpg.json: src/content/en/til/2021/07/23/git-tls-gpg.adoc
+src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody src/content/en/til/2021/08/11/js-bigint-reviver.snippets src/content/en/til/2021/08/11/js-bigint-reviver.json: src/content/en/til/2021/08/11/js-bigint-reviver.adoc
+src/content/en/til/2026/09/05/multiline-sh-comments.htmlbody src/content/en/til/2026/09/05/multiline-sh-comments.snippets src/content/en/til/2026/09/05/multiline-sh-comments.json: src/content/en/til/2026/09/05/multiline-sh-comments.adoc
+src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody src/content/pt/hea/2020/08/12/arquivo-datado.snippets src/content/pt/hea/2020/08/12/arquivo-datado.json: src/content/pt/hea/2020/08/12/arquivo-datado.adoc
+src/content/en/blog/index.htmlbody src/content/en/blog/index.snippets src/content/en/blog/index.json: src/content/en/blog/index.adoc
+src/content/en/pastebin/index.htmlbody src/content/en/pastebin/index.snippets src/content/en/pastebin/index.json: src/content/en/pastebin/index.adoc
+src/content/en/podcast/index.htmlbody src/content/en/podcast/index.snippets src/content/en/podcast/index.json: src/content/en/podcast/index.adoc
+src/content/en/screencast/index.htmlbody src/content/en/screencast/index.snippets src/content/en/screencast/index.json: src/content/en/screencast/index.adoc
+src/content/en/slide/index.htmlbody src/content/en/slide/index.snippets src/content/en/slide/index.json: src/content/en/slide/index.adoc
+src/content/en/til/index.htmlbody src/content/en/til/index.snippets src/content/en/til/index.json: src/content/en/til/index.adoc
+src/content/pt/hea/index.htmlbody src/content/pt/hea/index.snippets src/content/pt/hea/index.json: src/content/pt/hea/index.adoc
+src/content/en/blog/categories.htmlbody src/content/en/blog/categories.snippets src/content/en/blog/categories.json: src/content/en/blog/categories.adoc
+src/content/en/pastebin/categories.htmlbody src/content/en/pastebin/categories.snippets src/content/en/pastebin/categories.json: src/content/en/pastebin/categories.adoc
+src/content/en/podcast/categories.htmlbody src/content/en/podcast/categories.snippets src/content/en/podcast/categories.json: src/content/en/podcast/categories.adoc
+src/content/en/screencast/categories.htmlbody src/content/en/screencast/categories.snippets src/content/en/screencast/categories.json: src/content/en/screencast/categories.adoc
+src/content/en/slide/categories.htmlbody src/content/en/slide/categories.snippets src/content/en/slide/categories.json: src/content/en/slide/categories.adoc
+src/content/en/til/categories.htmlbody src/content/en/til/categories.snippets src/content/en/til/categories.json: src/content/en/til/categories.adoc
+src/content/pt/hea/categorias.htmlbody src/content/pt/hea/categorias.snippets src/content/pt/hea/categorias.json: src/content/pt/hea/categorias.adoc
+src/content/en/index.htmlbody src/content/en/index.snippets src/content/en/index.json: src/content/en/index.adoc
+src/content/eo/index.htmlbody src/content/eo/index.snippets src/content/eo/index.json: src/content/eo/index.adoc
+src/content/es/index.htmlbody src/content/es/index.snippets src/content/es/index.json: src/content/es/index.adoc
+src/content/fr/index.htmlbody src/content/fr/index.snippets src/content/fr/index.json: src/content/fr/index.adoc
+src/content/pt/index.htmlbody src/content/pt/index.snippets src/content/pt/index.json: src/content/pt/index.adoc
+src/content/en/about.html: src/content/en/about.json src/content/en/about.htmlbody
+src/content/eo/pri.html: src/content/eo/pri.json src/content/eo/pri.htmlbody
+src/content/es/acerca.html: src/content/es/acerca.json src/content/es/acerca.htmlbody
+src/content/fr/a-propos.html: src/content/fr/a-propos.json src/content/fr/a-propos.htmlbody
+src/content/pt/sobre.html: src/content/pt/sobre.json src/content/pt/sobre.htmlbody
+src/content/en/blog/2018/07/17/guix-nixos.html: src/content/en/blog/2018/07/17/guix-nixos.json src/content/en/blog/2018/07/17/guix-nixos.htmlbody
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.html: src/content/en/blog/2018/08/01/npm-ci-reproducibility.json src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody
+src/content/en/blog/2018/12/21/ytdl-subs.html: src/content/en/blog/2018/12/21/ytdl-subs.json src/content/en/blog/2018/12/21/ytdl-subs.htmlbody
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.html: src/content/en/blog/2019/06/02/nixos-stateless-workstation.json src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody
+src/content/en/blog/2020/08/10/guix-srht.html: src/content/en/blog/2020/08/10/guix-srht.json src/content/en/blog/2020/08/10/guix-srht.htmlbody
+src/content/en/blog/2020/08/31/database-i-wish-i-had.html: src/content/en/blog/2020/08/31/database-i-wish-i-had.json src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody
+src/content/en/blog/2020/10/05/cargo2nix.html: src/content/en/blog/2020/10/05/cargo2nix.json src/content/en/blog/2020/10/05/cargo2nix.htmlbody
+src/content/en/blog/2020/10/05/swift2nix.html: src/content/en/blog/2020/10/05/swift2nix.json src/content/en/blog/2020/10/05/swift2nix.htmlbody
+src/content/en/blog/2020/10/19/feature-flags.html: src/content/en/blog/2020/10/19/feature-flags.json src/content/en/blog/2020/10/19/feature-flags.htmlbody
+src/content/en/blog/2020/10/20/wrong-interviewing.html: src/content/en/blog/2020/10/20/wrong-interviewing.json src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody
+src/content/en/blog/2020/11/07/diy-bugs.html: src/content/en/blog/2020/11/07/diy-bugs.json src/content/en/blog/2020/11/07/diy-bugs.htmlbody
+src/content/en/blog/2020/11/08/paradigm-shift-review.html: src/content/en/blog/2020/11/08/paradigm-shift-review.json src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody
+src/content/en/blog/2020/11/12/database-parsers-trees.html: src/content/en/blog/2020/11/12/database-parsers-trees.json src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody
+src/content/en/blog/2020/11/14/local-first-review.html: src/content/en/blog/2020/11/14/local-first-review.json src/content/en/blog/2020/11/14/local-first-review.htmlbody
+src/content/en/blog/2021/01/26/remembering-ann.html: src/content/en/blog/2021/01/26/remembering-ann.json src/content/en/blog/2021/01/26/remembering-ann.htmlbody
+src/content/en/blog/2021/02/17/fallible.html: src/content/en/blog/2021/02/17/fallible.json src/content/en/blog/2021/02/17/fallible.htmlbody
+src/content/en/blog/2021/04/29/relational-review.html: src/content/en/blog/2021/04/29/relational-review.json src/content/en/blog/2021/04/29/relational-review.htmlbody
+src/content/en/pastebin/2016/04/05/rpn.html: src/content/en/pastebin/2016/04/05/rpn.json src/content/en/pastebin/2016/04/05/rpn.htmlbody
+src/content/en/pastebin/2018/07/11/nix-pinning.html: src/content/en/pastebin/2018/07/11/nix-pinning.json src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody
+src/content/en/pastebin/2018/07/13/guixbuilder.html: src/content/en/pastebin/2018/07/13/guixbuilder.json src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody
+src/content/en/pastebin/2018/07/13/nix-strpad.html: src/content/en/pastebin/2018/07/13/nix-strpad.json src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody
+src/content/en/pastebin/2018/07/25/nix-exps.html: src/content/en/pastebin/2018/07/25/nix-exps.json src/content/en/pastebin/2018/07/25/nix-exps.htmlbody
+src/content/en/pastebin/2018/07/25/nix-showdrv.html: src/content/en/pastebin/2018/07/25/nix-showdrv.json src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody
+src/content/en/pastebin/2019/06/08/inconsistent-hash.html: src/content/en/pastebin/2019/06/08/inconsistent-hash.json src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody
+src/content/en/pastebin/2019/12/29/raku-tuple-type.html: src/content/en/pastebin/2019/12/29/raku-tuple-type.json src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody
+src/content/en/pastebin/2020/01/04/guix-import-failure.html: src/content/en/pastebin/2020/01/04/guix-import-failure.json src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody
+src/content/en/pastebin/2020/02/14/guix-shebang.html: src/content/en/pastebin/2020/02/14/guix-shebang.json src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody
+src/content/en/pastebin/2020/11/27/guix-build-local.html: src/content/en/pastebin/2020/11/27/guix-build-local.json src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody
+src/content/en/pastebin/2020/12/15/guix-pack-fail.html: src/content/en/pastebin/2020/12/15/guix-pack-fail.json src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody
+src/content/en/pastebin/2021/04/03/naive-slugify-js.html: src/content/en/pastebin/2021/04/03/naive-slugify-js.json src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody
+src/content/en/pastebin/2021/06/08/reading-session-pt1.html: src/content/en/pastebin/2021/06/08/reading-session-pt1.json src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody
+src/content/en/pastebin/2021/06/22/curl-wget.html: src/content/en/pastebin/2021/06/22/curl-wget.json src/content/en/pastebin/2021/06/22/curl-wget.htmlbody
+src/content/en/pastebin/2021/08/11/h1-spacing.html: src/content/en/pastebin/2021/08/11/h1-spacing.json src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody
+src/content/en/pastebin/2021/09/02/sicp-3-19.html: src/content/en/pastebin/2021/09/02/sicp-3-19.json src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody
+src/content/en/pastebin/2022/07/14/git-cleanup.html: src/content/en/pastebin/2022/07/14/git-cleanup.json src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody
+src/content/en/pastebin/2023/07/22/funcallable-amop.html: src/content/en/pastebin/2023/07/22/funcallable-amop.json src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody
+src/content/en/podcast/2020/12/19/test-entry.html: src/content/en/podcast/2020/12/19/test-entry.json src/content/en/podcast/2020/12/19/test-entry.htmlbody
+src/content/en/screencast/2021/02/07/autoqemu.html: src/content/en/screencast/2021/02/07/autoqemu.json src/content/en/screencast/2021/02/07/autoqemu.htmlbody
+src/content/en/slide/2020/10/19/feature-flags.html: src/content/en/slide/2020/10/19/feature-flags.json src/content/en/slide/2020/10/19/feature-flags.htmlbody
+src/content/en/slide/2020/11/14/local-first-hype.html: src/content/en/slide/2020/11/14/local-first-hype.json src/content/en/slide/2020/11/14/local-first-hype.htmlbody
+src/content/en/til/2020/08/12/filename-timestamp.html: src/content/en/til/2020/08/12/filename-timestamp.json src/content/en/til/2020/08/12/filename-timestamp.htmlbody
+src/content/en/til/2020/08/13/code-jekyll.html: src/content/en/til/2020/08/13/code-jekyll.json src/content/en/til/2020/08/13/code-jekyll.htmlbody
+src/content/en/til/2020/08/14/browse-git.html: src/content/en/til/2020/08/14/browse-git.json src/content/en/til/2020/08/14/browse-git.htmlbody
+src/content/en/til/2020/08/16/git-search.html: src/content/en/til/2020/08/16/git-search.json src/content/en/til/2020/08/16/git-search.htmlbody
+src/content/en/til/2020/08/28/grep-online.html: src/content/en/til/2020/08/28/grep-online.json src/content/en/til/2020/08/28/grep-online.htmlbody
+src/content/en/til/2020/09/04/cli-email-fun-profit.html: src/content/en/til/2020/09/04/cli-email-fun-profit.json src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody
+src/content/en/til/2020/09/05/oldschool-pr.html: src/content/en/til/2020/09/05/oldschool-pr.json src/content/en/til/2020/09/05/oldschool-pr.htmlbody
+src/content/en/til/2020/10/11/search-git-history.html: src/content/en/til/2020/10/11/search-git-history.json src/content/en/til/2020/10/11/search-git-history.htmlbody
+src/content/en/til/2020/11/08/find-broken-symlink.html: src/content/en/til/2020/11/08/find-broken-symlink.json src/content/en/til/2020/11/08/find-broken-symlink.htmlbody
+src/content/en/til/2020/11/12/diy-nix-bash-ci.html: src/content/en/til/2020/11/12/diy-nix-bash-ci.json src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody
+src/content/en/til/2020/11/12/git-bisect-automation.html: src/content/en/til/2020/11/12/git-bisect-automation.json src/content/en/til/2020/11/12/git-bisect-automation.htmlbody
+src/content/en/til/2020/11/12/useful-bashvars.html: src/content/en/til/2020/11/12/useful-bashvars.json src/content/en/til/2020/11/12/useful-bashvars.htmlbody
+src/content/en/til/2020/11/14/gpodder-media.html: src/content/en/til/2020/11/14/gpodder-media.json src/content/en/til/2020/11/14/gpodder-media.htmlbody
+src/content/en/til/2020/11/30/git-notes-ci.html: src/content/en/til/2020/11/30/git-notes-ci.json src/content/en/til/2020/11/30/git-notes-ci.htmlbody
+src/content/en/til/2020/12/15/shellcheck-repo.html: src/content/en/til/2020/12/15/shellcheck-repo.json src/content/en/til/2020/12/15/shellcheck-repo.htmlbody
+src/content/en/til/2020/12/29/svg.html: src/content/en/til/2020/12/29/svg.json src/content/en/til/2020/12/29/svg.htmlbody
+src/content/en/til/2021/01/12/curl-awk-emails.html: src/content/en/til/2021/01/12/curl-awk-emails.json src/content/en/til/2021/01/12/curl-awk-emails.htmlbody
+src/content/en/til/2021/01/17/posix-shebang.html: src/content/en/til/2021/01/17/posix-shebang.json src/content/en/til/2021/01/17/posix-shebang.htmlbody
+src/content/en/til/2021/04/24/cl-generic-precedence.html: src/content/en/til/2021/04/24/cl-generic-precedence.json src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody
+src/content/en/til/2021/04/24/clojure-autocurry.html: src/content/en/til/2021/04/24/clojure-autocurry.json src/content/en/til/2021/04/24/clojure-autocurry.htmlbody
+src/content/en/til/2021/04/24/scm-nif.html: src/content/en/til/2021/04/24/scm-nif.json src/content/en/til/2021/04/24/scm-nif.htmlbody
+src/content/en/til/2021/07/23/git-tls-gpg.html: src/content/en/til/2021/07/23/git-tls-gpg.json src/content/en/til/2021/07/23/git-tls-gpg.htmlbody
+src/content/en/til/2021/08/11/js-bigint-reviver.html: src/content/en/til/2021/08/11/js-bigint-reviver.json src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody
+src/content/en/til/2026/09/05/multiline-sh-comments.html: src/content/en/til/2026/09/05/multiline-sh-comments.json src/content/en/til/2026/09/05/multiline-sh-comments.htmlbody
+src/content/pt/hea/2020/08/12/arquivo-datado.html: src/content/pt/hea/2020/08/12/arquivo-datado.json src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody
+src/content/en/blog/index.html: src/content/en/blog/index.json src/content/en/blog/index.htmlbody
+src/content/en/pastebin/index.html: src/content/en/pastebin/index.json src/content/en/pastebin/index.htmlbody
+src/content/en/podcast/index.html: src/content/en/podcast/index.json src/content/en/podcast/index.htmlbody
+src/content/en/screencast/index.html: src/content/en/screencast/index.json src/content/en/screencast/index.htmlbody
+src/content/en/slide/index.html: src/content/en/slide/index.json src/content/en/slide/index.htmlbody
+src/content/en/til/index.html: src/content/en/til/index.json src/content/en/til/index.htmlbody
+src/content/pt/hea/index.html: src/content/pt/hea/index.json src/content/pt/hea/index.htmlbody
+src/content/en/blog/categories.html: src/content/en/blog/categories.json src/content/en/blog/categories.htmlbody
+src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.json src/content/en/pastebin/categories.htmlbody
+src/content/en/podcast/categories.html: src/content/en/podcast/categories.json src/content/en/podcast/categories.htmlbody
+src/content/en/screencast/categories.html: src/content/en/screencast/categories.json src/content/en/screencast/categories.htmlbody
+src/content/en/slide/categories.html: src/content/en/slide/categories.json src/content/en/slide/categories.htmlbody
+src/content/en/til/categories.html: src/content/en/til/categories.json src/content/en/til/categories.htmlbody
+src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.json src/content/pt/hea/categorias.htmlbody
+src/content/en/index.html: src/content/en/index.json src/content/en/index.htmlbody
+src/content/eo/index.html: src/content/eo/index.json src/content/eo/index.htmlbody
+src/content/es/index.html: src/content/es/index.json src/content/es/index.htmlbody
+src/content/fr/index.html: src/content/fr/index.json src/content/fr/index.htmlbody
+src/content/pt/index.html: src/content/pt/index.json src/content/pt/index.htmlbody
+
+src/content/en/about.updatedat-check: src/content/en/about.json
+src/content/eo/pri.updatedat-check: src/content/eo/pri.json
+src/content/es/acerca.updatedat-check: src/content/es/acerca.json
+src/content/fr/a-propos.updatedat-check: src/content/fr/a-propos.json
+src/content/pt/sobre.updatedat-check: src/content/pt/sobre.json
+src/content/en/blog/2018/07/17/guix-nixos.updatedat-check: src/content/en/blog/2018/07/17/guix-nixos.json
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.updatedat-check: src/content/en/blog/2018/08/01/npm-ci-reproducibility.json
+src/content/en/blog/2018/12/21/ytdl-subs.updatedat-check: src/content/en/blog/2018/12/21/ytdl-subs.json
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.updatedat-check: src/content/en/blog/2019/06/02/nixos-stateless-workstation.json
+src/content/en/blog/2020/08/10/guix-srht.updatedat-check: src/content/en/blog/2020/08/10/guix-srht.json
+src/content/en/blog/2020/08/31/database-i-wish-i-had.updatedat-check: src/content/en/blog/2020/08/31/database-i-wish-i-had.json
+src/content/en/blog/2020/10/05/cargo2nix.updatedat-check: src/content/en/blog/2020/10/05/cargo2nix.json
+src/content/en/blog/2020/10/05/swift2nix.updatedat-check: src/content/en/blog/2020/10/05/swift2nix.json
+src/content/en/blog/2020/10/19/feature-flags.updatedat-check: src/content/en/blog/2020/10/19/feature-flags.json
+src/content/en/blog/2020/10/20/wrong-interviewing.updatedat-check: src/content/en/blog/2020/10/20/wrong-interviewing.json
+src/content/en/blog/2020/11/07/diy-bugs.updatedat-check: src/content/en/blog/2020/11/07/diy-bugs.json
+src/content/en/blog/2020/11/08/paradigm-shift-review.updatedat-check: src/content/en/blog/2020/11/08/paradigm-shift-review.json
+src/content/en/blog/2020/11/12/database-parsers-trees.updatedat-check: src/content/en/blog/2020/11/12/database-parsers-trees.json
+src/content/en/blog/2020/11/14/local-first-review.updatedat-check: src/content/en/blog/2020/11/14/local-first-review.json
+src/content/en/blog/2021/01/26/remembering-ann.updatedat-check: src/content/en/blog/2021/01/26/remembering-ann.json
+src/content/en/blog/2021/02/17/fallible.updatedat-check: src/content/en/blog/2021/02/17/fallible.json
+src/content/en/blog/2021/04/29/relational-review.updatedat-check: src/content/en/blog/2021/04/29/relational-review.json
+src/content/en/pastebin/2016/04/05/rpn.updatedat-check: src/content/en/pastebin/2016/04/05/rpn.json
+src/content/en/pastebin/2018/07/11/nix-pinning.updatedat-check: src/content/en/pastebin/2018/07/11/nix-pinning.json
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.updatedat-check: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json
+src/content/en/pastebin/2018/07/13/guixbuilder.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder.json
+src/content/en/pastebin/2018/07/13/nix-strpad.updatedat-check: src/content/en/pastebin/2018/07/13/nix-strpad.json
+src/content/en/pastebin/2018/07/25/nix-exps.updatedat-check: src/content/en/pastebin/2018/07/25/nix-exps.json
+src/content/en/pastebin/2018/07/25/nix-showdrv.updatedat-check: src/content/en/pastebin/2018/07/25/nix-showdrv.json
+src/content/en/pastebin/2019/06/08/inconsistent-hash.updatedat-check: src/content/en/pastebin/2019/06/08/inconsistent-hash.json
+src/content/en/pastebin/2019/12/29/raku-tuple-type.updatedat-check: src/content/en/pastebin/2019/12/29/raku-tuple-type.json
+src/content/en/pastebin/2020/01/04/guix-import-failure.updatedat-check: src/content/en/pastebin/2020/01/04/guix-import-failure.json
+src/content/en/pastebin/2020/02/14/guix-shebang.updatedat-check: src/content/en/pastebin/2020/02/14/guix-shebang.json
+src/content/en/pastebin/2020/11/27/guix-build-local.updatedat-check: src/content/en/pastebin/2020/11/27/guix-build-local.json
+src/content/en/pastebin/2020/12/15/guix-pack-fail.updatedat-check: src/content/en/pastebin/2020/12/15/guix-pack-fail.json
+src/content/en/pastebin/2021/04/03/naive-slugify-js.updatedat-check: src/content/en/pastebin/2021/04/03/naive-slugify-js.json
+src/content/en/pastebin/2021/06/08/reading-session-pt1.updatedat-check: src/content/en/pastebin/2021/06/08/reading-session-pt1.json
+src/content/en/pastebin/2021/06/22/curl-wget.updatedat-check: src/content/en/pastebin/2021/06/22/curl-wget.json
+src/content/en/pastebin/2021/08/11/h1-spacing.updatedat-check: src/content/en/pastebin/2021/08/11/h1-spacing.json
+src/content/en/pastebin/2021/09/02/sicp-3-19.updatedat-check: src/content/en/pastebin/2021/09/02/sicp-3-19.json
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.updatedat-check: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json
+src/content/en/pastebin/2022/07/14/git-cleanup.updatedat-check: src/content/en/pastebin/2022/07/14/git-cleanup.json
+src/content/en/pastebin/2023/07/22/funcallable-amop.updatedat-check: src/content/en/pastebin/2023/07/22/funcallable-amop.json
+src/content/en/podcast/2020/12/19/test-entry.updatedat-check: src/content/en/podcast/2020/12/19/test-entry.json
+src/content/en/screencast/2021/02/07/autoqemu.updatedat-check: src/content/en/screencast/2021/02/07/autoqemu.json
+src/content/en/slide/2020/10/19/feature-flags.updatedat-check: src/content/en/slide/2020/10/19/feature-flags.json
+src/content/en/slide/2020/11/14/local-first-hype.updatedat-check: src/content/en/slide/2020/11/14/local-first-hype.json
+src/content/en/til/2020/08/12/filename-timestamp.updatedat-check: src/content/en/til/2020/08/12/filename-timestamp.json
+src/content/en/til/2020/08/13/code-jekyll.updatedat-check: src/content/en/til/2020/08/13/code-jekyll.json
+src/content/en/til/2020/08/14/browse-git.updatedat-check: src/content/en/til/2020/08/14/browse-git.json
+src/content/en/til/2020/08/16/git-search.updatedat-check: src/content/en/til/2020/08/16/git-search.json
+src/content/en/til/2020/08/28/grep-online.updatedat-check: src/content/en/til/2020/08/28/grep-online.json
+src/content/en/til/2020/09/04/cli-email-fun-profit.updatedat-check: src/content/en/til/2020/09/04/cli-email-fun-profit.json
+src/content/en/til/2020/09/05/oldschool-pr.updatedat-check: src/content/en/til/2020/09/05/oldschool-pr.json
+src/content/en/til/2020/10/11/search-git-history.updatedat-check: src/content/en/til/2020/10/11/search-git-history.json
+src/content/en/til/2020/11/08/find-broken-symlink.updatedat-check: src/content/en/til/2020/11/08/find-broken-symlink.json
+src/content/en/til/2020/11/12/diy-nix-bash-ci.updatedat-check: src/content/en/til/2020/11/12/diy-nix-bash-ci.json
+src/content/en/til/2020/11/12/git-bisect-automation.updatedat-check: src/content/en/til/2020/11/12/git-bisect-automation.json
+src/content/en/til/2020/11/12/useful-bashvars.updatedat-check: src/content/en/til/2020/11/12/useful-bashvars.json
+src/content/en/til/2020/11/14/gpodder-media.updatedat-check: src/content/en/til/2020/11/14/gpodder-media.json
+src/content/en/til/2020/11/30/git-notes-ci.updatedat-check: src/content/en/til/2020/11/30/git-notes-ci.json
+src/content/en/til/2020/12/15/shellcheck-repo.updatedat-check: src/content/en/til/2020/12/15/shellcheck-repo.json
+src/content/en/til/2020/12/29/svg.updatedat-check: src/content/en/til/2020/12/29/svg.json
+src/content/en/til/2021/01/12/curl-awk-emails.updatedat-check: src/content/en/til/2021/01/12/curl-awk-emails.json
+src/content/en/til/2021/01/17/posix-shebang.updatedat-check: src/content/en/til/2021/01/17/posix-shebang.json
+src/content/en/til/2021/04/24/cl-generic-precedence.updatedat-check: src/content/en/til/2021/04/24/cl-generic-precedence.json
+src/content/en/til/2021/04/24/clojure-autocurry.updatedat-check: src/content/en/til/2021/04/24/clojure-autocurry.json
+src/content/en/til/2021/04/24/scm-nif.updatedat-check: src/content/en/til/2021/04/24/scm-nif.json
+src/content/en/til/2021/07/23/git-tls-gpg.updatedat-check: src/content/en/til/2021/07/23/git-tls-gpg.json
+src/content/en/til/2021/08/11/js-bigint-reviver.updatedat-check: src/content/en/til/2021/08/11/js-bigint-reviver.json
+src/content/en/til/2026/09/05/multiline-sh-comments.updatedat-check: src/content/en/til/2026/09/05/multiline-sh-comments.json
+src/content/pt/hea/2020/08/12/arquivo-datado.updatedat-check: src/content/pt/hea/2020/08/12/arquivo-datado.json
+src/content/en/blog/index.updatedat-check: src/content/en/blog/index.json
+src/content/en/pastebin/index.updatedat-check: src/content/en/pastebin/index.json
+src/content/en/podcast/index.updatedat-check: src/content/en/podcast/index.json
+src/content/en/screencast/index.updatedat-check: src/content/en/screencast/index.json
+src/content/en/slide/index.updatedat-check: src/content/en/slide/index.json
+src/content/en/til/index.updatedat-check: src/content/en/til/index.json
+src/content/pt/hea/index.updatedat-check: src/content/pt/hea/index.json
+src/content/en/blog/categories.updatedat-check: src/content/en/blog/categories.json
+src/content/en/pastebin/categories.updatedat-check: src/content/en/pastebin/categories.json
+src/content/en/podcast/categories.updatedat-check: src/content/en/podcast/categories.json
+src/content/en/screencast/categories.updatedat-check: src/content/en/screencast/categories.json
+src/content/en/slide/categories.updatedat-check: src/content/en/slide/categories.json
+src/content/en/til/categories.updatedat-check: src/content/en/til/categories.json
+src/content/pt/hea/categorias.updatedat-check: src/content/pt/hea/categorias.json
+src/content/en/index.updatedat-check: src/content/en/index.json
+src/content/eo/index.updatedat-check: src/content/eo/index.json
+src/content/es/index.updatedat-check: src/content/es/index.json
+src/content/fr/index.updatedat-check: src/content/fr/index.json
+src/content/pt/index.updatedat-check: src/content/pt/index.json
src/content/en/about.links-internal-check: src/content/en/about.links
-src/content/en/index.links-internal-check: src/content/en/index.links
+src/content/eo/pri.links-internal-check: src/content/eo/pri.links
+src/content/es/acerca.links-internal-check: src/content/es/acerca.links
+src/content/fr/a-propos.links-internal-check: src/content/fr/a-propos.links
src/content/pt/sobre.links-internal-check: src/content/pt/sobre.links
src/content/en/blog/2018/07/17/guix-nixos.links-internal-check: src/content/en/blog/2018/07/17/guix-nixos.links
src/content/en/blog/2018/08/01/npm-ci-reproducibility.links-internal-check: src/content/en/blog/2018/08/01/npm-ci-reproducibility.links
@@ -600,6 +498,8 @@ src/content/en/pastebin/2022/07/14/git-cleanup.links-internal-check: src/content
src/content/en/pastebin/2023/07/22/funcallable-amop.links-internal-check: src/content/en/pastebin/2023/07/22/funcallable-amop.links
src/content/en/podcast/2020/12/19/test-entry.links-internal-check: src/content/en/podcast/2020/12/19/test-entry.links
src/content/en/screencast/2021/02/07/autoqemu.links-internal-check: src/content/en/screencast/2021/02/07/autoqemu.links
+src/content/en/slide/2020/10/19/feature-flags.links-internal-check: src/content/en/slide/2020/10/19/feature-flags.links
+src/content/en/slide/2020/11/14/local-first-hype.links-internal-check: src/content/en/slide/2020/11/14/local-first-hype.links
src/content/en/til/2020/08/12/filename-timestamp.links-internal-check: src/content/en/til/2020/08/12/filename-timestamp.links
src/content/en/til/2020/08/13/code-jekyll.links-internal-check: src/content/en/til/2020/08/13/code-jekyll.links
src/content/en/til/2020/08/14/browse-git.links-internal-check: src/content/en/til/2020/08/14/browse-git.links
@@ -623,21 +523,31 @@ src/content/en/til/2021/04/24/clojure-autocurry.links-internal-check: src/conten
src/content/en/til/2021/04/24/scm-nif.links-internal-check: src/content/en/til/2021/04/24/scm-nif.links
src/content/en/til/2021/07/23/git-tls-gpg.links-internal-check: src/content/en/til/2021/07/23/git-tls-gpg.links
src/content/en/til/2021/08/11/js-bigint-reviver.links-internal-check: src/content/en/til/2021/08/11/js-bigint-reviver.links
+src/content/en/til/2026/09/05/multiline-sh-comments.links-internal-check: src/content/en/til/2026/09/05/multiline-sh-comments.links
src/content/pt/hea/2020/08/12/arquivo-datado.links-internal-check: src/content/pt/hea/2020/08/12/arquivo-datado.links
src/content/en/blog/index.links-internal-check: src/content/en/blog/index.links
src/content/en/pastebin/index.links-internal-check: src/content/en/pastebin/index.links
src/content/en/podcast/index.links-internal-check: src/content/en/podcast/index.links
src/content/en/screencast/index.links-internal-check: src/content/en/screencast/index.links
+src/content/en/slide/index.links-internal-check: src/content/en/slide/index.links
src/content/en/til/index.links-internal-check: src/content/en/til/index.links
src/content/pt/hea/index.links-internal-check: src/content/pt/hea/index.links
src/content/en/blog/categories.links-internal-check: src/content/en/blog/categories.links
src/content/en/pastebin/categories.links-internal-check: src/content/en/pastebin/categories.links
src/content/en/podcast/categories.links-internal-check: src/content/en/podcast/categories.links
src/content/en/screencast/categories.links-internal-check: src/content/en/screencast/categories.links
+src/content/en/slide/categories.links-internal-check: src/content/en/slide/categories.links
src/content/en/til/categories.links-internal-check: src/content/en/til/categories.links
src/content/pt/hea/categorias.links-internal-check: src/content/pt/hea/categorias.links
+src/content/en/index.links-internal-check: src/content/en/index.links
+src/content/eo/index.links-internal-check: src/content/eo/index.links
+src/content/es/index.links-internal-check: src/content/es/index.links
+src/content/fr/index.links-internal-check: src/content/fr/index.links
+src/content/pt/index.links-internal-check: src/content/pt/index.links
src/content/en/about.caslinks: src/content/en/about.links
-src/content/en/index.caslinks: src/content/en/index.links
+src/content/eo/pri.caslinks: src/content/eo/pri.links
+src/content/es/acerca.caslinks: src/content/es/acerca.links
+src/content/fr/a-propos.caslinks: src/content/fr/a-propos.links
src/content/pt/sobre.caslinks: src/content/pt/sobre.links
src/content/en/blog/2018/07/17/guix-nixos.caslinks: src/content/en/blog/2018/07/17/guix-nixos.links
src/content/en/blog/2018/08/01/npm-ci-reproducibility.caslinks: src/content/en/blog/2018/08/01/npm-ci-reproducibility.links
@@ -680,6 +590,8 @@ src/content/en/pastebin/2022/07/14/git-cleanup.caslinks: src/content/en/pastebin
src/content/en/pastebin/2023/07/22/funcallable-amop.caslinks: src/content/en/pastebin/2023/07/22/funcallable-amop.links
src/content/en/podcast/2020/12/19/test-entry.caslinks: src/content/en/podcast/2020/12/19/test-entry.links
src/content/en/screencast/2021/02/07/autoqemu.caslinks: src/content/en/screencast/2021/02/07/autoqemu.links
+src/content/en/slide/2020/10/19/feature-flags.caslinks: src/content/en/slide/2020/10/19/feature-flags.links
+src/content/en/slide/2020/11/14/local-first-hype.caslinks: src/content/en/slide/2020/11/14/local-first-hype.links
src/content/en/til/2020/08/12/filename-timestamp.caslinks: src/content/en/til/2020/08/12/filename-timestamp.links
src/content/en/til/2020/08/13/code-jekyll.caslinks: src/content/en/til/2020/08/13/code-jekyll.links
src/content/en/til/2020/08/14/browse-git.caslinks: src/content/en/til/2020/08/14/browse-git.links
@@ -703,271 +615,476 @@ src/content/en/til/2021/04/24/clojure-autocurry.caslinks: src/content/en/til/202
src/content/en/til/2021/04/24/scm-nif.caslinks: src/content/en/til/2021/04/24/scm-nif.links
src/content/en/til/2021/07/23/git-tls-gpg.caslinks: src/content/en/til/2021/07/23/git-tls-gpg.links
src/content/en/til/2021/08/11/js-bigint-reviver.caslinks: src/content/en/til/2021/08/11/js-bigint-reviver.links
+src/content/en/til/2026/09/05/multiline-sh-comments.caslinks: src/content/en/til/2026/09/05/multiline-sh-comments.links
src/content/pt/hea/2020/08/12/arquivo-datado.caslinks: src/content/pt/hea/2020/08/12/arquivo-datado.links
src/content/en/blog/index.caslinks: src/content/en/blog/index.links
src/content/en/pastebin/index.caslinks: src/content/en/pastebin/index.links
src/content/en/podcast/index.caslinks: src/content/en/podcast/index.links
src/content/en/screencast/index.caslinks: src/content/en/screencast/index.links
+src/content/en/slide/index.caslinks: src/content/en/slide/index.links
src/content/en/til/index.caslinks: src/content/en/til/index.links
src/content/pt/hea/index.caslinks: src/content/pt/hea/index.links
src/content/en/blog/categories.caslinks: src/content/en/blog/categories.links
src/content/en/pastebin/categories.caslinks: src/content/en/pastebin/categories.links
src/content/en/podcast/categories.caslinks: src/content/en/podcast/categories.links
src/content/en/screencast/categories.caslinks: src/content/en/screencast/categories.links
+src/content/en/slide/categories.caslinks: src/content/en/slide/categories.links
src/content/en/til/categories.caslinks: src/content/en/til/categories.links
src/content/pt/hea/categorias.caslinks: src/content/pt/hea/categorias.links
+src/content/en/index.caslinks: src/content/en/index.links
+src/content/eo/index.caslinks: src/content/eo/index.links
+src/content/es/index.caslinks: src/content/es/index.links
+src/content/fr/index.caslinks: src/content/fr/index.links
+src/content/pt/index.caslinks: src/content/pt/index.links
-src/content/en/blog/2018/07/17/guix-nixos.feedentry: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/07/17/guix-nixos.htmlbody
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.feedentry: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody
-src/content/en/blog/2018/12/21/ytdl-subs.feedentry: src/content/en/blog/2018/12/21/ytdl-subs.conf src/content/en/blog/2018/12/21/ytdl-subs.htmlbody
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.feedentry: src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody
-src/content/en/blog/2020/08/10/guix-srht.feedentry: src/content/en/blog/2020/08/10/guix-srht.conf src/content/en/blog/2020/08/10/guix-srht.htmlbody
-src/content/en/blog/2020/08/31/database-i-wish-i-had.feedentry: src/content/en/blog/2020/08/31/database-i-wish-i-had.conf src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody
-src/content/en/blog/2020/10/05/cargo2nix.feedentry: src/content/en/blog/2020/10/05/cargo2nix.conf src/content/en/blog/2020/10/05/cargo2nix.htmlbody
-src/content/en/blog/2020/10/05/swift2nix.feedentry: src/content/en/blog/2020/10/05/swift2nix.conf src/content/en/blog/2020/10/05/swift2nix.htmlbody
-src/content/en/blog/2020/10/19/feature-flags.feedentry: src/content/en/blog/2020/10/19/feature-flags.conf src/content/en/blog/2020/10/19/feature-flags.htmlbody
-src/content/en/blog/2020/10/20/wrong-interviewing.feedentry: src/content/en/blog/2020/10/20/wrong-interviewing.conf src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody
-src/content/en/blog/2020/11/07/diy-bugs.feedentry: src/content/en/blog/2020/11/07/diy-bugs.conf src/content/en/blog/2020/11/07/diy-bugs.htmlbody
-src/content/en/blog/2020/11/08/paradigm-shift-review.feedentry: src/content/en/blog/2020/11/08/paradigm-shift-review.conf src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody
-src/content/en/blog/2020/11/12/database-parsers-trees.feedentry: src/content/en/blog/2020/11/12/database-parsers-trees.conf src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody
-src/content/en/blog/2020/11/14/local-first-review.feedentry: src/content/en/blog/2020/11/14/local-first-review.conf src/content/en/blog/2020/11/14/local-first-review.htmlbody
-src/content/en/blog/2021/01/26/remembering-ann.feedentry: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/01/26/remembering-ann.htmlbody
-src/content/en/blog/2021/02/17/fallible.feedentry: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/02/17/fallible.htmlbody
-src/content/en/blog/2021/04/29/relational-review.feedentry: src/content/en/blog/2021/04/29/relational-review.conf src/content/en/blog/2021/04/29/relational-review.htmlbody
-src/content/en/pastebin/2016/04/05/rpn.feedentry: src/content/en/pastebin/2016/04/05/rpn.conf src/content/en/pastebin/2016/04/05/rpn.htmlbody
-src/content/en/pastebin/2018/07/11/nix-pinning.feedentry: src/content/en/pastebin/2018/07/11/nix-pinning.conf src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.feedentry: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody
-src/content/en/pastebin/2018/07/13/guixbuilder.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder.conf src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody
-src/content/en/pastebin/2018/07/13/nix-strpad.feedentry: src/content/en/pastebin/2018/07/13/nix-strpad.conf src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody
-src/content/en/pastebin/2018/07/25/nix-exps.feedentry: src/content/en/pastebin/2018/07/25/nix-exps.conf src/content/en/pastebin/2018/07/25/nix-exps.htmlbody
-src/content/en/pastebin/2018/07/25/nix-showdrv.feedentry: src/content/en/pastebin/2018/07/25/nix-showdrv.conf src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody
-src/content/en/pastebin/2019/06/08/inconsistent-hash.feedentry: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody
-src/content/en/pastebin/2019/12/29/raku-tuple-type.feedentry: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody
-src/content/en/pastebin/2020/01/04/guix-import-failure.feedentry: src/content/en/pastebin/2020/01/04/guix-import-failure.conf src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody
-src/content/en/pastebin/2020/02/14/guix-shebang.feedentry: src/content/en/pastebin/2020/02/14/guix-shebang.conf src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody
-src/content/en/pastebin/2020/11/27/guix-build-local.feedentry: src/content/en/pastebin/2020/11/27/guix-build-local.conf src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody
-src/content/en/pastebin/2020/12/15/guix-pack-fail.feedentry: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody
-src/content/en/pastebin/2021/04/03/naive-slugify-js.feedentry: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody
-src/content/en/pastebin/2021/06/08/reading-session-pt1.feedentry: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody
-src/content/en/pastebin/2021/06/22/curl-wget.feedentry: src/content/en/pastebin/2021/06/22/curl-wget.conf src/content/en/pastebin/2021/06/22/curl-wget.htmlbody
-src/content/en/pastebin/2021/08/11/h1-spacing.feedentry: src/content/en/pastebin/2021/08/11/h1-spacing.conf src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody
-src/content/en/pastebin/2021/09/02/sicp-3-19.feedentry: src/content/en/pastebin/2021/09/02/sicp-3-19.conf src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.feedentry: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody
-src/content/en/pastebin/2022/07/14/git-cleanup.feedentry: src/content/en/pastebin/2022/07/14/git-cleanup.conf src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody
-src/content/en/pastebin/2023/07/22/funcallable-amop.feedentry: src/content/en/pastebin/2023/07/22/funcallable-amop.conf src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody
-src/content/en/podcast/2020/12/19/test-entry.feedentry: src/content/en/podcast/2020/12/19/test-entry.conf src/content/en/podcast/2020/12/19/test-entry.htmlbody
-src/content/en/screencast/2021/02/07/autoqemu.feedentry: src/content/en/screencast/2021/02/07/autoqemu.conf src/content/en/screencast/2021/02/07/autoqemu.htmlbody
-src/content/en/til/2020/08/12/filename-timestamp.feedentry: src/content/en/til/2020/08/12/filename-timestamp.conf src/content/en/til/2020/08/12/filename-timestamp.htmlbody
-src/content/en/til/2020/08/13/code-jekyll.feedentry: src/content/en/til/2020/08/13/code-jekyll.conf src/content/en/til/2020/08/13/code-jekyll.htmlbody
-src/content/en/til/2020/08/14/browse-git.feedentry: src/content/en/til/2020/08/14/browse-git.conf src/content/en/til/2020/08/14/browse-git.htmlbody
-src/content/en/til/2020/08/16/git-search.feedentry: src/content/en/til/2020/08/16/git-search.conf src/content/en/til/2020/08/16/git-search.htmlbody
-src/content/en/til/2020/08/28/grep-online.feedentry: src/content/en/til/2020/08/28/grep-online.conf src/content/en/til/2020/08/28/grep-online.htmlbody
-src/content/en/til/2020/09/04/cli-email-fun-profit.feedentry: src/content/en/til/2020/09/04/cli-email-fun-profit.conf src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody
-src/content/en/til/2020/09/05/oldschool-pr.feedentry: src/content/en/til/2020/09/05/oldschool-pr.conf src/content/en/til/2020/09/05/oldschool-pr.htmlbody
-src/content/en/til/2020/10/11/search-git-history.feedentry: src/content/en/til/2020/10/11/search-git-history.conf src/content/en/til/2020/10/11/search-git-history.htmlbody
-src/content/en/til/2020/11/08/find-broken-symlink.feedentry: src/content/en/til/2020/11/08/find-broken-symlink.conf src/content/en/til/2020/11/08/find-broken-symlink.htmlbody
-src/content/en/til/2020/11/12/diy-nix-bash-ci.feedentry: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody
-src/content/en/til/2020/11/12/git-bisect-automation.feedentry: src/content/en/til/2020/11/12/git-bisect-automation.conf src/content/en/til/2020/11/12/git-bisect-automation.htmlbody
-src/content/en/til/2020/11/12/useful-bashvars.feedentry: src/content/en/til/2020/11/12/useful-bashvars.conf src/content/en/til/2020/11/12/useful-bashvars.htmlbody
-src/content/en/til/2020/11/14/gpodder-media.feedentry: src/content/en/til/2020/11/14/gpodder-media.conf src/content/en/til/2020/11/14/gpodder-media.htmlbody
-src/content/en/til/2020/11/30/git-notes-ci.feedentry: src/content/en/til/2020/11/30/git-notes-ci.conf src/content/en/til/2020/11/30/git-notes-ci.htmlbody
-src/content/en/til/2020/12/15/shellcheck-repo.feedentry: src/content/en/til/2020/12/15/shellcheck-repo.conf src/content/en/til/2020/12/15/shellcheck-repo.htmlbody
-src/content/en/til/2020/12/29/svg.feedentry: src/content/en/til/2020/12/29/svg.conf src/content/en/til/2020/12/29/svg.htmlbody
-src/content/en/til/2021/01/12/curl-awk-emails.feedentry: src/content/en/til/2021/01/12/curl-awk-emails.conf src/content/en/til/2021/01/12/curl-awk-emails.htmlbody
-src/content/en/til/2021/01/17/posix-shebang.feedentry: src/content/en/til/2021/01/17/posix-shebang.conf src/content/en/til/2021/01/17/posix-shebang.htmlbody
-src/content/en/til/2021/04/24/cl-generic-precedence.feedentry: src/content/en/til/2021/04/24/cl-generic-precedence.conf src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody
-src/content/en/til/2021/04/24/clojure-autocurry.feedentry: src/content/en/til/2021/04/24/clojure-autocurry.conf src/content/en/til/2021/04/24/clojure-autocurry.htmlbody
-src/content/en/til/2021/04/24/scm-nif.feedentry: src/content/en/til/2021/04/24/scm-nif.conf src/content/en/til/2021/04/24/scm-nif.htmlbody
-src/content/en/til/2021/07/23/git-tls-gpg.feedentry: src/content/en/til/2021/07/23/git-tls-gpg.conf src/content/en/til/2021/07/23/git-tls-gpg.htmlbody
-src/content/en/til/2021/08/11/js-bigint-reviver.feedentry: src/content/en/til/2021/08/11/js-bigint-reviver.conf src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody
-src/content/pt/hea/2020/08/12/arquivo-datado.feedentry: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody
-src/content/en/blog/2018/07/17/guix-nixos.sortdata: src/content/en/blog/2018/07/17/guix-nixos.conf
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.sortdata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf
-src/content/en/blog/2018/12/21/ytdl-subs.sortdata: src/content/en/blog/2018/12/21/ytdl-subs.conf
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.sortdata: src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf
-src/content/en/blog/2020/08/10/guix-srht.sortdata: src/content/en/blog/2020/08/10/guix-srht.conf
-src/content/en/blog/2020/08/31/database-i-wish-i-had.sortdata: src/content/en/blog/2020/08/31/database-i-wish-i-had.conf
-src/content/en/blog/2020/10/05/cargo2nix.sortdata: src/content/en/blog/2020/10/05/cargo2nix.conf
-src/content/en/blog/2020/10/05/swift2nix.sortdata: src/content/en/blog/2020/10/05/swift2nix.conf
-src/content/en/blog/2020/10/19/feature-flags.sortdata: src/content/en/blog/2020/10/19/feature-flags.conf
-src/content/en/blog/2020/10/20/wrong-interviewing.sortdata: src/content/en/blog/2020/10/20/wrong-interviewing.conf
-src/content/en/blog/2020/11/07/diy-bugs.sortdata: src/content/en/blog/2020/11/07/diy-bugs.conf
-src/content/en/blog/2020/11/08/paradigm-shift-review.sortdata: src/content/en/blog/2020/11/08/paradigm-shift-review.conf
-src/content/en/blog/2020/11/12/database-parsers-trees.sortdata: src/content/en/blog/2020/11/12/database-parsers-trees.conf
-src/content/en/blog/2020/11/14/local-first-review.sortdata: src/content/en/blog/2020/11/14/local-first-review.conf
-src/content/en/blog/2021/01/26/remembering-ann.sortdata: src/content/en/blog/2021/01/26/remembering-ann.conf
-src/content/en/blog/2021/02/17/fallible.sortdata: src/content/en/blog/2021/02/17/fallible.conf
-src/content/en/blog/2021/04/29/relational-review.sortdata: src/content/en/blog/2021/04/29/relational-review.conf
-src/content/en/pastebin/2016/04/05/rpn.sortdata: src/content/en/pastebin/2016/04/05/rpn.conf
-src/content/en/pastebin/2018/07/11/nix-pinning.sortdata: src/content/en/pastebin/2018/07/11/nix-pinning.conf
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.sortdata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf
-src/content/en/pastebin/2018/07/13/guixbuilder.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder.conf
-src/content/en/pastebin/2018/07/13/nix-strpad.sortdata: src/content/en/pastebin/2018/07/13/nix-strpad.conf
-src/content/en/pastebin/2018/07/25/nix-exps.sortdata: src/content/en/pastebin/2018/07/25/nix-exps.conf
-src/content/en/pastebin/2018/07/25/nix-showdrv.sortdata: src/content/en/pastebin/2018/07/25/nix-showdrv.conf
-src/content/en/pastebin/2019/06/08/inconsistent-hash.sortdata: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf
-src/content/en/pastebin/2019/12/29/raku-tuple-type.sortdata: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf
-src/content/en/pastebin/2020/01/04/guix-import-failure.sortdata: src/content/en/pastebin/2020/01/04/guix-import-failure.conf
-src/content/en/pastebin/2020/02/14/guix-shebang.sortdata: src/content/en/pastebin/2020/02/14/guix-shebang.conf
-src/content/en/pastebin/2020/11/27/guix-build-local.sortdata: src/content/en/pastebin/2020/11/27/guix-build-local.conf
-src/content/en/pastebin/2020/12/15/guix-pack-fail.sortdata: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf
-src/content/en/pastebin/2021/04/03/naive-slugify-js.sortdata: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf
-src/content/en/pastebin/2021/06/08/reading-session-pt1.sortdata: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf
-src/content/en/pastebin/2021/06/22/curl-wget.sortdata: src/content/en/pastebin/2021/06/22/curl-wget.conf
-src/content/en/pastebin/2021/08/11/h1-spacing.sortdata: src/content/en/pastebin/2021/08/11/h1-spacing.conf
-src/content/en/pastebin/2021/09/02/sicp-3-19.sortdata: src/content/en/pastebin/2021/09/02/sicp-3-19.conf
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.sortdata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf
-src/content/en/pastebin/2022/07/14/git-cleanup.sortdata: src/content/en/pastebin/2022/07/14/git-cleanup.conf
-src/content/en/pastebin/2023/07/22/funcallable-amop.sortdata: src/content/en/pastebin/2023/07/22/funcallable-amop.conf
-src/content/en/podcast/2020/12/19/test-entry.sortdata: src/content/en/podcast/2020/12/19/test-entry.conf
-src/content/en/screencast/2021/02/07/autoqemu.sortdata: src/content/en/screencast/2021/02/07/autoqemu.conf
-src/content/en/til/2020/08/12/filename-timestamp.sortdata: src/content/en/til/2020/08/12/filename-timestamp.conf
-src/content/en/til/2020/08/13/code-jekyll.sortdata: src/content/en/til/2020/08/13/code-jekyll.conf
-src/content/en/til/2020/08/14/browse-git.sortdata: src/content/en/til/2020/08/14/browse-git.conf
-src/content/en/til/2020/08/16/git-search.sortdata: src/content/en/til/2020/08/16/git-search.conf
-src/content/en/til/2020/08/28/grep-online.sortdata: src/content/en/til/2020/08/28/grep-online.conf
-src/content/en/til/2020/09/04/cli-email-fun-profit.sortdata: src/content/en/til/2020/09/04/cli-email-fun-profit.conf
-src/content/en/til/2020/09/05/oldschool-pr.sortdata: src/content/en/til/2020/09/05/oldschool-pr.conf
-src/content/en/til/2020/10/11/search-git-history.sortdata: src/content/en/til/2020/10/11/search-git-history.conf
-src/content/en/til/2020/11/08/find-broken-symlink.sortdata: src/content/en/til/2020/11/08/find-broken-symlink.conf
-src/content/en/til/2020/11/12/diy-nix-bash-ci.sortdata: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf
-src/content/en/til/2020/11/12/git-bisect-automation.sortdata: src/content/en/til/2020/11/12/git-bisect-automation.conf
-src/content/en/til/2020/11/12/useful-bashvars.sortdata: src/content/en/til/2020/11/12/useful-bashvars.conf
-src/content/en/til/2020/11/14/gpodder-media.sortdata: src/content/en/til/2020/11/14/gpodder-media.conf
-src/content/en/til/2020/11/30/git-notes-ci.sortdata: src/content/en/til/2020/11/30/git-notes-ci.conf
-src/content/en/til/2020/12/15/shellcheck-repo.sortdata: src/content/en/til/2020/12/15/shellcheck-repo.conf
-src/content/en/til/2020/12/29/svg.sortdata: src/content/en/til/2020/12/29/svg.conf
-src/content/en/til/2021/01/12/curl-awk-emails.sortdata: src/content/en/til/2021/01/12/curl-awk-emails.conf
-src/content/en/til/2021/01/17/posix-shebang.sortdata: src/content/en/til/2021/01/17/posix-shebang.conf
-src/content/en/til/2021/04/24/cl-generic-precedence.sortdata: src/content/en/til/2021/04/24/cl-generic-precedence.conf
-src/content/en/til/2021/04/24/clojure-autocurry.sortdata: src/content/en/til/2021/04/24/clojure-autocurry.conf
-src/content/en/til/2021/04/24/scm-nif.sortdata: src/content/en/til/2021/04/24/scm-nif.conf
-src/content/en/til/2021/07/23/git-tls-gpg.sortdata: src/content/en/til/2021/07/23/git-tls-gpg.conf
-src/content/en/til/2021/08/11/js-bigint-reviver.sortdata: src/content/en/til/2021/08/11/js-bigint-reviver.conf
-src/content/pt/hea/2020/08/12/arquivo-datado.sortdata: src/content/pt/hea/2020/08/12/arquivo-datado.conf
-src/content/en/blog/2018/07/17/guix-nixos.categorydata: src/content/en/blog/2018/07/17/guix-nixos.conf
-src/content/en/blog/2018/08/01/npm-ci-reproducibility.categorydata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf
-src/content/en/blog/2018/12/21/ytdl-subs.categorydata: src/content/en/blog/2018/12/21/ytdl-subs.conf
-src/content/en/blog/2019/06/02/nixos-stateless-workstation.categorydata: src/content/en/blog/2019/06/02/nixos-stateless-workstation.conf
-src/content/en/blog/2020/08/10/guix-srht.categorydata: src/content/en/blog/2020/08/10/guix-srht.conf
-src/content/en/blog/2020/08/31/database-i-wish-i-had.categorydata: src/content/en/blog/2020/08/31/database-i-wish-i-had.conf
-src/content/en/blog/2020/10/05/cargo2nix.categorydata: src/content/en/blog/2020/10/05/cargo2nix.conf
-src/content/en/blog/2020/10/05/swift2nix.categorydata: src/content/en/blog/2020/10/05/swift2nix.conf
-src/content/en/blog/2020/10/19/feature-flags.categorydata: src/content/en/blog/2020/10/19/feature-flags.conf
-src/content/en/blog/2020/10/20/wrong-interviewing.categorydata: src/content/en/blog/2020/10/20/wrong-interviewing.conf
-src/content/en/blog/2020/11/07/diy-bugs.categorydata: src/content/en/blog/2020/11/07/diy-bugs.conf
-src/content/en/blog/2020/11/08/paradigm-shift-review.categorydata: src/content/en/blog/2020/11/08/paradigm-shift-review.conf
-src/content/en/blog/2020/11/12/database-parsers-trees.categorydata: src/content/en/blog/2020/11/12/database-parsers-trees.conf
-src/content/en/blog/2020/11/14/local-first-review.categorydata: src/content/en/blog/2020/11/14/local-first-review.conf
-src/content/en/blog/2021/01/26/remembering-ann.categorydata: src/content/en/blog/2021/01/26/remembering-ann.conf
-src/content/en/blog/2021/02/17/fallible.categorydata: src/content/en/blog/2021/02/17/fallible.conf
-src/content/en/blog/2021/04/29/relational-review.categorydata: src/content/en/blog/2021/04/29/relational-review.conf
-src/content/en/pastebin/2016/04/05/rpn.categorydata: src/content/en/pastebin/2016/04/05/rpn.conf
-src/content/en/pastebin/2018/07/11/nix-pinning.categorydata: src/content/en/pastebin/2018/07/11/nix-pinning.conf
-src/content/en/pastebin/2018/07/13/guix-nixos-systemd.categorydata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf
-src/content/en/pastebin/2018/07/13/guixbuilder-nixos.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf
-src/content/en/pastebin/2018/07/13/guixbuilder.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder.conf
-src/content/en/pastebin/2018/07/13/nix-strpad.categorydata: src/content/en/pastebin/2018/07/13/nix-strpad.conf
-src/content/en/pastebin/2018/07/25/nix-exps.categorydata: src/content/en/pastebin/2018/07/25/nix-exps.conf
-src/content/en/pastebin/2018/07/25/nix-showdrv.categorydata: src/content/en/pastebin/2018/07/25/nix-showdrv.conf
-src/content/en/pastebin/2019/06/08/inconsistent-hash.categorydata: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf
-src/content/en/pastebin/2019/12/29/raku-tuple-type.categorydata: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf
-src/content/en/pastebin/2020/01/04/guix-import-failure.categorydata: src/content/en/pastebin/2020/01/04/guix-import-failure.conf
-src/content/en/pastebin/2020/02/14/guix-shebang.categorydata: src/content/en/pastebin/2020/02/14/guix-shebang.conf
-src/content/en/pastebin/2020/11/27/guix-build-local.categorydata: src/content/en/pastebin/2020/11/27/guix-build-local.conf
-src/content/en/pastebin/2020/12/15/guix-pack-fail.categorydata: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf
-src/content/en/pastebin/2021/04/03/naive-slugify-js.categorydata: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf
-src/content/en/pastebin/2021/06/08/reading-session-pt1.categorydata: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf
-src/content/en/pastebin/2021/06/22/curl-wget.categorydata: src/content/en/pastebin/2021/06/22/curl-wget.conf
-src/content/en/pastebin/2021/08/11/h1-spacing.categorydata: src/content/en/pastebin/2021/08/11/h1-spacing.conf
-src/content/en/pastebin/2021/09/02/sicp-3-19.categorydata: src/content/en/pastebin/2021/09/02/sicp-3-19.conf
-src/content/en/pastebin/2021/09/03/sicp-persistent-queue.categorydata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf
-src/content/en/pastebin/2022/07/14/git-cleanup.categorydata: src/content/en/pastebin/2022/07/14/git-cleanup.conf
-src/content/en/pastebin/2023/07/22/funcallable-amop.categorydata: src/content/en/pastebin/2023/07/22/funcallable-amop.conf
-src/content/en/podcast/2020/12/19/test-entry.categorydata: src/content/en/podcast/2020/12/19/test-entry.conf
-src/content/en/screencast/2021/02/07/autoqemu.categorydata: src/content/en/screencast/2021/02/07/autoqemu.conf
-src/content/en/til/2020/08/12/filename-timestamp.categorydata: src/content/en/til/2020/08/12/filename-timestamp.conf
-src/content/en/til/2020/08/13/code-jekyll.categorydata: src/content/en/til/2020/08/13/code-jekyll.conf
-src/content/en/til/2020/08/14/browse-git.categorydata: src/content/en/til/2020/08/14/browse-git.conf
-src/content/en/til/2020/08/16/git-search.categorydata: src/content/en/til/2020/08/16/git-search.conf
-src/content/en/til/2020/08/28/grep-online.categorydata: src/content/en/til/2020/08/28/grep-online.conf
-src/content/en/til/2020/09/04/cli-email-fun-profit.categorydata: src/content/en/til/2020/09/04/cli-email-fun-profit.conf
-src/content/en/til/2020/09/05/oldschool-pr.categorydata: src/content/en/til/2020/09/05/oldschool-pr.conf
-src/content/en/til/2020/10/11/search-git-history.categorydata: src/content/en/til/2020/10/11/search-git-history.conf
-src/content/en/til/2020/11/08/find-broken-symlink.categorydata: src/content/en/til/2020/11/08/find-broken-symlink.conf
-src/content/en/til/2020/11/12/diy-nix-bash-ci.categorydata: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf
-src/content/en/til/2020/11/12/git-bisect-automation.categorydata: src/content/en/til/2020/11/12/git-bisect-automation.conf
-src/content/en/til/2020/11/12/useful-bashvars.categorydata: src/content/en/til/2020/11/12/useful-bashvars.conf
-src/content/en/til/2020/11/14/gpodder-media.categorydata: src/content/en/til/2020/11/14/gpodder-media.conf
-src/content/en/til/2020/11/30/git-notes-ci.categorydata: src/content/en/til/2020/11/30/git-notes-ci.conf
-src/content/en/til/2020/12/15/shellcheck-repo.categorydata: src/content/en/til/2020/12/15/shellcheck-repo.conf
-src/content/en/til/2020/12/29/svg.categorydata: src/content/en/til/2020/12/29/svg.conf
-src/content/en/til/2021/01/12/curl-awk-emails.categorydata: src/content/en/til/2021/01/12/curl-awk-emails.conf
-src/content/en/til/2021/01/17/posix-shebang.categorydata: src/content/en/til/2021/01/17/posix-shebang.conf
-src/content/en/til/2021/04/24/cl-generic-precedence.categorydata: src/content/en/til/2021/04/24/cl-generic-precedence.conf
-src/content/en/til/2021/04/24/clojure-autocurry.categorydata: src/content/en/til/2021/04/24/clojure-autocurry.conf
-src/content/en/til/2021/04/24/scm-nif.categorydata: src/content/en/til/2021/04/24/scm-nif.conf
-src/content/en/til/2021/07/23/git-tls-gpg.categorydata: src/content/en/til/2021/07/23/git-tls-gpg.conf
-src/content/en/til/2021/08/11/js-bigint-reviver.categorydata: src/content/en/til/2021/08/11/js-bigint-reviver.conf
-src/content/pt/hea/2020/08/12/arquivo-datado.categorydata: src/content/pt/hea/2020/08/12/arquivo-datado.conf
+src/content/en/blog/2018/07/17/guix-nixos.feedentry: src/content/en/blog/2018/07/17/guix-nixos.json src/content/en/blog/2018/07/17/guix-nixos.htmlbody
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.feedentry: src/content/en/blog/2018/08/01/npm-ci-reproducibility.json src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody
+src/content/en/blog/2018/12/21/ytdl-subs.feedentry: src/content/en/blog/2018/12/21/ytdl-subs.json src/content/en/blog/2018/12/21/ytdl-subs.htmlbody
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.feedentry: src/content/en/blog/2019/06/02/nixos-stateless-workstation.json src/content/en/blog/2019/06/02/nixos-stateless-workstation.htmlbody
+src/content/en/blog/2020/08/10/guix-srht.feedentry: src/content/en/blog/2020/08/10/guix-srht.json src/content/en/blog/2020/08/10/guix-srht.htmlbody
+src/content/en/blog/2020/08/31/database-i-wish-i-had.feedentry: src/content/en/blog/2020/08/31/database-i-wish-i-had.json src/content/en/blog/2020/08/31/database-i-wish-i-had.htmlbody
+src/content/en/blog/2020/10/05/cargo2nix.feedentry: src/content/en/blog/2020/10/05/cargo2nix.json src/content/en/blog/2020/10/05/cargo2nix.htmlbody
+src/content/en/blog/2020/10/05/swift2nix.feedentry: src/content/en/blog/2020/10/05/swift2nix.json src/content/en/blog/2020/10/05/swift2nix.htmlbody
+src/content/en/blog/2020/10/19/feature-flags.feedentry: src/content/en/blog/2020/10/19/feature-flags.json src/content/en/blog/2020/10/19/feature-flags.htmlbody
+src/content/en/blog/2020/10/20/wrong-interviewing.feedentry: src/content/en/blog/2020/10/20/wrong-interviewing.json src/content/en/blog/2020/10/20/wrong-interviewing.htmlbody
+src/content/en/blog/2020/11/07/diy-bugs.feedentry: src/content/en/blog/2020/11/07/diy-bugs.json src/content/en/blog/2020/11/07/diy-bugs.htmlbody
+src/content/en/blog/2020/11/08/paradigm-shift-review.feedentry: src/content/en/blog/2020/11/08/paradigm-shift-review.json src/content/en/blog/2020/11/08/paradigm-shift-review.htmlbody
+src/content/en/blog/2020/11/12/database-parsers-trees.feedentry: src/content/en/blog/2020/11/12/database-parsers-trees.json src/content/en/blog/2020/11/12/database-parsers-trees.htmlbody
+src/content/en/blog/2020/11/14/local-first-review.feedentry: src/content/en/blog/2020/11/14/local-first-review.json src/content/en/blog/2020/11/14/local-first-review.htmlbody
+src/content/en/blog/2021/01/26/remembering-ann.feedentry: src/content/en/blog/2021/01/26/remembering-ann.json src/content/en/blog/2021/01/26/remembering-ann.htmlbody
+src/content/en/blog/2021/02/17/fallible.feedentry: src/content/en/blog/2021/02/17/fallible.json src/content/en/blog/2021/02/17/fallible.htmlbody
+src/content/en/blog/2021/04/29/relational-review.feedentry: src/content/en/blog/2021/04/29/relational-review.json src/content/en/blog/2021/04/29/relational-review.htmlbody
+src/content/en/pastebin/2016/04/05/rpn.feedentry: src/content/en/pastebin/2016/04/05/rpn.json src/content/en/pastebin/2016/04/05/rpn.htmlbody
+src/content/en/pastebin/2018/07/11/nix-pinning.feedentry: src/content/en/pastebin/2018/07/11/nix-pinning.json src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.feedentry: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody
+src/content/en/pastebin/2018/07/13/guixbuilder.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder.json src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody
+src/content/en/pastebin/2018/07/13/nix-strpad.feedentry: src/content/en/pastebin/2018/07/13/nix-strpad.json src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody
+src/content/en/pastebin/2018/07/25/nix-exps.feedentry: src/content/en/pastebin/2018/07/25/nix-exps.json src/content/en/pastebin/2018/07/25/nix-exps.htmlbody
+src/content/en/pastebin/2018/07/25/nix-showdrv.feedentry: src/content/en/pastebin/2018/07/25/nix-showdrv.json src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody
+src/content/en/pastebin/2019/06/08/inconsistent-hash.feedentry: src/content/en/pastebin/2019/06/08/inconsistent-hash.json src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody
+src/content/en/pastebin/2019/12/29/raku-tuple-type.feedentry: src/content/en/pastebin/2019/12/29/raku-tuple-type.json src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody
+src/content/en/pastebin/2020/01/04/guix-import-failure.feedentry: src/content/en/pastebin/2020/01/04/guix-import-failure.json src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody
+src/content/en/pastebin/2020/02/14/guix-shebang.feedentry: src/content/en/pastebin/2020/02/14/guix-shebang.json src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody
+src/content/en/pastebin/2020/11/27/guix-build-local.feedentry: src/content/en/pastebin/2020/11/27/guix-build-local.json src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody
+src/content/en/pastebin/2020/12/15/guix-pack-fail.feedentry: src/content/en/pastebin/2020/12/15/guix-pack-fail.json src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody
+src/content/en/pastebin/2021/04/03/naive-slugify-js.feedentry: src/content/en/pastebin/2021/04/03/naive-slugify-js.json src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody
+src/content/en/pastebin/2021/06/08/reading-session-pt1.feedentry: src/content/en/pastebin/2021/06/08/reading-session-pt1.json src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody
+src/content/en/pastebin/2021/06/22/curl-wget.feedentry: src/content/en/pastebin/2021/06/22/curl-wget.json src/content/en/pastebin/2021/06/22/curl-wget.htmlbody
+src/content/en/pastebin/2021/08/11/h1-spacing.feedentry: src/content/en/pastebin/2021/08/11/h1-spacing.json src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody
+src/content/en/pastebin/2021/09/02/sicp-3-19.feedentry: src/content/en/pastebin/2021/09/02/sicp-3-19.json src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.feedentry: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody
+src/content/en/pastebin/2022/07/14/git-cleanup.feedentry: src/content/en/pastebin/2022/07/14/git-cleanup.json src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody
+src/content/en/pastebin/2023/07/22/funcallable-amop.feedentry: src/content/en/pastebin/2023/07/22/funcallable-amop.json src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody
+src/content/en/podcast/2020/12/19/test-entry.feedentry: src/content/en/podcast/2020/12/19/test-entry.json src/content/en/podcast/2020/12/19/test-entry.htmlbody
+src/content/en/screencast/2021/02/07/autoqemu.feedentry: src/content/en/screencast/2021/02/07/autoqemu.json src/content/en/screencast/2021/02/07/autoqemu.htmlbody
+src/content/en/slide/2020/10/19/feature-flags.feedentry: src/content/en/slide/2020/10/19/feature-flags.json src/content/en/slide/2020/10/19/feature-flags.htmlbody
+src/content/en/slide/2020/11/14/local-first-hype.feedentry: src/content/en/slide/2020/11/14/local-first-hype.json src/content/en/slide/2020/11/14/local-first-hype.htmlbody
+src/content/en/til/2020/08/12/filename-timestamp.feedentry: src/content/en/til/2020/08/12/filename-timestamp.json src/content/en/til/2020/08/12/filename-timestamp.htmlbody
+src/content/en/til/2020/08/13/code-jekyll.feedentry: src/content/en/til/2020/08/13/code-jekyll.json src/content/en/til/2020/08/13/code-jekyll.htmlbody
+src/content/en/til/2020/08/14/browse-git.feedentry: src/content/en/til/2020/08/14/browse-git.json src/content/en/til/2020/08/14/browse-git.htmlbody
+src/content/en/til/2020/08/16/git-search.feedentry: src/content/en/til/2020/08/16/git-search.json src/content/en/til/2020/08/16/git-search.htmlbody
+src/content/en/til/2020/08/28/grep-online.feedentry: src/content/en/til/2020/08/28/grep-online.json src/content/en/til/2020/08/28/grep-online.htmlbody
+src/content/en/til/2020/09/04/cli-email-fun-profit.feedentry: src/content/en/til/2020/09/04/cli-email-fun-profit.json src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody
+src/content/en/til/2020/09/05/oldschool-pr.feedentry: src/content/en/til/2020/09/05/oldschool-pr.json src/content/en/til/2020/09/05/oldschool-pr.htmlbody
+src/content/en/til/2020/10/11/search-git-history.feedentry: src/content/en/til/2020/10/11/search-git-history.json src/content/en/til/2020/10/11/search-git-history.htmlbody
+src/content/en/til/2020/11/08/find-broken-symlink.feedentry: src/content/en/til/2020/11/08/find-broken-symlink.json src/content/en/til/2020/11/08/find-broken-symlink.htmlbody
+src/content/en/til/2020/11/12/diy-nix-bash-ci.feedentry: src/content/en/til/2020/11/12/diy-nix-bash-ci.json src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody
+src/content/en/til/2020/11/12/git-bisect-automation.feedentry: src/content/en/til/2020/11/12/git-bisect-automation.json src/content/en/til/2020/11/12/git-bisect-automation.htmlbody
+src/content/en/til/2020/11/12/useful-bashvars.feedentry: src/content/en/til/2020/11/12/useful-bashvars.json src/content/en/til/2020/11/12/useful-bashvars.htmlbody
+src/content/en/til/2020/11/14/gpodder-media.feedentry: src/content/en/til/2020/11/14/gpodder-media.json src/content/en/til/2020/11/14/gpodder-media.htmlbody
+src/content/en/til/2020/11/30/git-notes-ci.feedentry: src/content/en/til/2020/11/30/git-notes-ci.json src/content/en/til/2020/11/30/git-notes-ci.htmlbody
+src/content/en/til/2020/12/15/shellcheck-repo.feedentry: src/content/en/til/2020/12/15/shellcheck-repo.json src/content/en/til/2020/12/15/shellcheck-repo.htmlbody
+src/content/en/til/2020/12/29/svg.feedentry: src/content/en/til/2020/12/29/svg.json src/content/en/til/2020/12/29/svg.htmlbody
+src/content/en/til/2021/01/12/curl-awk-emails.feedentry: src/content/en/til/2021/01/12/curl-awk-emails.json src/content/en/til/2021/01/12/curl-awk-emails.htmlbody
+src/content/en/til/2021/01/17/posix-shebang.feedentry: src/content/en/til/2021/01/17/posix-shebang.json src/content/en/til/2021/01/17/posix-shebang.htmlbody
+src/content/en/til/2021/04/24/cl-generic-precedence.feedentry: src/content/en/til/2021/04/24/cl-generic-precedence.json src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody
+src/content/en/til/2021/04/24/clojure-autocurry.feedentry: src/content/en/til/2021/04/24/clojure-autocurry.json src/content/en/til/2021/04/24/clojure-autocurry.htmlbody
+src/content/en/til/2021/04/24/scm-nif.feedentry: src/content/en/til/2021/04/24/scm-nif.json src/content/en/til/2021/04/24/scm-nif.htmlbody
+src/content/en/til/2021/07/23/git-tls-gpg.feedentry: src/content/en/til/2021/07/23/git-tls-gpg.json src/content/en/til/2021/07/23/git-tls-gpg.htmlbody
+src/content/en/til/2021/08/11/js-bigint-reviver.feedentry: src/content/en/til/2021/08/11/js-bigint-reviver.json src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody
+src/content/en/til/2026/09/05/multiline-sh-comments.feedentry: src/content/en/til/2026/09/05/multiline-sh-comments.json src/content/en/til/2026/09/05/multiline-sh-comments.htmlbody
+src/content/pt/hea/2020/08/12/arquivo-datado.feedentry: src/content/pt/hea/2020/08/12/arquivo-datado.json src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody
+src/content/en/blog/2018/07/17/guix-nixos.sortdata: src/content/en/blog/2018/07/17/guix-nixos.json
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.sortdata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.json
+src/content/en/blog/2018/12/21/ytdl-subs.sortdata: src/content/en/blog/2018/12/21/ytdl-subs.json
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.sortdata: src/content/en/blog/2019/06/02/nixos-stateless-workstation.json
+src/content/en/blog/2020/08/10/guix-srht.sortdata: src/content/en/blog/2020/08/10/guix-srht.json
+src/content/en/blog/2020/08/31/database-i-wish-i-had.sortdata: src/content/en/blog/2020/08/31/database-i-wish-i-had.json
+src/content/en/blog/2020/10/05/cargo2nix.sortdata: src/content/en/blog/2020/10/05/cargo2nix.json
+src/content/en/blog/2020/10/05/swift2nix.sortdata: src/content/en/blog/2020/10/05/swift2nix.json
+src/content/en/blog/2020/10/19/feature-flags.sortdata: src/content/en/blog/2020/10/19/feature-flags.json
+src/content/en/blog/2020/10/20/wrong-interviewing.sortdata: src/content/en/blog/2020/10/20/wrong-interviewing.json
+src/content/en/blog/2020/11/07/diy-bugs.sortdata: src/content/en/blog/2020/11/07/diy-bugs.json
+src/content/en/blog/2020/11/08/paradigm-shift-review.sortdata: src/content/en/blog/2020/11/08/paradigm-shift-review.json
+src/content/en/blog/2020/11/12/database-parsers-trees.sortdata: src/content/en/blog/2020/11/12/database-parsers-trees.json
+src/content/en/blog/2020/11/14/local-first-review.sortdata: src/content/en/blog/2020/11/14/local-first-review.json
+src/content/en/blog/2021/01/26/remembering-ann.sortdata: src/content/en/blog/2021/01/26/remembering-ann.json
+src/content/en/blog/2021/02/17/fallible.sortdata: src/content/en/blog/2021/02/17/fallible.json
+src/content/en/blog/2021/04/29/relational-review.sortdata: src/content/en/blog/2021/04/29/relational-review.json
+src/content/en/pastebin/2016/04/05/rpn.sortdata: src/content/en/pastebin/2016/04/05/rpn.json
+src/content/en/pastebin/2018/07/11/nix-pinning.sortdata: src/content/en/pastebin/2018/07/11/nix-pinning.json
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.sortdata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json
+src/content/en/pastebin/2018/07/13/guixbuilder.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder.json
+src/content/en/pastebin/2018/07/13/nix-strpad.sortdata: src/content/en/pastebin/2018/07/13/nix-strpad.json
+src/content/en/pastebin/2018/07/25/nix-exps.sortdata: src/content/en/pastebin/2018/07/25/nix-exps.json
+src/content/en/pastebin/2018/07/25/nix-showdrv.sortdata: src/content/en/pastebin/2018/07/25/nix-showdrv.json
+src/content/en/pastebin/2019/06/08/inconsistent-hash.sortdata: src/content/en/pastebin/2019/06/08/inconsistent-hash.json
+src/content/en/pastebin/2019/12/29/raku-tuple-type.sortdata: src/content/en/pastebin/2019/12/29/raku-tuple-type.json
+src/content/en/pastebin/2020/01/04/guix-import-failure.sortdata: src/content/en/pastebin/2020/01/04/guix-import-failure.json
+src/content/en/pastebin/2020/02/14/guix-shebang.sortdata: src/content/en/pastebin/2020/02/14/guix-shebang.json
+src/content/en/pastebin/2020/11/27/guix-build-local.sortdata: src/content/en/pastebin/2020/11/27/guix-build-local.json
+src/content/en/pastebin/2020/12/15/guix-pack-fail.sortdata: src/content/en/pastebin/2020/12/15/guix-pack-fail.json
+src/content/en/pastebin/2021/04/03/naive-slugify-js.sortdata: src/content/en/pastebin/2021/04/03/naive-slugify-js.json
+src/content/en/pastebin/2021/06/08/reading-session-pt1.sortdata: src/content/en/pastebin/2021/06/08/reading-session-pt1.json
+src/content/en/pastebin/2021/06/22/curl-wget.sortdata: src/content/en/pastebin/2021/06/22/curl-wget.json
+src/content/en/pastebin/2021/08/11/h1-spacing.sortdata: src/content/en/pastebin/2021/08/11/h1-spacing.json
+src/content/en/pastebin/2021/09/02/sicp-3-19.sortdata: src/content/en/pastebin/2021/09/02/sicp-3-19.json
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.sortdata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json
+src/content/en/pastebin/2022/07/14/git-cleanup.sortdata: src/content/en/pastebin/2022/07/14/git-cleanup.json
+src/content/en/pastebin/2023/07/22/funcallable-amop.sortdata: src/content/en/pastebin/2023/07/22/funcallable-amop.json
+src/content/en/podcast/2020/12/19/test-entry.sortdata: src/content/en/podcast/2020/12/19/test-entry.json
+src/content/en/screencast/2021/02/07/autoqemu.sortdata: src/content/en/screencast/2021/02/07/autoqemu.json
+src/content/en/slide/2020/10/19/feature-flags.sortdata: src/content/en/slide/2020/10/19/feature-flags.json
+src/content/en/slide/2020/11/14/local-first-hype.sortdata: src/content/en/slide/2020/11/14/local-first-hype.json
+src/content/en/til/2020/08/12/filename-timestamp.sortdata: src/content/en/til/2020/08/12/filename-timestamp.json
+src/content/en/til/2020/08/13/code-jekyll.sortdata: src/content/en/til/2020/08/13/code-jekyll.json
+src/content/en/til/2020/08/14/browse-git.sortdata: src/content/en/til/2020/08/14/browse-git.json
+src/content/en/til/2020/08/16/git-search.sortdata: src/content/en/til/2020/08/16/git-search.json
+src/content/en/til/2020/08/28/grep-online.sortdata: src/content/en/til/2020/08/28/grep-online.json
+src/content/en/til/2020/09/04/cli-email-fun-profit.sortdata: src/content/en/til/2020/09/04/cli-email-fun-profit.json
+src/content/en/til/2020/09/05/oldschool-pr.sortdata: src/content/en/til/2020/09/05/oldschool-pr.json
+src/content/en/til/2020/10/11/search-git-history.sortdata: src/content/en/til/2020/10/11/search-git-history.json
+src/content/en/til/2020/11/08/find-broken-symlink.sortdata: src/content/en/til/2020/11/08/find-broken-symlink.json
+src/content/en/til/2020/11/12/diy-nix-bash-ci.sortdata: src/content/en/til/2020/11/12/diy-nix-bash-ci.json
+src/content/en/til/2020/11/12/git-bisect-automation.sortdata: src/content/en/til/2020/11/12/git-bisect-automation.json
+src/content/en/til/2020/11/12/useful-bashvars.sortdata: src/content/en/til/2020/11/12/useful-bashvars.json
+src/content/en/til/2020/11/14/gpodder-media.sortdata: src/content/en/til/2020/11/14/gpodder-media.json
+src/content/en/til/2020/11/30/git-notes-ci.sortdata: src/content/en/til/2020/11/30/git-notes-ci.json
+src/content/en/til/2020/12/15/shellcheck-repo.sortdata: src/content/en/til/2020/12/15/shellcheck-repo.json
+src/content/en/til/2020/12/29/svg.sortdata: src/content/en/til/2020/12/29/svg.json
+src/content/en/til/2021/01/12/curl-awk-emails.sortdata: src/content/en/til/2021/01/12/curl-awk-emails.json
+src/content/en/til/2021/01/17/posix-shebang.sortdata: src/content/en/til/2021/01/17/posix-shebang.json
+src/content/en/til/2021/04/24/cl-generic-precedence.sortdata: src/content/en/til/2021/04/24/cl-generic-precedence.json
+src/content/en/til/2021/04/24/clojure-autocurry.sortdata: src/content/en/til/2021/04/24/clojure-autocurry.json
+src/content/en/til/2021/04/24/scm-nif.sortdata: src/content/en/til/2021/04/24/scm-nif.json
+src/content/en/til/2021/07/23/git-tls-gpg.sortdata: src/content/en/til/2021/07/23/git-tls-gpg.json
+src/content/en/til/2021/08/11/js-bigint-reviver.sortdata: src/content/en/til/2021/08/11/js-bigint-reviver.json
+src/content/en/til/2026/09/05/multiline-sh-comments.sortdata: src/content/en/til/2026/09/05/multiline-sh-comments.json
+src/content/pt/hea/2020/08/12/arquivo-datado.sortdata: src/content/pt/hea/2020/08/12/arquivo-datado.json
+src/content/en/blog/2018/07/17/guix-nixos.html: src/content/en/blog/2018/07/17/guix-nixos.prevnext
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.html: src/content/en/blog/2018/08/01/npm-ci-reproducibility.prevnext
+src/content/en/blog/2018/12/21/ytdl-subs.html: src/content/en/blog/2018/12/21/ytdl-subs.prevnext
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.html: src/content/en/blog/2019/06/02/nixos-stateless-workstation.prevnext
+src/content/en/blog/2020/08/10/guix-srht.html: src/content/en/blog/2020/08/10/guix-srht.prevnext
+src/content/en/blog/2020/08/31/database-i-wish-i-had.html: src/content/en/blog/2020/08/31/database-i-wish-i-had.prevnext
+src/content/en/blog/2020/10/05/cargo2nix.html: src/content/en/blog/2020/10/05/cargo2nix.prevnext
+src/content/en/blog/2020/10/05/swift2nix.html: src/content/en/blog/2020/10/05/swift2nix.prevnext
+src/content/en/blog/2020/10/19/feature-flags.html: src/content/en/blog/2020/10/19/feature-flags.prevnext
+src/content/en/blog/2020/10/20/wrong-interviewing.html: src/content/en/blog/2020/10/20/wrong-interviewing.prevnext
+src/content/en/blog/2020/11/07/diy-bugs.html: src/content/en/blog/2020/11/07/diy-bugs.prevnext
+src/content/en/blog/2020/11/08/paradigm-shift-review.html: src/content/en/blog/2020/11/08/paradigm-shift-review.prevnext
+src/content/en/blog/2020/11/12/database-parsers-trees.html: src/content/en/blog/2020/11/12/database-parsers-trees.prevnext
+src/content/en/blog/2020/11/14/local-first-review.html: src/content/en/blog/2020/11/14/local-first-review.prevnext
+src/content/en/blog/2021/01/26/remembering-ann.html: src/content/en/blog/2021/01/26/remembering-ann.prevnext
+src/content/en/blog/2021/02/17/fallible.html: src/content/en/blog/2021/02/17/fallible.prevnext
+src/content/en/blog/2021/04/29/relational-review.html: src/content/en/blog/2021/04/29/relational-review.prevnext
+src/content/en/pastebin/2016/04/05/rpn.html: src/content/en/pastebin/2016/04/05/rpn.prevnext
+src/content/en/pastebin/2018/07/11/nix-pinning.html: src/content/en/pastebin/2018/07/11/nix-pinning.prevnext
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.prevnext
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.prevnext
+src/content/en/pastebin/2018/07/13/guixbuilder.html: src/content/en/pastebin/2018/07/13/guixbuilder.prevnext
+src/content/en/pastebin/2018/07/13/nix-strpad.html: src/content/en/pastebin/2018/07/13/nix-strpad.prevnext
+src/content/en/pastebin/2018/07/25/nix-exps.html: src/content/en/pastebin/2018/07/25/nix-exps.prevnext
+src/content/en/pastebin/2018/07/25/nix-showdrv.html: src/content/en/pastebin/2018/07/25/nix-showdrv.prevnext
+src/content/en/pastebin/2019/06/08/inconsistent-hash.html: src/content/en/pastebin/2019/06/08/inconsistent-hash.prevnext
+src/content/en/pastebin/2019/12/29/raku-tuple-type.html: src/content/en/pastebin/2019/12/29/raku-tuple-type.prevnext
+src/content/en/pastebin/2020/01/04/guix-import-failure.html: src/content/en/pastebin/2020/01/04/guix-import-failure.prevnext
+src/content/en/pastebin/2020/02/14/guix-shebang.html: src/content/en/pastebin/2020/02/14/guix-shebang.prevnext
+src/content/en/pastebin/2020/11/27/guix-build-local.html: src/content/en/pastebin/2020/11/27/guix-build-local.prevnext
+src/content/en/pastebin/2020/12/15/guix-pack-fail.html: src/content/en/pastebin/2020/12/15/guix-pack-fail.prevnext
+src/content/en/pastebin/2021/04/03/naive-slugify-js.html: src/content/en/pastebin/2021/04/03/naive-slugify-js.prevnext
+src/content/en/pastebin/2021/06/08/reading-session-pt1.html: src/content/en/pastebin/2021/06/08/reading-session-pt1.prevnext
+src/content/en/pastebin/2021/06/22/curl-wget.html: src/content/en/pastebin/2021/06/22/curl-wget.prevnext
+src/content/en/pastebin/2021/08/11/h1-spacing.html: src/content/en/pastebin/2021/08/11/h1-spacing.prevnext
+src/content/en/pastebin/2021/09/02/sicp-3-19.html: src/content/en/pastebin/2021/09/02/sicp-3-19.prevnext
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.prevnext
+src/content/en/pastebin/2022/07/14/git-cleanup.html: src/content/en/pastebin/2022/07/14/git-cleanup.prevnext
+src/content/en/pastebin/2023/07/22/funcallable-amop.html: src/content/en/pastebin/2023/07/22/funcallable-amop.prevnext
+src/content/en/podcast/2020/12/19/test-entry.html: src/content/en/podcast/2020/12/19/test-entry.prevnext
+src/content/en/screencast/2021/02/07/autoqemu.html: src/content/en/screencast/2021/02/07/autoqemu.prevnext
+src/content/en/slide/2020/10/19/feature-flags.html: src/content/en/slide/2020/10/19/feature-flags.prevnext
+src/content/en/slide/2020/11/14/local-first-hype.html: src/content/en/slide/2020/11/14/local-first-hype.prevnext
+src/content/en/til/2020/08/12/filename-timestamp.html: src/content/en/til/2020/08/12/filename-timestamp.prevnext
+src/content/en/til/2020/08/13/code-jekyll.html: src/content/en/til/2020/08/13/code-jekyll.prevnext
+src/content/en/til/2020/08/14/browse-git.html: src/content/en/til/2020/08/14/browse-git.prevnext
+src/content/en/til/2020/08/16/git-search.html: src/content/en/til/2020/08/16/git-search.prevnext
+src/content/en/til/2020/08/28/grep-online.html: src/content/en/til/2020/08/28/grep-online.prevnext
+src/content/en/til/2020/09/04/cli-email-fun-profit.html: src/content/en/til/2020/09/04/cli-email-fun-profit.prevnext
+src/content/en/til/2020/09/05/oldschool-pr.html: src/content/en/til/2020/09/05/oldschool-pr.prevnext
+src/content/en/til/2020/10/11/search-git-history.html: src/content/en/til/2020/10/11/search-git-history.prevnext
+src/content/en/til/2020/11/08/find-broken-symlink.html: src/content/en/til/2020/11/08/find-broken-symlink.prevnext
+src/content/en/til/2020/11/12/diy-nix-bash-ci.html: src/content/en/til/2020/11/12/diy-nix-bash-ci.prevnext
+src/content/en/til/2020/11/12/git-bisect-automation.html: src/content/en/til/2020/11/12/git-bisect-automation.prevnext
+src/content/en/til/2020/11/12/useful-bashvars.html: src/content/en/til/2020/11/12/useful-bashvars.prevnext
+src/content/en/til/2020/11/14/gpodder-media.html: src/content/en/til/2020/11/14/gpodder-media.prevnext
+src/content/en/til/2020/11/30/git-notes-ci.html: src/content/en/til/2020/11/30/git-notes-ci.prevnext
+src/content/en/til/2020/12/15/shellcheck-repo.html: src/content/en/til/2020/12/15/shellcheck-repo.prevnext
+src/content/en/til/2020/12/29/svg.html: src/content/en/til/2020/12/29/svg.prevnext
+src/content/en/til/2021/01/12/curl-awk-emails.html: src/content/en/til/2021/01/12/curl-awk-emails.prevnext
+src/content/en/til/2021/01/17/posix-shebang.html: src/content/en/til/2021/01/17/posix-shebang.prevnext
+src/content/en/til/2021/04/24/cl-generic-precedence.html: src/content/en/til/2021/04/24/cl-generic-precedence.prevnext
+src/content/en/til/2021/04/24/clojure-autocurry.html: src/content/en/til/2021/04/24/clojure-autocurry.prevnext
+src/content/en/til/2021/04/24/scm-nif.html: src/content/en/til/2021/04/24/scm-nif.prevnext
+src/content/en/til/2021/07/23/git-tls-gpg.html: src/content/en/til/2021/07/23/git-tls-gpg.prevnext
+src/content/en/til/2021/08/11/js-bigint-reviver.html: src/content/en/til/2021/08/11/js-bigint-reviver.prevnext
+src/content/en/til/2026/09/05/multiline-sh-comments.html: src/content/en/til/2026/09/05/multiline-sh-comments.prevnext
+src/content/pt/hea/2020/08/12/arquivo-datado.html: src/content/pt/hea/2020/08/12/arquivo-datado.prevnext
+src/content/en/about.html: src/content/en/about.comments
+src/content/eo/pri.html: src/content/eo/pri.comments
+src/content/es/acerca.html: src/content/es/acerca.comments
+src/content/fr/a-propos.html: src/content/fr/a-propos.comments
+src/content/pt/sobre.html: src/content/pt/sobre.comments
+src/content/en/blog/2018/07/17/guix-nixos.html: src/content/en/blog/2018/07/17/guix-nixos.comments
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.html: src/content/en/blog/2018/08/01/npm-ci-reproducibility.comments
+src/content/en/blog/2018/12/21/ytdl-subs.html: src/content/en/blog/2018/12/21/ytdl-subs.comments
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.html: src/content/en/blog/2019/06/02/nixos-stateless-workstation.comments
+src/content/en/blog/2020/08/10/guix-srht.html: src/content/en/blog/2020/08/10/guix-srht.comments
+src/content/en/blog/2020/08/31/database-i-wish-i-had.html: src/content/en/blog/2020/08/31/database-i-wish-i-had.comments
+src/content/en/blog/2020/10/05/cargo2nix.html: src/content/en/blog/2020/10/05/cargo2nix.comments
+src/content/en/blog/2020/10/05/swift2nix.html: src/content/en/blog/2020/10/05/swift2nix.comments
+src/content/en/blog/2020/10/19/feature-flags.html: src/content/en/blog/2020/10/19/feature-flags.comments
+src/content/en/blog/2020/10/20/wrong-interviewing.html: src/content/en/blog/2020/10/20/wrong-interviewing.comments
+src/content/en/blog/2020/11/07/diy-bugs.html: src/content/en/blog/2020/11/07/diy-bugs.comments
+src/content/en/blog/2020/11/08/paradigm-shift-review.html: src/content/en/blog/2020/11/08/paradigm-shift-review.comments
+src/content/en/blog/2020/11/12/database-parsers-trees.html: src/content/en/blog/2020/11/12/database-parsers-trees.comments
+src/content/en/blog/2020/11/14/local-first-review.html: src/content/en/blog/2020/11/14/local-first-review.comments
+src/content/en/blog/2021/01/26/remembering-ann.html: src/content/en/blog/2021/01/26/remembering-ann.comments
+src/content/en/blog/2021/02/17/fallible.html: src/content/en/blog/2021/02/17/fallible.comments
+src/content/en/blog/2021/04/29/relational-review.html: src/content/en/blog/2021/04/29/relational-review.comments
+src/content/en/pastebin/2016/04/05/rpn.html: src/content/en/pastebin/2016/04/05/rpn.comments
+src/content/en/pastebin/2018/07/11/nix-pinning.html: src/content/en/pastebin/2018/07/11/nix-pinning.comments
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.comments
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.comments
+src/content/en/pastebin/2018/07/13/guixbuilder.html: src/content/en/pastebin/2018/07/13/guixbuilder.comments
+src/content/en/pastebin/2018/07/13/nix-strpad.html: src/content/en/pastebin/2018/07/13/nix-strpad.comments
+src/content/en/pastebin/2018/07/25/nix-exps.html: src/content/en/pastebin/2018/07/25/nix-exps.comments
+src/content/en/pastebin/2018/07/25/nix-showdrv.html: src/content/en/pastebin/2018/07/25/nix-showdrv.comments
+src/content/en/pastebin/2019/06/08/inconsistent-hash.html: src/content/en/pastebin/2019/06/08/inconsistent-hash.comments
+src/content/en/pastebin/2019/12/29/raku-tuple-type.html: src/content/en/pastebin/2019/12/29/raku-tuple-type.comments
+src/content/en/pastebin/2020/01/04/guix-import-failure.html: src/content/en/pastebin/2020/01/04/guix-import-failure.comments
+src/content/en/pastebin/2020/02/14/guix-shebang.html: src/content/en/pastebin/2020/02/14/guix-shebang.comments
+src/content/en/pastebin/2020/11/27/guix-build-local.html: src/content/en/pastebin/2020/11/27/guix-build-local.comments
+src/content/en/pastebin/2020/12/15/guix-pack-fail.html: src/content/en/pastebin/2020/12/15/guix-pack-fail.comments
+src/content/en/pastebin/2021/04/03/naive-slugify-js.html: src/content/en/pastebin/2021/04/03/naive-slugify-js.comments
+src/content/en/pastebin/2021/06/08/reading-session-pt1.html: src/content/en/pastebin/2021/06/08/reading-session-pt1.comments
+src/content/en/pastebin/2021/06/22/curl-wget.html: src/content/en/pastebin/2021/06/22/curl-wget.comments
+src/content/en/pastebin/2021/08/11/h1-spacing.html: src/content/en/pastebin/2021/08/11/h1-spacing.comments
+src/content/en/pastebin/2021/09/02/sicp-3-19.html: src/content/en/pastebin/2021/09/02/sicp-3-19.comments
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.comments
+src/content/en/pastebin/2022/07/14/git-cleanup.html: src/content/en/pastebin/2022/07/14/git-cleanup.comments
+src/content/en/pastebin/2023/07/22/funcallable-amop.html: src/content/en/pastebin/2023/07/22/funcallable-amop.comments
+src/content/en/podcast/2020/12/19/test-entry.html: src/content/en/podcast/2020/12/19/test-entry.comments
+src/content/en/screencast/2021/02/07/autoqemu.html: src/content/en/screencast/2021/02/07/autoqemu.comments
+src/content/en/slide/2020/10/19/feature-flags.html: src/content/en/slide/2020/10/19/feature-flags.comments
+src/content/en/slide/2020/11/14/local-first-hype.html: src/content/en/slide/2020/11/14/local-first-hype.comments
+src/content/en/til/2020/08/12/filename-timestamp.html: src/content/en/til/2020/08/12/filename-timestamp.comments
+src/content/en/til/2020/08/13/code-jekyll.html: src/content/en/til/2020/08/13/code-jekyll.comments
+src/content/en/til/2020/08/14/browse-git.html: src/content/en/til/2020/08/14/browse-git.comments
+src/content/en/til/2020/08/16/git-search.html: src/content/en/til/2020/08/16/git-search.comments
+src/content/en/til/2020/08/28/grep-online.html: src/content/en/til/2020/08/28/grep-online.comments
+src/content/en/til/2020/09/04/cli-email-fun-profit.html: src/content/en/til/2020/09/04/cli-email-fun-profit.comments
+src/content/en/til/2020/09/05/oldschool-pr.html: src/content/en/til/2020/09/05/oldschool-pr.comments
+src/content/en/til/2020/10/11/search-git-history.html: src/content/en/til/2020/10/11/search-git-history.comments
+src/content/en/til/2020/11/08/find-broken-symlink.html: src/content/en/til/2020/11/08/find-broken-symlink.comments
+src/content/en/til/2020/11/12/diy-nix-bash-ci.html: src/content/en/til/2020/11/12/diy-nix-bash-ci.comments
+src/content/en/til/2020/11/12/git-bisect-automation.html: src/content/en/til/2020/11/12/git-bisect-automation.comments
+src/content/en/til/2020/11/12/useful-bashvars.html: src/content/en/til/2020/11/12/useful-bashvars.comments
+src/content/en/til/2020/11/14/gpodder-media.html: src/content/en/til/2020/11/14/gpodder-media.comments
+src/content/en/til/2020/11/30/git-notes-ci.html: src/content/en/til/2020/11/30/git-notes-ci.comments
+src/content/en/til/2020/12/15/shellcheck-repo.html: src/content/en/til/2020/12/15/shellcheck-repo.comments
+src/content/en/til/2020/12/29/svg.html: src/content/en/til/2020/12/29/svg.comments
+src/content/en/til/2021/01/12/curl-awk-emails.html: src/content/en/til/2021/01/12/curl-awk-emails.comments
+src/content/en/til/2021/01/17/posix-shebang.html: src/content/en/til/2021/01/17/posix-shebang.comments
+src/content/en/til/2021/04/24/cl-generic-precedence.html: src/content/en/til/2021/04/24/cl-generic-precedence.comments
+src/content/en/til/2021/04/24/clojure-autocurry.html: src/content/en/til/2021/04/24/clojure-autocurry.comments
+src/content/en/til/2021/04/24/scm-nif.html: src/content/en/til/2021/04/24/scm-nif.comments
+src/content/en/til/2021/07/23/git-tls-gpg.html: src/content/en/til/2021/07/23/git-tls-gpg.comments
+src/content/en/til/2021/08/11/js-bigint-reviver.html: src/content/en/til/2021/08/11/js-bigint-reviver.comments
+src/content/en/til/2026/09/05/multiline-sh-comments.html: src/content/en/til/2026/09/05/multiline-sh-comments.comments
+src/content/pt/hea/2020/08/12/arquivo-datado.html: src/content/pt/hea/2020/08/12/arquivo-datado.comments
+src/content/en/blog/index.html: src/content/en/blog/index.comments
+src/content/en/pastebin/index.html: src/content/en/pastebin/index.comments
+src/content/en/podcast/index.html: src/content/en/podcast/index.comments
+src/content/en/screencast/index.html: src/content/en/screencast/index.comments
+src/content/en/slide/index.html: src/content/en/slide/index.comments
+src/content/en/til/index.html: src/content/en/til/index.comments
+src/content/pt/hea/index.html: src/content/pt/hea/index.comments
+src/content/en/blog/categories.html: src/content/en/blog/categories.comments
+src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.comments
+src/content/en/podcast/categories.html: src/content/en/podcast/categories.comments
+src/content/en/screencast/categories.html: src/content/en/screencast/categories.comments
+src/content/en/slide/categories.html: src/content/en/slide/categories.comments
+src/content/en/til/categories.html: src/content/en/til/categories.comments
+src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.comments
+src/content/en/index.html: src/content/en/index.comments
+src/content/eo/index.html: src/content/eo/index.comments
+src/content/es/index.html: src/content/es/index.comments
+src/content/fr/index.html: src/content/fr/index.comments
+src/content/pt/index.html: src/content/pt/index.comments
+src/content/en/blog/2018/07/17/guix-nixos.categorydata: src/content/en/blog/2018/07/17/guix-nixos.json
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.categorydata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.json
+src/content/en/blog/2018/12/21/ytdl-subs.categorydata: src/content/en/blog/2018/12/21/ytdl-subs.json
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.categorydata: src/content/en/blog/2019/06/02/nixos-stateless-workstation.json
+src/content/en/blog/2020/08/10/guix-srht.categorydata: src/content/en/blog/2020/08/10/guix-srht.json
+src/content/en/blog/2020/08/31/database-i-wish-i-had.categorydata: src/content/en/blog/2020/08/31/database-i-wish-i-had.json
+src/content/en/blog/2020/10/05/cargo2nix.categorydata: src/content/en/blog/2020/10/05/cargo2nix.json
+src/content/en/blog/2020/10/05/swift2nix.categorydata: src/content/en/blog/2020/10/05/swift2nix.json
+src/content/en/blog/2020/10/19/feature-flags.categorydata: src/content/en/blog/2020/10/19/feature-flags.json
+src/content/en/blog/2020/10/20/wrong-interviewing.categorydata: src/content/en/blog/2020/10/20/wrong-interviewing.json
+src/content/en/blog/2020/11/07/diy-bugs.categorydata: src/content/en/blog/2020/11/07/diy-bugs.json
+src/content/en/blog/2020/11/08/paradigm-shift-review.categorydata: src/content/en/blog/2020/11/08/paradigm-shift-review.json
+src/content/en/blog/2020/11/12/database-parsers-trees.categorydata: src/content/en/blog/2020/11/12/database-parsers-trees.json
+src/content/en/blog/2020/11/14/local-first-review.categorydata: src/content/en/blog/2020/11/14/local-first-review.json
+src/content/en/blog/2021/01/26/remembering-ann.categorydata: src/content/en/blog/2021/01/26/remembering-ann.json
+src/content/en/blog/2021/02/17/fallible.categorydata: src/content/en/blog/2021/02/17/fallible.json
+src/content/en/blog/2021/04/29/relational-review.categorydata: src/content/en/blog/2021/04/29/relational-review.json
+src/content/en/pastebin/2016/04/05/rpn.categorydata: src/content/en/pastebin/2016/04/05/rpn.json
+src/content/en/pastebin/2018/07/11/nix-pinning.categorydata: src/content/en/pastebin/2018/07/11/nix-pinning.json
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.categorydata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json
+src/content/en/pastebin/2018/07/13/guixbuilder.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder.json
+src/content/en/pastebin/2018/07/13/nix-strpad.categorydata: src/content/en/pastebin/2018/07/13/nix-strpad.json
+src/content/en/pastebin/2018/07/25/nix-exps.categorydata: src/content/en/pastebin/2018/07/25/nix-exps.json
+src/content/en/pastebin/2018/07/25/nix-showdrv.categorydata: src/content/en/pastebin/2018/07/25/nix-showdrv.json
+src/content/en/pastebin/2019/06/08/inconsistent-hash.categorydata: src/content/en/pastebin/2019/06/08/inconsistent-hash.json
+src/content/en/pastebin/2019/12/29/raku-tuple-type.categorydata: src/content/en/pastebin/2019/12/29/raku-tuple-type.json
+src/content/en/pastebin/2020/01/04/guix-import-failure.categorydata: src/content/en/pastebin/2020/01/04/guix-import-failure.json
+src/content/en/pastebin/2020/02/14/guix-shebang.categorydata: src/content/en/pastebin/2020/02/14/guix-shebang.json
+src/content/en/pastebin/2020/11/27/guix-build-local.categorydata: src/content/en/pastebin/2020/11/27/guix-build-local.json
+src/content/en/pastebin/2020/12/15/guix-pack-fail.categorydata: src/content/en/pastebin/2020/12/15/guix-pack-fail.json
+src/content/en/pastebin/2021/04/03/naive-slugify-js.categorydata: src/content/en/pastebin/2021/04/03/naive-slugify-js.json
+src/content/en/pastebin/2021/06/08/reading-session-pt1.categorydata: src/content/en/pastebin/2021/06/08/reading-session-pt1.json
+src/content/en/pastebin/2021/06/22/curl-wget.categorydata: src/content/en/pastebin/2021/06/22/curl-wget.json
+src/content/en/pastebin/2021/08/11/h1-spacing.categorydata: src/content/en/pastebin/2021/08/11/h1-spacing.json
+src/content/en/pastebin/2021/09/02/sicp-3-19.categorydata: src/content/en/pastebin/2021/09/02/sicp-3-19.json
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.categorydata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json
+src/content/en/pastebin/2022/07/14/git-cleanup.categorydata: src/content/en/pastebin/2022/07/14/git-cleanup.json
+src/content/en/pastebin/2023/07/22/funcallable-amop.categorydata: src/content/en/pastebin/2023/07/22/funcallable-amop.json
+src/content/en/podcast/2020/12/19/test-entry.categorydata: src/content/en/podcast/2020/12/19/test-entry.json
+src/content/en/screencast/2021/02/07/autoqemu.categorydata: src/content/en/screencast/2021/02/07/autoqemu.json
+src/content/en/slide/2020/10/19/feature-flags.categorydata: src/content/en/slide/2020/10/19/feature-flags.json
+src/content/en/slide/2020/11/14/local-first-hype.categorydata: src/content/en/slide/2020/11/14/local-first-hype.json
+src/content/en/til/2020/08/12/filename-timestamp.categorydata: src/content/en/til/2020/08/12/filename-timestamp.json
+src/content/en/til/2020/08/13/code-jekyll.categorydata: src/content/en/til/2020/08/13/code-jekyll.json
+src/content/en/til/2020/08/14/browse-git.categorydata: src/content/en/til/2020/08/14/browse-git.json
+src/content/en/til/2020/08/16/git-search.categorydata: src/content/en/til/2020/08/16/git-search.json
+src/content/en/til/2020/08/28/grep-online.categorydata: src/content/en/til/2020/08/28/grep-online.json
+src/content/en/til/2020/09/04/cli-email-fun-profit.categorydata: src/content/en/til/2020/09/04/cli-email-fun-profit.json
+src/content/en/til/2020/09/05/oldschool-pr.categorydata: src/content/en/til/2020/09/05/oldschool-pr.json
+src/content/en/til/2020/10/11/search-git-history.categorydata: src/content/en/til/2020/10/11/search-git-history.json
+src/content/en/til/2020/11/08/find-broken-symlink.categorydata: src/content/en/til/2020/11/08/find-broken-symlink.json
+src/content/en/til/2020/11/12/diy-nix-bash-ci.categorydata: src/content/en/til/2020/11/12/diy-nix-bash-ci.json
+src/content/en/til/2020/11/12/git-bisect-automation.categorydata: src/content/en/til/2020/11/12/git-bisect-automation.json
+src/content/en/til/2020/11/12/useful-bashvars.categorydata: src/content/en/til/2020/11/12/useful-bashvars.json
+src/content/en/til/2020/11/14/gpodder-media.categorydata: src/content/en/til/2020/11/14/gpodder-media.json
+src/content/en/til/2020/11/30/git-notes-ci.categorydata: src/content/en/til/2020/11/30/git-notes-ci.json
+src/content/en/til/2020/12/15/shellcheck-repo.categorydata: src/content/en/til/2020/12/15/shellcheck-repo.json
+src/content/en/til/2020/12/29/svg.categorydata: src/content/en/til/2020/12/29/svg.json
+src/content/en/til/2021/01/12/curl-awk-emails.categorydata: src/content/en/til/2021/01/12/curl-awk-emails.json
+src/content/en/til/2021/01/17/posix-shebang.categorydata: src/content/en/til/2021/01/17/posix-shebang.json
+src/content/en/til/2021/04/24/cl-generic-precedence.categorydata: src/content/en/til/2021/04/24/cl-generic-precedence.json
+src/content/en/til/2021/04/24/clojure-autocurry.categorydata: src/content/en/til/2021/04/24/clojure-autocurry.json
+src/content/en/til/2021/04/24/scm-nif.categorydata: src/content/en/til/2021/04/24/scm-nif.json
+src/content/en/til/2021/07/23/git-tls-gpg.categorydata: src/content/en/til/2021/07/23/git-tls-gpg.json
+src/content/en/til/2021/08/11/js-bigint-reviver.categorydata: src/content/en/til/2021/08/11/js-bigint-reviver.json
+src/content/en/til/2026/09/05/multiline-sh-comments.categorydata: src/content/en/til/2026/09/05/multiline-sh-comments.json
+src/content/pt/hea/2020/08/12/arquivo-datado.categorydata: src/content/pt/hea/2020/08/12/arquivo-datado.json
-src/content/en/blog/index.htmlheader src/content/en/blog/index.htmlfooter: src/content/en/blog/index.conf
-src/content/en/pastebin/index.htmlheader src/content/en/pastebin/index.htmlfooter: src/content/en/pastebin/index.conf
-src/content/en/podcast/index.htmlheader src/content/en/podcast/index.htmlfooter: src/content/en/podcast/index.conf
-src/content/en/screencast/index.htmlheader src/content/en/screencast/index.htmlfooter: src/content/en/screencast/index.conf
-src/content/en/til/index.htmlheader src/content/en/til/index.htmlfooter: src/content/en/til/index.conf
-src/content/pt/hea/index.htmlheader src/content/pt/hea/index.htmlfooter: src/content/pt/hea/index.conf
-src/content/en/blog/categories.htmlheader src/content/en/blog/categories.htmlfooter: src/content/en/blog/categories.conf
-src/content/en/pastebin/categories.htmlheader src/content/en/pastebin/categories.htmlfooter: src/content/en/pastebin/categories.conf
-src/content/en/podcast/categories.htmlheader src/content/en/podcast/categories.htmlfooter: src/content/en/podcast/categories.conf
-src/content/en/screencast/categories.htmlheader src/content/en/screencast/categories.htmlfooter: src/content/en/screencast/categories.conf
-src/content/en/til/categories.htmlheader src/content/en/til/categories.htmlfooter: src/content/en/til/categories.conf
-src/content/pt/hea/categorias.htmlheader src/content/pt/hea/categorias.htmlfooter: src/content/pt/hea/categorias.conf
-src/content/en/blog/index.htmllisting: src/content/en/blog/index.conf
-src/content/en/pastebin/index.htmllisting: src/content/en/pastebin/index.conf
-src/content/en/podcast/index.htmllisting: src/content/en/podcast/index.conf
-src/content/en/screencast/index.htmllisting: src/content/en/screencast/index.conf
-src/content/en/til/index.htmllisting: src/content/en/til/index.conf
-src/content/pt/hea/index.htmllisting: src/content/pt/hea/index.conf
-src/content/en/blog/categories.htmllisting: src/content/en/blog/categories.conf
-src/content/en/pastebin/categories.htmllisting: src/content/en/pastebin/categories.conf
-src/content/en/podcast/categories.htmllisting: src/content/en/podcast/categories.conf
-src/content/en/screencast/categories.htmllisting: src/content/en/screencast/categories.conf
-src/content/en/til/categories.htmllisting: src/content/en/til/categories.conf
-src/content/pt/hea/categorias.htmllisting: src/content/pt/hea/categorias.conf
+src/content/en/blog/index.htmlheader src/content/en/blog/index.htmlfooter: src/content/en/blog/index.json
+src/content/en/pastebin/index.htmlheader src/content/en/pastebin/index.htmlfooter: src/content/en/pastebin/index.json
+src/content/en/podcast/index.htmlheader src/content/en/podcast/index.htmlfooter: src/content/en/podcast/index.json
+src/content/en/screencast/index.htmlheader src/content/en/screencast/index.htmlfooter: src/content/en/screencast/index.json
+src/content/en/slide/index.htmlheader src/content/en/slide/index.htmlfooter: src/content/en/slide/index.json
+src/content/en/til/index.htmlheader src/content/en/til/index.htmlfooter: src/content/en/til/index.json
+src/content/pt/hea/index.htmlheader src/content/pt/hea/index.htmlfooter: src/content/pt/hea/index.json
+src/content/en/blog/categories.htmlheader src/content/en/blog/categories.htmlfooter: src/content/en/blog/categories.json
+src/content/en/pastebin/categories.htmlheader src/content/en/pastebin/categories.htmlfooter: src/content/en/pastebin/categories.json
+src/content/en/podcast/categories.htmlheader src/content/en/podcast/categories.htmlfooter: src/content/en/podcast/categories.json
+src/content/en/screencast/categories.htmlheader src/content/en/screencast/categories.htmlfooter: src/content/en/screencast/categories.json
+src/content/en/slide/categories.htmlheader src/content/en/slide/categories.htmlfooter: src/content/en/slide/categories.json
+src/content/en/til/categories.htmlheader src/content/en/til/categories.htmlfooter: src/content/en/til/categories.json
+src/content/pt/hea/categorias.htmlheader src/content/pt/hea/categorias.htmlfooter: src/content/pt/hea/categorias.json
+src/content/en/index.htmlheader src/content/en/index.htmlfooter: src/content/en/index.json
+src/content/eo/index.htmlheader src/content/eo/index.htmlfooter: src/content/eo/index.json
+src/content/es/index.htmlheader src/content/es/index.htmlfooter: src/content/es/index.json
+src/content/fr/index.htmlheader src/content/fr/index.htmlfooter: src/content/fr/index.json
+src/content/pt/index.htmlheader src/content/pt/index.htmlfooter: src/content/pt/index.json
+src/content/en/blog/index.htmllisting: src/content/en/blog/index.json
+src/content/en/pastebin/index.htmllisting: src/content/en/pastebin/index.json
+src/content/en/podcast/index.htmllisting: src/content/en/podcast/index.json
+src/content/en/screencast/index.htmllisting: src/content/en/screencast/index.json
+src/content/en/slide/index.htmllisting: src/content/en/slide/index.json
+src/content/en/til/index.htmllisting: src/content/en/til/index.json
+src/content/pt/hea/index.htmllisting: src/content/pt/hea/index.json
+src/content/en/blog/categories.htmllisting: src/content/en/blog/categories.json
+src/content/en/pastebin/categories.htmllisting: src/content/en/pastebin/categories.json
+src/content/en/podcast/categories.htmllisting: src/content/en/podcast/categories.json
+src/content/en/screencast/categories.htmllisting: src/content/en/screencast/categories.json
+src/content/en/slide/categories.htmllisting: src/content/en/slide/categories.json
+src/content/en/til/categories.htmllisting: src/content/en/til/categories.json
+src/content/pt/hea/categorias.htmllisting: src/content/pt/hea/categorias.json
+src/content/en/index.htmllisting: src/content/en/index.json
+src/content/eo/index.htmllisting: src/content/eo/index.json
+src/content/es/index.htmllisting: src/content/es/index.json
+src/content/fr/index.htmllisting: src/content/fr/index.json
+src/content/pt/index.htmllisting: src/content/pt/index.json
src/content/en/blog/index.html: src/content/en/blog/index.htmlheader src/content/en/blog/index.htmlfooter
src/content/en/pastebin/index.html: src/content/en/pastebin/index.htmlheader src/content/en/pastebin/index.htmlfooter
src/content/en/podcast/index.html: src/content/en/podcast/index.htmlheader src/content/en/podcast/index.htmlfooter
src/content/en/screencast/index.html: src/content/en/screencast/index.htmlheader src/content/en/screencast/index.htmlfooter
+src/content/en/slide/index.html: src/content/en/slide/index.htmlheader src/content/en/slide/index.htmlfooter
src/content/en/til/index.html: src/content/en/til/index.htmlheader src/content/en/til/index.htmlfooter
src/content/pt/hea/index.html: src/content/pt/hea/index.htmlheader src/content/pt/hea/index.htmlfooter
src/content/en/blog/categories.html: src/content/en/blog/categories.htmlheader src/content/en/blog/categories.htmlfooter
src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.htmlheader src/content/en/pastebin/categories.htmlfooter
src/content/en/podcast/categories.html: src/content/en/podcast/categories.htmlheader src/content/en/podcast/categories.htmlfooter
src/content/en/screencast/categories.html: src/content/en/screencast/categories.htmlheader src/content/en/screencast/categories.htmlfooter
+src/content/en/slide/categories.html: src/content/en/slide/categories.htmlheader src/content/en/slide/categories.htmlfooter
src/content/en/til/categories.html: src/content/en/til/categories.htmlheader src/content/en/til/categories.htmlfooter
src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.htmlheader src/content/pt/hea/categorias.htmlfooter
+src/content/en/index.html: src/content/en/index.htmlheader src/content/en/index.htmlfooter
+src/content/eo/index.html: src/content/eo/index.htmlheader src/content/eo/index.htmlfooter
+src/content/es/index.html: src/content/es/index.htmlheader src/content/es/index.htmlfooter
+src/content/fr/index.html: src/content/fr/index.htmlheader src/content/fr/index.htmlfooter
+src/content/pt/index.html: src/content/pt/index.htmlheader src/content/pt/index.htmlfooter
src/content/en/blog/index.html: src/content/en/blog/index.htmllisting src/content/en/blog/index.htmlbody
src/content/en/pastebin/index.html: src/content/en/pastebin/index.htmllisting src/content/en/pastebin/index.htmlbody
src/content/en/podcast/index.html: src/content/en/podcast/index.htmllisting src/content/en/podcast/index.htmlbody
src/content/en/screencast/index.html: src/content/en/screencast/index.htmllisting src/content/en/screencast/index.htmlbody
+src/content/en/slide/index.html: src/content/en/slide/index.htmllisting src/content/en/slide/index.htmlbody
src/content/en/til/index.html: src/content/en/til/index.htmllisting src/content/en/til/index.htmlbody
src/content/pt/hea/index.html: src/content/pt/hea/index.htmllisting src/content/pt/hea/index.htmlbody
src/content/en/blog/categories.html: src/content/en/blog/categories.htmllisting src/content/en/blog/categories.htmlbody
src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.htmllisting src/content/en/pastebin/categories.htmlbody
src/content/en/podcast/categories.html: src/content/en/podcast/categories.htmllisting src/content/en/podcast/categories.htmlbody
src/content/en/screencast/categories.html: src/content/en/screencast/categories.htmllisting src/content/en/screencast/categories.htmlbody
+src/content/en/slide/categories.html: src/content/en/slide/categories.htmllisting src/content/en/slide/categories.htmlbody
src/content/en/til/categories.html: src/content/en/til/categories.htmllisting src/content/en/til/categories.htmlbody
src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.htmllisting src/content/pt/hea/categorias.htmlbody
+src/content/en/index.html: src/content/en/index.htmllisting src/content/en/index.htmlbody
+src/content/eo/index.html: src/content/eo/index.htmllisting src/content/eo/index.htmlbody
+src/content/es/index.html: src/content/es/index.htmllisting src/content/es/index.htmlbody
+src/content/fr/index.html: src/content/fr/index.htmllisting src/content/fr/index.htmlbody
+src/content/pt/index.html: src/content/pt/index.htmllisting src/content/pt/index.htmlbody
src/content/en/podcast/2020/12/19/test-entry.flac.torrent: src/content/en/podcast/2020/12/19/test-entry.flac
src/content/en/podcast/2020/12/19/test-entry.ogg.torrent: src/content/en/podcast/2020/12/19/test-entry.ogg
src/content/en/screencast/2021/02/07/autoqemu.webm.torrent: src/content/en/screencast/2021/02/07/autoqemu.webm
-src/content/en/slide/2020/10/19/feature-flags.ps: src/content/en/slide/2020/10/19/feature-flags.adoc
-src/content/en/slide/2020/11/14/local-first-hype.ps: src/content/en/slide/2020/11/14/local-first-hype.adoc
+src/content/en/slide/2020/10/19/feature-flags.ps: src/content/en/slide/2020/10/19/feature-flags.eslaides
+src/content/en/slide/2020/11/14/local-first-hype.ps: src/content/en/slide/2020/11/14/local-first-hype.eslaides
src/content/en/slide/2020/10/19/feature-flags.pdf: src/content/en/slide/2020/10/19/feature-flags.ps
src/content/en/slide/2020/11/14/local-first-hype.pdf: src/content/en/slide/2020/11/14/local-first-hype.ps
@@ -996,7 +1113,61 @@ articles.en.blog.sortdata = $(articles.en.blog.adoc:.adoc=.sortdata)
articles.en.blog.indexentry = $(articles.en.blog.adoc:.adoc=.indexentry)
articles.en.blog.feedentry = $(articles.en.blog.adoc:.adoc=.feedentry)
articles.en.blog.categorydata = $(articles.en.blog.adoc:.adoc=.categorydata)
+articles.en.blog.prevnext = $(articles.en.blog.adoc:.adoc=.prevnext)
+articles.en.blog.homeentry = $(articles.en.blog.adoc:.adoc=.homeentry)
+src/content/en/blog/2021/04/29/relational-review.prevnext: src/global.json src/content/en/blog/2021/02/17/fallible.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2021/02/17/fallible.json src/global.json > $@
+src/content/en/blog/2021/02/17/fallible.prevnext: src/global.json src/content/en/blog/2021/01/26/remembering-ann.json src/content/en/blog/2021/04/29/relational-review.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2021/01/26/remembering-ann.json -n src/content/en/blog/2021/04/29/relational-review.json src/global.json > $@
+src/content/en/blog/2021/01/26/remembering-ann.prevnext: src/global.json src/content/en/blog/2020/11/14/local-first-review.json src/content/en/blog/2021/02/17/fallible.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/11/14/local-first-review.json -n src/content/en/blog/2021/02/17/fallible.json src/global.json > $@
+src/content/en/blog/2020/11/14/local-first-review.prevnext: src/global.json src/content/en/blog/2020/11/12/database-parsers-trees.json src/content/en/blog/2021/01/26/remembering-ann.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/11/12/database-parsers-trees.json -n src/content/en/blog/2021/01/26/remembering-ann.json src/global.json > $@
+src/content/en/blog/2020/11/12/database-parsers-trees.prevnext: src/global.json src/content/en/blog/2020/11/08/paradigm-shift-review.json src/content/en/blog/2020/11/14/local-first-review.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/11/08/paradigm-shift-review.json -n src/content/en/blog/2020/11/14/local-first-review.json src/global.json > $@
+src/content/en/blog/2020/11/08/paradigm-shift-review.prevnext: src/global.json src/content/en/blog/2020/11/07/diy-bugs.json src/content/en/blog/2020/11/12/database-parsers-trees.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/11/07/diy-bugs.json -n src/content/en/blog/2020/11/12/database-parsers-trees.json src/global.json > $@
+src/content/en/blog/2020/11/07/diy-bugs.prevnext: src/global.json src/content/en/blog/2020/10/20/wrong-interviewing.json src/content/en/blog/2020/11/08/paradigm-shift-review.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/10/20/wrong-interviewing.json -n src/content/en/blog/2020/11/08/paradigm-shift-review.json src/global.json > $@
+src/content/en/blog/2020/10/20/wrong-interviewing.prevnext: src/global.json src/content/en/blog/2020/10/19/feature-flags.json src/content/en/blog/2020/11/07/diy-bugs.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/10/19/feature-flags.json -n src/content/en/blog/2020/11/07/diy-bugs.json src/global.json > $@
+src/content/en/blog/2020/10/19/feature-flags.prevnext: src/global.json src/content/en/blog/2020/10/05/cargo2nix.json src/content/en/blog/2020/10/20/wrong-interviewing.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/10/05/cargo2nix.json -n src/content/en/blog/2020/10/20/wrong-interviewing.json src/global.json > $@
+src/content/en/blog/2020/10/05/cargo2nix.prevnext: src/global.json src/content/en/blog/2020/10/05/swift2nix.json src/content/en/blog/2020/10/19/feature-flags.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/10/05/swift2nix.json -n src/content/en/blog/2020/10/19/feature-flags.json src/global.json > $@
+src/content/en/blog/2020/10/05/swift2nix.prevnext: src/global.json src/content/en/blog/2020/08/31/database-i-wish-i-had.json src/content/en/blog/2020/10/05/cargo2nix.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/08/31/database-i-wish-i-had.json -n src/content/en/blog/2020/10/05/cargo2nix.json src/global.json > $@
+src/content/en/blog/2020/08/31/database-i-wish-i-had.prevnext: src/global.json src/content/en/blog/2020/08/10/guix-srht.json src/content/en/blog/2020/10/05/swift2nix.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2020/08/10/guix-srht.json -n src/content/en/blog/2020/10/05/swift2nix.json src/global.json > $@
+src/content/en/blog/2020/08/10/guix-srht.prevnext: src/global.json src/content/en/blog/2019/06/02/nixos-stateless-workstation.json src/content/en/blog/2020/08/31/database-i-wish-i-had.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2019/06/02/nixos-stateless-workstation.json -n src/content/en/blog/2020/08/31/database-i-wish-i-had.json src/global.json > $@
+src/content/en/blog/2019/06/02/nixos-stateless-workstation.prevnext: src/global.json src/content/en/blog/2018/12/21/ytdl-subs.json src/content/en/blog/2020/08/10/guix-srht.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2018/12/21/ytdl-subs.json -n src/content/en/blog/2020/08/10/guix-srht.json src/global.json > $@
+src/content/en/blog/2018/12/21/ytdl-subs.prevnext: src/global.json src/content/en/blog/2018/08/01/npm-ci-reproducibility.json src/content/en/blog/2019/06/02/nixos-stateless-workstation.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2018/08/01/npm-ci-reproducibility.json -n src/content/en/blog/2019/06/02/nixos-stateless-workstation.json src/global.json > $@
+src/content/en/blog/2018/08/01/npm-ci-reproducibility.prevnext: src/global.json src/content/en/blog/2018/07/17/guix-nixos.json src/content/en/blog/2018/12/21/ytdl-subs.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/blog/2018/07/17/guix-nixos.json -n src/content/en/blog/2018/12/21/ytdl-subs.json src/global.json > $@
+src/content/en/blog/2018/07/17/guix-nixos.prevnext: src/global.json src/content/en/blog/2018/08/01/npm-ci-reproducibility.json
+ mkdir -p $(@D)
+ mkwb prevnext -n src/content/en/blog/2018/08/01/npm-ci-reproducibility.json src/global.json > $@
src/content/en/blog/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.en.blog.sortdata) > $@
src/content/en/blog/feed.xml: src/content/en/blog/sortdata.txt
@@ -1011,7 +1182,6 @@ src/content/en/blog/index.htmllisting src/content/en/blog/categories.htmllisting
src/content/en/blog/categories.txt: $(articles.en.blog.categorydata)
src/content/en/blog/categories.txt src/content/en/blog/feed.xml: $(articles.en.blog.feedentry)
src/content/en/blog/categories.htmllisting src/content/en/blog/categories.xml: src/content/en/blog/categories.txt
-src/content/en/blog/categories.xml.gz: src/content/en/blog/categories.xml
articles.en.pastebin.adoc = \
@@ -1042,7 +1212,76 @@ articles.en.pastebin.sortdata = $(articles.en.pastebin.adoc:.adoc=.sortdata)
articles.en.pastebin.indexentry = $(articles.en.pastebin.adoc:.adoc=.indexentry)
articles.en.pastebin.feedentry = $(articles.en.pastebin.adoc:.adoc=.feedentry)
articles.en.pastebin.categorydata = $(articles.en.pastebin.adoc:.adoc=.categorydata)
+articles.en.pastebin.prevnext = $(articles.en.pastebin.adoc:.adoc=.prevnext)
+articles.en.pastebin.homeentry = $(articles.en.pastebin.adoc:.adoc=.homeentry)
+src/content/en/pastebin/2023/07/22/funcallable-amop.prevnext: src/global.json src/content/en/pastebin/2022/07/14/git-cleanup.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2022/07/14/git-cleanup.json src/global.json > $@
+src/content/en/pastebin/2022/07/14/git-cleanup.prevnext: src/global.json src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json src/content/en/pastebin/2023/07/22/funcallable-amop.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json -n src/content/en/pastebin/2023/07/22/funcallable-amop.json src/global.json > $@
+src/content/en/pastebin/2021/09/03/sicp-persistent-queue.prevnext: src/global.json src/content/en/pastebin/2021/09/02/sicp-3-19.json src/content/en/pastebin/2022/07/14/git-cleanup.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/09/02/sicp-3-19.json -n src/content/en/pastebin/2022/07/14/git-cleanup.json src/global.json > $@
+src/content/en/pastebin/2021/09/02/sicp-3-19.prevnext: src/global.json src/content/en/pastebin/2021/08/11/h1-spacing.json src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/08/11/h1-spacing.json -n src/content/en/pastebin/2021/09/03/sicp-persistent-queue.json src/global.json > $@
+src/content/en/pastebin/2021/08/11/h1-spacing.prevnext: src/global.json src/content/en/pastebin/2021/06/22/curl-wget.json src/content/en/pastebin/2021/09/02/sicp-3-19.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/06/22/curl-wget.json -n src/content/en/pastebin/2021/09/02/sicp-3-19.json src/global.json > $@
+src/content/en/pastebin/2021/06/22/curl-wget.prevnext: src/global.json src/content/en/pastebin/2021/06/08/reading-session-pt1.json src/content/en/pastebin/2021/08/11/h1-spacing.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/06/08/reading-session-pt1.json -n src/content/en/pastebin/2021/08/11/h1-spacing.json src/global.json > $@
+src/content/en/pastebin/2021/06/08/reading-session-pt1.prevnext: src/global.json src/content/en/pastebin/2021/04/03/naive-slugify-js.json src/content/en/pastebin/2021/06/22/curl-wget.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2021/04/03/naive-slugify-js.json -n src/content/en/pastebin/2021/06/22/curl-wget.json src/global.json > $@
+src/content/en/pastebin/2021/04/03/naive-slugify-js.prevnext: src/global.json src/content/en/pastebin/2020/12/15/guix-pack-fail.json src/content/en/pastebin/2021/06/08/reading-session-pt1.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2020/12/15/guix-pack-fail.json -n src/content/en/pastebin/2021/06/08/reading-session-pt1.json src/global.json > $@
+src/content/en/pastebin/2020/12/15/guix-pack-fail.prevnext: src/global.json src/content/en/pastebin/2020/11/27/guix-build-local.json src/content/en/pastebin/2021/04/03/naive-slugify-js.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2020/11/27/guix-build-local.json -n src/content/en/pastebin/2021/04/03/naive-slugify-js.json src/global.json > $@
+src/content/en/pastebin/2020/11/27/guix-build-local.prevnext: src/global.json src/content/en/pastebin/2020/02/14/guix-shebang.json src/content/en/pastebin/2020/12/15/guix-pack-fail.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2020/02/14/guix-shebang.json -n src/content/en/pastebin/2020/12/15/guix-pack-fail.json src/global.json > $@
+src/content/en/pastebin/2020/02/14/guix-shebang.prevnext: src/global.json src/content/en/pastebin/2020/01/04/guix-import-failure.json src/content/en/pastebin/2020/11/27/guix-build-local.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2020/01/04/guix-import-failure.json -n src/content/en/pastebin/2020/11/27/guix-build-local.json src/global.json > $@
+src/content/en/pastebin/2020/01/04/guix-import-failure.prevnext: src/global.json src/content/en/pastebin/2019/12/29/raku-tuple-type.json src/content/en/pastebin/2020/02/14/guix-shebang.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2019/12/29/raku-tuple-type.json -n src/content/en/pastebin/2020/02/14/guix-shebang.json src/global.json > $@
+src/content/en/pastebin/2019/12/29/raku-tuple-type.prevnext: src/global.json src/content/en/pastebin/2019/06/08/inconsistent-hash.json src/content/en/pastebin/2020/01/04/guix-import-failure.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2019/06/08/inconsistent-hash.json -n src/content/en/pastebin/2020/01/04/guix-import-failure.json src/global.json > $@
+src/content/en/pastebin/2019/06/08/inconsistent-hash.prevnext: src/global.json src/content/en/pastebin/2018/07/25/nix-showdrv.json src/content/en/pastebin/2019/12/29/raku-tuple-type.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/25/nix-showdrv.json -n src/content/en/pastebin/2019/12/29/raku-tuple-type.json src/global.json > $@
+src/content/en/pastebin/2018/07/25/nix-showdrv.prevnext: src/global.json src/content/en/pastebin/2018/07/25/nix-exps.json src/content/en/pastebin/2019/06/08/inconsistent-hash.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/25/nix-exps.json -n src/content/en/pastebin/2019/06/08/inconsistent-hash.json src/global.json > $@
+src/content/en/pastebin/2018/07/25/nix-exps.prevnext: src/global.json src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json src/content/en/pastebin/2018/07/25/nix-showdrv.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json -n src/content/en/pastebin/2018/07/25/nix-showdrv.json src/global.json > $@
+src/content/en/pastebin/2018/07/13/guix-nixos-systemd.prevnext: src/global.json src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json src/content/en/pastebin/2018/07/25/nix-exps.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json -n src/content/en/pastebin/2018/07/25/nix-exps.json src/global.json > $@
+src/content/en/pastebin/2018/07/13/guixbuilder-nixos.prevnext: src/global.json src/content/en/pastebin/2018/07/13/nix-strpad.json src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/13/nix-strpad.json -n src/content/en/pastebin/2018/07/13/guix-nixos-systemd.json src/global.json > $@
+src/content/en/pastebin/2018/07/13/nix-strpad.prevnext: src/global.json src/content/en/pastebin/2018/07/13/guixbuilder.json src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/13/guixbuilder.json -n src/content/en/pastebin/2018/07/13/guixbuilder-nixos.json src/global.json > $@
+src/content/en/pastebin/2018/07/13/guixbuilder.prevnext: src/global.json src/content/en/pastebin/2018/07/11/nix-pinning.json src/content/en/pastebin/2018/07/13/nix-strpad.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2018/07/11/nix-pinning.json -n src/content/en/pastebin/2018/07/13/nix-strpad.json src/global.json > $@
+src/content/en/pastebin/2018/07/11/nix-pinning.prevnext: src/global.json src/content/en/pastebin/2016/04/05/rpn.json src/content/en/pastebin/2018/07/13/guixbuilder.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/pastebin/2016/04/05/rpn.json -n src/content/en/pastebin/2018/07/13/guixbuilder.json src/global.json > $@
+src/content/en/pastebin/2016/04/05/rpn.prevnext: src/global.json src/content/en/pastebin/2018/07/11/nix-pinning.json
+ mkdir -p $(@D)
+ mkwb prevnext -n src/content/en/pastebin/2018/07/11/nix-pinning.json src/global.json > $@
src/content/en/pastebin/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.en.pastebin.sortdata) > $@
src/content/en/pastebin/feed.xml: src/content/en/pastebin/sortdata.txt
@@ -1057,7 +1296,6 @@ src/content/en/pastebin/index.htmllisting src/content/en/pastebin/categories.htm
src/content/en/pastebin/categories.txt: $(articles.en.pastebin.categorydata)
src/content/en/pastebin/categories.txt src/content/en/pastebin/feed.xml: $(articles.en.pastebin.feedentry)
src/content/en/pastebin/categories.htmllisting src/content/en/pastebin/categories.xml: src/content/en/pastebin/categories.txt
-src/content/en/pastebin/categories.xml.gz: src/content/en/pastebin/categories.xml
articles.en.podcast.adoc = \
@@ -1067,7 +1305,13 @@ articles.en.podcast.sortdata = $(articles.en.podcast.adoc:.adoc=.sortdata)
articles.en.podcast.indexentry = $(articles.en.podcast.adoc:.adoc=.indexentry)
articles.en.podcast.feedentry = $(articles.en.podcast.adoc:.adoc=.feedentry)
articles.en.podcast.categorydata = $(articles.en.podcast.adoc:.adoc=.categorydata)
+articles.en.podcast.prevnext = $(articles.en.podcast.adoc:.adoc=.prevnext)
+articles.en.podcast.homeentry = $(articles.en.podcast.adoc:.adoc=.homeentry)
+src/content/en/podcast/2020/12/19/test-entry.prevnext: src/global.json
+ mkdir -p $(@D)
+ mkwb prevnext src/global.json > $@
src/content/en/podcast/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.en.podcast.sortdata) > $@
src/content/en/podcast/feed.xml: src/content/en/podcast/sortdata.txt
@@ -1082,7 +1326,6 @@ src/content/en/podcast/index.htmllisting src/content/en/podcast/categories.htmll
src/content/en/podcast/categories.txt: $(articles.en.podcast.categorydata)
src/content/en/podcast/categories.txt src/content/en/podcast/feed.xml: $(articles.en.podcast.feedentry)
src/content/en/podcast/categories.htmllisting src/content/en/podcast/categories.xml: src/content/en/podcast/categories.txt
-src/content/en/podcast/categories.xml.gz: src/content/en/podcast/categories.xml
articles.en.screencast.adoc = \
@@ -1092,7 +1335,13 @@ articles.en.screencast.sortdata = $(articles.en.screencast.adoc:.adoc=.sortd
articles.en.screencast.indexentry = $(articles.en.screencast.adoc:.adoc=.indexentry)
articles.en.screencast.feedentry = $(articles.en.screencast.adoc:.adoc=.feedentry)
articles.en.screencast.categorydata = $(articles.en.screencast.adoc:.adoc=.categorydata)
+articles.en.screencast.prevnext = $(articles.en.screencast.adoc:.adoc=.prevnext)
+articles.en.screencast.homeentry = $(articles.en.screencast.adoc:.adoc=.homeentry)
+src/content/en/screencast/2021/02/07/autoqemu.prevnext: src/global.json
+ mkdir -p $(@D)
+ mkwb prevnext src/global.json > $@
src/content/en/screencast/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.en.screencast.sortdata) > $@
src/content/en/screencast/feed.xml: src/content/en/screencast/sortdata.txt
@@ -1107,7 +1356,40 @@ src/content/en/screencast/index.htmllisting src/content/en/screencast/categories
src/content/en/screencast/categories.txt: $(articles.en.screencast.categorydata)
src/content/en/screencast/categories.txt src/content/en/screencast/feed.xml: $(articles.en.screencast.feedentry)
src/content/en/screencast/categories.htmllisting src/content/en/screencast/categories.xml: src/content/en/screencast/categories.txt
-src/content/en/screencast/categories.xml.gz: src/content/en/screencast/categories.xml
+
+
+articles.en.slide.adoc = \
+ src/content/en/slide/2020/10/19/feature-flags.adoc \
+ src/content/en/slide/2020/11/14/local-first-hype.adoc \
+
+articles.en.slide.sortdata = $(articles.en.slide.adoc:.adoc=.sortdata)
+articles.en.slide.indexentry = $(articles.en.slide.adoc:.adoc=.indexentry)
+articles.en.slide.feedentry = $(articles.en.slide.adoc:.adoc=.feedentry)
+articles.en.slide.categorydata = $(articles.en.slide.adoc:.adoc=.categorydata)
+articles.en.slide.prevnext = $(articles.en.slide.adoc:.adoc=.prevnext)
+articles.en.slide.homeentry = $(articles.en.slide.adoc:.adoc=.homeentry)
+src/content/en/slide/2020/11/14/local-first-hype.prevnext: src/global.json src/content/en/slide/2020/10/19/feature-flags.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/slide/2020/10/19/feature-flags.json src/global.json > $@
+src/content/en/slide/2020/10/19/feature-flags.prevnext: src/global.json src/content/en/slide/2020/11/14/local-first-hype.json
+ mkdir -p $(@D)
+ mkwb prevnext -n src/content/en/slide/2020/11/14/local-first-hype.json src/global.json > $@
+src/content/en/slide/sortdata.txt: deps.mk
+ mkdir -p $(@D)
+ printf '%s\n' $(articles.en.slide.sortdata) > $@
+
+src/content/en/slide/feed.xml: src/content/en/slide/sortdata.txt
+src/content/en/slide/feed.xml: $(articles.en.slide.sortdata)
+src/content/en/slide/index.htmllisting: src/content/en/slide/sortdata.txt
+src/content/en/slide/index.htmllisting: $(articles.en.slide.sortdata)
+src/content/en/slide/categories.htmllisting: src/content/en/slide/sortdata.txt
+src/content/en/slide/categories.htmllisting: $(articles.en.slide.sortdata)
+src/content/en/slide/categories.txt: src/content/en/slide/sortdata.txt
+src/content/en/slide/categories.txt: $(articles.en.slide.sortdata)
+src/content/en/slide/index.htmllisting src/content/en/slide/categories.htmllisting: $(articles.en.slide.indexentry)
+src/content/en/slide/categories.txt: $(articles.en.slide.categorydata)
+src/content/en/slide/categories.txt src/content/en/slide/feed.xml: $(articles.en.slide.feedentry)
+src/content/en/slide/categories.htmllisting src/content/en/slide/categories.xml: src/content/en/slide/categories.txt
articles.en.til.adoc = \
@@ -1134,12 +1416,88 @@ articles.en.til.adoc = \
src/content/en/til/2021/04/24/scm-nif.adoc \
src/content/en/til/2021/07/23/git-tls-gpg.adoc \
src/content/en/til/2021/08/11/js-bigint-reviver.adoc \
+ src/content/en/til/2026/09/05/multiline-sh-comments.adoc \
articles.en.til.sortdata = $(articles.en.til.adoc:.adoc=.sortdata)
articles.en.til.indexentry = $(articles.en.til.adoc:.adoc=.indexentry)
articles.en.til.feedentry = $(articles.en.til.adoc:.adoc=.feedentry)
articles.en.til.categorydata = $(articles.en.til.adoc:.adoc=.categorydata)
+articles.en.til.prevnext = $(articles.en.til.adoc:.adoc=.prevnext)
+articles.en.til.homeentry = $(articles.en.til.adoc:.adoc=.homeentry)
+src/content/en/til/2026/09/05/multiline-sh-comments.prevnext: src/global.json src/content/en/til/2021/08/11/js-bigint-reviver.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/08/11/js-bigint-reviver.json src/global.json > $@
+src/content/en/til/2021/08/11/js-bigint-reviver.prevnext: src/global.json src/content/en/til/2021/07/23/git-tls-gpg.json src/content/en/til/2026/09/05/multiline-sh-comments.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/07/23/git-tls-gpg.json -n src/content/en/til/2026/09/05/multiline-sh-comments.json src/global.json > $@
+src/content/en/til/2021/07/23/git-tls-gpg.prevnext: src/global.json src/content/en/til/2021/04/24/scm-nif.json src/content/en/til/2021/08/11/js-bigint-reviver.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/04/24/scm-nif.json -n src/content/en/til/2021/08/11/js-bigint-reviver.json src/global.json > $@
+src/content/en/til/2021/04/24/scm-nif.prevnext: src/global.json src/content/en/til/2021/04/24/clojure-autocurry.json src/content/en/til/2021/07/23/git-tls-gpg.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/04/24/clojure-autocurry.json -n src/content/en/til/2021/07/23/git-tls-gpg.json src/global.json > $@
+src/content/en/til/2021/04/24/clojure-autocurry.prevnext: src/global.json src/content/en/til/2021/04/24/cl-generic-precedence.json src/content/en/til/2021/04/24/scm-nif.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/04/24/cl-generic-precedence.json -n src/content/en/til/2021/04/24/scm-nif.json src/global.json > $@
+src/content/en/til/2021/04/24/cl-generic-precedence.prevnext: src/global.json src/content/en/til/2021/01/17/posix-shebang.json src/content/en/til/2021/04/24/clojure-autocurry.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/01/17/posix-shebang.json -n src/content/en/til/2021/04/24/clojure-autocurry.json src/global.json > $@
+src/content/en/til/2021/01/17/posix-shebang.prevnext: src/global.json src/content/en/til/2021/01/12/curl-awk-emails.json src/content/en/til/2021/04/24/cl-generic-precedence.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2021/01/12/curl-awk-emails.json -n src/content/en/til/2021/04/24/cl-generic-precedence.json src/global.json > $@
+src/content/en/til/2021/01/12/curl-awk-emails.prevnext: src/global.json src/content/en/til/2020/12/29/svg.json src/content/en/til/2021/01/17/posix-shebang.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/12/29/svg.json -n src/content/en/til/2021/01/17/posix-shebang.json src/global.json > $@
+src/content/en/til/2020/12/29/svg.prevnext: src/global.json src/content/en/til/2020/12/15/shellcheck-repo.json src/content/en/til/2021/01/12/curl-awk-emails.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/12/15/shellcheck-repo.json -n src/content/en/til/2021/01/12/curl-awk-emails.json src/global.json > $@
+src/content/en/til/2020/12/15/shellcheck-repo.prevnext: src/global.json src/content/en/til/2020/11/30/git-notes-ci.json src/content/en/til/2020/12/29/svg.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/30/git-notes-ci.json -n src/content/en/til/2020/12/29/svg.json src/global.json > $@
+src/content/en/til/2020/11/30/git-notes-ci.prevnext: src/global.json src/content/en/til/2020/11/14/gpodder-media.json src/content/en/til/2020/12/15/shellcheck-repo.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/14/gpodder-media.json -n src/content/en/til/2020/12/15/shellcheck-repo.json src/global.json > $@
+src/content/en/til/2020/11/14/gpodder-media.prevnext: src/global.json src/content/en/til/2020/11/12/diy-nix-bash-ci.json src/content/en/til/2020/11/30/git-notes-ci.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/12/diy-nix-bash-ci.json -n src/content/en/til/2020/11/30/git-notes-ci.json src/global.json > $@
+src/content/en/til/2020/11/12/diy-nix-bash-ci.prevnext: src/global.json src/content/en/til/2020/11/12/git-bisect-automation.json src/content/en/til/2020/11/14/gpodder-media.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/12/git-bisect-automation.json -n src/content/en/til/2020/11/14/gpodder-media.json src/global.json > $@
+src/content/en/til/2020/11/12/git-bisect-automation.prevnext: src/global.json src/content/en/til/2020/11/12/useful-bashvars.json src/content/en/til/2020/11/12/diy-nix-bash-ci.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/12/useful-bashvars.json -n src/content/en/til/2020/11/12/diy-nix-bash-ci.json src/global.json > $@
+src/content/en/til/2020/11/12/useful-bashvars.prevnext: src/global.json src/content/en/til/2020/11/08/find-broken-symlink.json src/content/en/til/2020/11/12/git-bisect-automation.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/11/08/find-broken-symlink.json -n src/content/en/til/2020/11/12/git-bisect-automation.json src/global.json > $@
+src/content/en/til/2020/11/08/find-broken-symlink.prevnext: src/global.json src/content/en/til/2020/10/11/search-git-history.json src/content/en/til/2020/11/12/useful-bashvars.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/10/11/search-git-history.json -n src/content/en/til/2020/11/12/useful-bashvars.json src/global.json > $@
+src/content/en/til/2020/10/11/search-git-history.prevnext: src/global.json src/content/en/til/2020/09/05/oldschool-pr.json src/content/en/til/2020/11/08/find-broken-symlink.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/09/05/oldschool-pr.json -n src/content/en/til/2020/11/08/find-broken-symlink.json src/global.json > $@
+src/content/en/til/2020/09/05/oldschool-pr.prevnext: src/global.json src/content/en/til/2020/09/04/cli-email-fun-profit.json src/content/en/til/2020/10/11/search-git-history.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/09/04/cli-email-fun-profit.json -n src/content/en/til/2020/10/11/search-git-history.json src/global.json > $@
+src/content/en/til/2020/09/04/cli-email-fun-profit.prevnext: src/global.json src/content/en/til/2020/08/28/grep-online.json src/content/en/til/2020/09/05/oldschool-pr.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/08/28/grep-online.json -n src/content/en/til/2020/09/05/oldschool-pr.json src/global.json > $@
+src/content/en/til/2020/08/28/grep-online.prevnext: src/global.json src/content/en/til/2020/08/16/git-search.json src/content/en/til/2020/09/04/cli-email-fun-profit.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/08/16/git-search.json -n src/content/en/til/2020/09/04/cli-email-fun-profit.json src/global.json > $@
+src/content/en/til/2020/08/16/git-search.prevnext: src/global.json src/content/en/til/2020/08/14/browse-git.json src/content/en/til/2020/08/28/grep-online.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/08/14/browse-git.json -n src/content/en/til/2020/08/28/grep-online.json src/global.json > $@
+src/content/en/til/2020/08/14/browse-git.prevnext: src/global.json src/content/en/til/2020/08/13/code-jekyll.json src/content/en/til/2020/08/16/git-search.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/08/13/code-jekyll.json -n src/content/en/til/2020/08/16/git-search.json src/global.json > $@
+src/content/en/til/2020/08/13/code-jekyll.prevnext: src/global.json src/content/en/til/2020/08/12/filename-timestamp.json src/content/en/til/2020/08/14/browse-git.json
+ mkdir -p $(@D)
+ mkwb prevnext -p src/content/en/til/2020/08/12/filename-timestamp.json -n src/content/en/til/2020/08/14/browse-git.json src/global.json > $@
+src/content/en/til/2020/08/12/filename-timestamp.prevnext: src/global.json src/content/en/til/2020/08/13/code-jekyll.json
+ mkdir -p $(@D)
+ mkwb prevnext -n src/content/en/til/2020/08/13/code-jekyll.json src/global.json > $@
src/content/en/til/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.en.til.sortdata) > $@
src/content/en/til/feed.xml: src/content/en/til/sortdata.txt
@@ -1154,7 +1512,6 @@ src/content/en/til/index.htmllisting src/content/en/til/categories.htmllisting:
src/content/en/til/categories.txt: $(articles.en.til.categorydata)
src/content/en/til/categories.txt src/content/en/til/feed.xml: $(articles.en.til.feedentry)
src/content/en/til/categories.htmllisting src/content/en/til/categories.xml: src/content/en/til/categories.txt
-src/content/en/til/categories.xml.gz: src/content/en/til/categories.xml
articles.pt.hea.adoc = \
@@ -1164,7 +1521,13 @@ articles.pt.hea.sortdata = $(articles.pt.hea.adoc:.adoc=.sortdata)
articles.pt.hea.indexentry = $(articles.pt.hea.adoc:.adoc=.indexentry)
articles.pt.hea.feedentry = $(articles.pt.hea.adoc:.adoc=.feedentry)
articles.pt.hea.categorydata = $(articles.pt.hea.adoc:.adoc=.categorydata)
+articles.pt.hea.prevnext = $(articles.pt.hea.adoc:.adoc=.prevnext)
+articles.pt.hea.homeentry = $(articles.pt.hea.adoc:.adoc=.homeentry)
+src/content/pt/hea/2020/08/12/arquivo-datado.prevnext: src/global.json
+ mkdir -p $(@D)
+ mkwb prevnext src/global.json > $@
src/content/pt/hea/sortdata.txt: deps.mk
+ mkdir -p $(@D)
printf '%s\n' $(articles.pt.hea.sortdata) > $@
src/content/pt/hea/feed.xml: src/content/pt/hea/sortdata.txt
@@ -1179,4 +1542,899 @@ src/content/pt/hea/index.htmllisting src/content/pt/hea/categorias.htmllisting:
src/content/pt/hea/categorias.txt: $(articles.pt.hea.categorydata)
src/content/pt/hea/categorias.txt src/content/pt/hea/feed.xml: $(articles.pt.hea.feedentry)
src/content/pt/hea/categorias.htmllisting src/content/pt/hea/categorias.xml: src/content/pt/hea/categorias.txt
-src/content/pt/hea/categorias.xml.gz: src/content/pt/hea/categorias.xml
+
+src/content/en/index.htmllisting: src/content/en/blog/sortdata.txt $(articles.en.blog.homeentry) src/content/en/pastebin/sortdata.txt $(articles.en.pastebin.homeentry) src/content/en/podcast/sortdata.txt $(articles.en.podcast.homeentry) src/content/en/screencast/sortdata.txt $(articles.en.screencast.homeentry) src/content/en/slide/sortdata.txt $(articles.en.slide.homeentry) src/content/en/til/sortdata.txt $(articles.en.til.homeentry)
+
+src/content/pt/index.htmllisting: src/content/pt/hea/sortdata.txt $(articles.pt.hea.homeentry)
+
+translations = \
+ src/content/eo/index.adoc \
+ src/content/eo/pri.adoc \
+ src/content/es/acerca.adoc \
+ src/content/es/index.adoc \
+ src/content/fr/a-propos.adoc \
+ src/content/fr/index.adoc \
+ src/content/pt/hea/2020/08/12/arquivo-datado.adoc \
+ src/content/pt/hea/categorias.adoc \
+ src/content/pt/hea/index.adoc \
+ src/content/pt/index.adoc \
+ src/content/pt/sobre.adoc \
+ src/i18n.en.txt \
+ src/i18n.eo.txt \
+ src/i18n.es.txt \
+ src/i18n.fr.txt \
+ src/i18n.pt.txt \
+
+src/i18n.stamp: po/po4a.cfg po/en.po po/eo.po po/es.po po/fr.po po/pt.po
+ po4a po/po4a.cfg
+ touch $@
+
+$(translations): src/i18n.stamp
+
+
+translations.txt = src/translations.txt
+
+src/translations.txt: deps.mk
+ printf '%s\n' \
+ 'src/content/en/index.adoc src/content/pt/index.adoc src/content/fr/index.adoc src/content/eo/index.adoc src/content/es/index.adoc' \
+ 'src/content/en/about.adoc src/content/pt/sobre.adoc src/content/fr/a-propos.adoc src/content/eo/pri.adoc src/content/es/acerca.adoc' \
+ 'src/content/en/til/index.adoc src/content/pt/hea/index.adoc' \
+ 'src/content/en/til/categories.adoc src/content/pt/hea/categorias.adoc' \
+ 'src/content/en/til/2020/08/12/filename-timestamp.adoc src/content/pt/hea/2020/08/12/arquivo-datado.adoc' \
+ > $@
+
+
+## mkwb canonical site rules. Sites consume this content by
+## inlining it at the end of their generated deps.mk: mkdeps.sh
+## runs "mkwb rules" (which prints them) so deps.mk ends up
+## self-contained -- no make-time "include" of an external file.
+## The site Makefile only needs an "all:" anchor followed by
+## "include deps.mk". Order matters: "all:" must come first
+## (otherwise deps.mk's first target becomes the default), and
+## the canonical rules below must follow deps.mk's variable
+## assignments so that "all: $(derived-assets)" can resolve its
+## prereq list at parse time.
+##
+## The including Makefile is expected to define at minimum:
+##
+## NAME -- site name: the domain it is served from, since
+## baseurl.txt is derived as https://$(NAME). Also
+## used for the SRCDIR/HTMLDIR install paths.
+## VERSION
+## DATE
+##
+## The site must also provide one source file:
+##
+## src/config.json -- a flat JSON object of strings, the site's
+## own settings laid over what mkwb derives.
+## Only "email" is required of it, since
+## nothing can be derived for the contact
+## address; mkwb's defaults stand in for
+## every other key it leaves out.
+##
+## To override any of PREFIX / BINDIR / SHAREDIR / SRCDIR /
+## HTMLDIR / PUBURL / BASEURL / FFMFLAGS, set them AFTER the
+## include (plain "=", POSIX -- no "?=" conditional assignment),
+## or pass "-e" to make to let env vars take precedence.
+##
+## "clean", "install" and "uninstall" are the site's own, and
+## pristine(1) looks for all three in the Makefile itself. The
+## rules still name what they act on: "$(derived-assets)" and
+## "$(side-assets)" are everything the build produced, and
+## "install.txt" and "sources.txt" name what to carry, to the
+## $(HTMLDIR) and $(SRCDIR) below.
+
+
+
+## Default values. Sites override AFTER the include or via env.
+PREFIX = /usr
+BINDIR = $(PREFIX)/bin
+LIBDIR = $(PREFIX)/lib
+INCLUDEDIR = $(PREFIX)/include
+SHAREDIR = $(PREFIX)/share
+LOCALEDIR = $(SHAREDIR)/locale
+MANDIR = $(SHAREDIR)/man
+DOCDIR = $(SHAREDIR)/doc/$(NAME)
+HTMLDIR = $(SHAREDIR)/html/$(NAME)
+SRCDIR = $(PREFIX)/src/$(NAME)
+DESTDIR =
+## How many of each collection a front page lists.
+HOMECOUNT = 3
+PUBURL = public.asc.txt
+BASEURL = /
+FFMFLAGS = -y -hide_banner -loglevel warning
+
+
+
+.SUFFIXES:
+.SUFFIXES: .adoc .json .snippets .indexentry .feedentry .mapentry .sortdata .xml
+.SUFFIXES: .htmlbody .htmlheader .htmlfooter .htmllisting .html .links .caslinks
+.SUFFIXES: .comments .homeentry
+.SUFFIXES: .txt .categorydata .torrent .flac .ogg .ps .pdf .sentinel
+.SUFFIXES: .ly .midi .eslaides
+
+.adoc.json:
+ mkwb conf src/global.json $< > $@
+
+.adoc.htmlbody:
+ mkwb htmlbody $< > $@
+
+.htmlbody.html:
+ mkwb html $< > $@
+
+.json.htmlheader:
+ mkwb html -H $< > $@
+
+.json.htmlfooter:
+ mkwb html -F $< > $@
+
+.adoc.snippets:
+ mkwb snippets $< > $@
+
+.json.indexentry:
+ mkwb indexentry $< > $@
+
+## The same entry, linked from the root of the language rather
+## than the root of the collection, for a front page.
+.json.homeentry:
+ mkwb indexentry -l $< > $@
+
+.htmlbody.feedentry:
+ mkwb feedentry $< > $@
+
+.json.comments:
+ mkwb comments $< > $@
+
+.json.mapentry:
+ mkwb mapentry $< > $@
+
+.json.sortdata:
+ mkwb sortdata $< > $@
+
+.json.categorydata:
+ mkwb categorydata $< > $@
+
+.adoc.links:
+ mkwb links $< > $@
+
+.links.caslinks:
+ mkwb caslinks $< > $@
+
+.flac.ogg:
+ ffmpeg $(FFMFLAGS) -i $< -ar 48000 -vn -c:a libvorbis -b:a 320k $@
+
+.eslaides.ps:
+ eslaides < $< > $@
+
+.ly.midi:
+ lilypond -o $* $<
+
+## ghostscript stamps a PDF with the wall clock and a fresh uuid,
+## so one deck rendered twice was two different files and every
+## deploy shipped a slide nobody had touched. The dates are set
+## ahead of the input by a DOCINFO pdfmark, and the two XMP uuids
+## are named on the command line. -dOmitInfoDate does not reach
+## either: it is honoured for an input carrying no pdfmarks of its
+## own, and a deck carries plenty.
+.ps.pdf:
+ { \
+ printf '%s\n' \
+ '[ /CreationDate (D:19700101000000Z)' \
+ '/ModDate (D:19700101000000Z) /DOCINFO pdfmark'; \
+ cat $<; \
+ } | ps2pdf \
+ -sDocumentUUID=00000000-0000-0000-0000-000000000000 \
+ -sInstanceUUID=00000000-0000-0000-0000-000000000000 \
+ - > $@
+
+
+
+## Derived file lists from auto-generated source lists in deps.mk.
+listings.adoc = $(categories.adoc) $(indexes.adoc) $(homes.adoc)
+homes.htmllisting = $(homes.adoc:.adoc=.htmllisting)
+sources.adoc = $(articles.adoc) $(listings.adoc) $(pages.adoc)
+sources.htmlbody = $(sources.adoc:.adoc=.htmlbody)
+sources.html = $(sources.adoc:.adoc=.html)
+sources.snippets = $(sources.adoc:.adoc=.snippets)
+sources.json = $(sources.adoc:.adoc=.json)
+sources.links = $(sources.adoc:.adoc=.links)
+sources.caslinks = $(sources.adoc:.adoc=.caslinks)
+sources.comments = $(sources.adoc:.adoc=.comments)
+sources.mapentry = $(sources.adoc:.adoc=.mapentry)
+articles.indexentry = $(articles.adoc:.adoc=.indexentry)
+articles.homeentry = $(articles.adoc:.adoc=.homeentry)
+articles.feedentry = $(articles.adoc:.adoc=.feedentry)
+articles.sortdata = $(articles.adoc:.adoc=.sortdata)
+articles.prevnext = $(articles.adoc:.adoc=.prevnext)
+articles.categorydata = $(articles.adoc:.adoc=.categorydata)
+listings.htmlheader = $(listings.adoc:.adoc=.htmlheader)
+listings.htmlfooter = $(listings.adoc:.adoc=.htmlfooter)
+listings.html = $(listings.adoc:.adoc=.html)
+indexes.htmllisting = $(indexes.adoc:.adoc=.htmllisting)
+categories.htmllisting = $(categories.adoc:.adoc=.htmllisting)
+categories.txt = $(categories.adoc:.adoc=.txt)
+categories.xml = $(categories.adoc:.adoc=.xml)
+sources.media.torrent = $(sources.media:=.torrent)
+music.midi = $(music.ly:.ly=.midi)
+music.pdf = $(music.ly:.ly=.pdf)
+slides.ps = $(slides.eslaides:.eslaides=.ps)
+slides.pdf = $(slides.eslaides:.eslaides=.pdf)
+
+sources = \
+ $(sources.adoc) \
+ $(sources.extras) \
+ $(images.svg) \
+ $(root.dir)/favicon.ico \
+ $(root.dir)/favicon.png \
+ $(root.dir)/style.css \
+ $(root.dir)/$(PUBURL) \
+
+dynamic-contents = \
+ $(sources.html) \
+ $(slides.pdf) \
+ $(feeds.xml) \
+ $(sources.media.torrent) \
+ $(root.dir)/sitemap.xml \
+
+static-contents = \
+ $(sources.extras) \
+ $(music.ly) \
+ $(music.include) \
+ $(music.ogg) \
+ $(music.midi) \
+ $(music.pdf) \
+ $(images.svg) \
+ $(root.dir)/favicon.ico \
+ $(root.dir)/favicon.png \
+ $(root.dir)/style.css \
+ $(root.dir)/$(PUBURL) \
+ $(root.dir)/.well-known/security.txt \
+
+contents = \
+ $(dynamic-contents) \
+ $(static-contents) \
+
+all-filelists = \
+ $(sources.snippets) \
+ $(categories.xml) \
+
+all-contents = \
+ $(contents) \
+
+## What a rule writes through ifnew(1), beside a sentinel that
+## records the writing: only the exported public key, now that the
+## favicons are rendered straight to their own names.
+captured-assets = \
+ $(root.dir)/$(PUBURL) \
+
+captured-assets.sentinel = $(captured-assets:=.sentinel)
+
+derived-assets = \
+ $(dynamic-contents) \
+ $(music.midi) \
+ $(music.pdf) \
+ $(sources.html) \
+ $(sources.htmlbody) \
+ $(sources.snippets) \
+ $(sources.json) \
+ $(sources.links) \
+ $(sources.caslinks) \
+ $(sources.comments) \
+ src/comments.sentinel \
+ $(sources.mapentry) \
+ src/global.json \
+ $(translations.txt) \
+ $(articles.indexentry) \
+ $(articles.homeentry) \
+ $(articles.feedentry) \
+ $(articles.sortdata) \
+ $(articles.prevnext) \
+ $(articles.categorydata) \
+ $(listings.htmlheader) \
+ $(listings.htmlfooter) \
+ $(listings.html) \
+ $(indexes.htmllisting) \
+ $(categories.htmllisting) \
+ $(homes.htmllisting) \
+ $(categories.txt) \
+ $(categories.xml) \
+ $(slides.ps) \
+ $(slides.pdf) \
+ baseurl.txt \
+ fingerprint.txt \
+ expiry.txt \
+ expiry-epoch.txt \
+ now.txt \
+ $(root.dir)/.well-known/security.txt \
+ src/all-contents.txt \
+ src/all-filelists.txt \
+ src/all-symlinks.txt \
+ src/install.txt \
+ src/sort-expected.txt \
+ src/sort-given.txt \
+ src/sources.txt \
+ install.txt \
+ sources.txt \
+ $(root.dir)/.gitignore \
+ $(captured-assets.sentinel) \
+
+## Artifacts whose names the rules never write down: a page's
+## code blocks are numbered by however many it has, and sortdata
+## is named for the date it carries. A glob would have to fix a
+## depth, and a page may sit at any of them, so ask find.
+side-assets = \
+ $$(find $(root.dir) -name '*.html.*.txt' 2>/dev/null) \
+ $$(find $(root.dir) -name '*.sortdata' 2>/dev/null) \
+ $$(find $(root.dir) -name 'sortdata.txt' 2>/dev/null) \
+ $(root.dir)/*/*/feed.*.xml \
+ $(translations) \
+ src/i18n.stamp \
+ $(root.dir)/.well-known/ \
+ src/comments/ \
+ $$(cat src/all-symlinks.txt 2>/dev/null) \
+ install.tar \
+ sources.tar \
+
+
+
+## Default target -- builds all derived + captured artifacts.
+## $(static-contents) is named too: most of it the site ships, but
+## the fallback rules below craft what it doesn't (style.css, the
+## favicon), and nothing else asks for those now that no .gz twin
+## does.
+all: $(derived-assets) $(captured-assets) $(static-contents)
+all: install.tar sources.tar
+
+
+## A page's configuration names the same page in the other
+## languages, so it is built after the map that says which those
+## are. A site with no translations sets no map, and the variable
+## is empty.
+$(sources.json): src/global.json $(translations.txt)
+
+
+## Optional inputs default to empty / stub when the site doesn't
+## ship them, so make doesn't bail on a missing prerequisite.
+src/symlinks.txt:
+ : > $@
+
+## The list archive as the list exports it, and the messages split
+## out of it. One file is what gets committed; make cuts it up.
+## The names are not known in advance, so a stamp stands for them.
+src/comments.mbox:
+ : > $@
+
+## Where the split messages land and which file overrides them is
+## the site's to say, so both come from its config rather than from
+## here; a site that says nothing gets the defaults it always had.
+$(comments.map):
+ mkdir -p $(@D)
+ : > $@
+
+src/comments.sentinel: src/comments.mbox
+ mkwb mbox $(comments.dir) < src/comments.mbox > /dev/null
+ touch $@
+
+## Comments that did not arrive as mail: one archive per place a
+## discussion happens, each read as it stands, since a record needs
+## no splitting where an mbox is a stream whose messages make(1)
+## cannot name in advance. Which archives those are is $comments_json
+## in the site's own config, written out above; a site that holds no
+## such discussion names none and waits on nothing.
+$(sources.comments): src/comments.sentinel $(comments.map)
+$(sources.comments): $(comments.archives)
+
+## A page renders the thread belonging to it, and the site names
+## which .comments that is, page by page. Every page waiting on
+## every page's thread --- which is what this was --- meant one
+## article's .comments being rewritten rebuilt the whole site,
+## since a page's .comments is rewritten whenever its .json is.
+
+$(root.dir)/style.css:
+ mkdir -p $(@D)
+ : > $@
+
+$(root.dir)/$(img.dir)/favicon.svg:
+ mkdir -p $(@D)
+ printf '%s\n' \
+ '<?xml version="1.0" encoding="UTF-8"?>' \
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">' \
+ ' <rect width="16" height="16" fill="#888"/>' \
+ '</svg>' > $@
+
+## The links are made in the tree they belong to, so the recipe
+## goes there --- and the table it reads is named from here, not
+## from there: how far down $(root.dir) sits is the site's to
+## choose, and "../" only ever guessed at one answer.
+$(root.dir)/.gitignore: src/symlinks.txt
+ mkdir -p $(@D)
+ top=$$(pwd) && cd $(root.dir)/ && \
+ mkwb symlinks "$$top"/src/symlinks.txt > $(@F)
+
+## An empty object stands in when the site ships no src/config.json,
+## so the rule below always has its input and the build fails
+## naming the setting it wants --- "Missing required $email" ---
+## rather than the file. A site that writes one is left alone:
+## this is a source file, not a derived asset.
+src/config.json:
+ echo '{}' > $@
+
+## Everything the configuration needs that is not in config.json:
+## the three one-line files beside the site, which mkwb reads
+## itself, and the four values only make knows. LANGUAGES tells
+## mkwb conf whether to path-derive a page's language (a site with
+## $(root.dir)/<lang>/...) or leave it empty (a flat one); empty is
+## passed through as such.
+src/global.json: src/config.json baseurl.txt fingerprint.txt
+ mkwb conf -G -n '$(NAME)' -l '$(LANGUAGES)' -u '$(PUBURL)' \
+ -t '$(translations.txt)' src/config.json > $@
+
+## $* is the target with its suffix off. POSIX promises it "at
+## least for inference rules", and both GNU make and BSD make give
+## it for an explicit rule too, as long as the suffix is one that
+## .SUFFIXES declares --- and every suffix used below is.
+$(listings.html):
+ cat $*.htmlheader $*.htmlbody $*.htmllisting $*.htmlfooter > $@
+
+$(indexes.htmllisting):
+ mkwb indexbody $*.json > $@
+
+## A language's front page: each collection the navigation lists,
+## with the newest $(HOMECOUNT) of it.
+$(homes.htmllisting):
+ mkwb homebody -c $(HOMECOUNT) $*.json > $@
+
+$(categories.htmllisting):
+ mkwb categoriesbody $*.json > $@
+
+$(categories.txt): src/global.json
+ mkwb categories src/global.json $(@D) > $@
+
+$(categories.xml): src/global.json
+ for f in $$(cat $*.txt); do \
+ c="$$(printf '%s\n' "$$f" | cut -d. -f2)"; \
+ mkwb feed src/global.json "$$f" \
+ $(@D)/feed."$$c".xml > $(@D)/feed."$$c".xml; \
+ printf '%s\n' $(@D)/feed."$$c".xml; \
+ done > $@
+
+$(feeds.xml): src/global.json
+ mkwb feed src/global.json $(@D)/sortdata.txt $@ > $@
+
+## An article's neighbours are its own rule, written by the
+## site's deps.mk: it knows the collection's order and names the
+## two pages either side of each entry, so a change to one entry
+## reaches those two pages and no others.
+
+$(root.dir)/$(PUBURL):
+ mkdir -p $(@D)
+ : > $@
+$(root.dir)/$(PUBURL).sentinel: src/global.json $(root.dir)/$(PUBURL)
+ out=$$(echo $@ | sed 's/\.sentinel$$//'); \
+ gpg --export --armour "$$(mkwb get email src/global.json)" | \
+ ifne ifnew "$$out"
+ touch $@
+
+## Rendered from the one SVG the site keeps, each straight to its
+## own name. A sentinel and an ifnew(1) stood here to hold a
+## file's mtime still when convert(1) wrote the same bytes again,
+## and nothing downstream is built from a favicon --- it is
+## installed and served, not read --- so the mtime bought nothing
+## and the indirection cost a target make had no rule for.
+## $< is an inference rule's, not an explicit rule's, under POSIX
+## make, so each names its source.
+$(root.dir)/favicon.ico: $(root.dir)/$(img.dir)/favicon.svg
+ convert $(root.dir)/$(img.dir)/favicon.svg -strip ico:- > $@
+
+$(root.dir)/favicon.png: $(root.dir)/$(img.dir)/favicon.svg
+ convert $(root.dir)/$(img.dir)/favicon.svg -strip png:- > $@
+
+$(sources.media.torrent):
+ src=$$(echo $@ | sed 's/\.torrent$$//'); \
+ rel=$$(echo "$$src" | cut -d/ -f3-); \
+ base=$$(basename "$$src"); \
+ mktorrent -x -f -d -n "$$base" -o $@ \
+ -w "https://$(NAME)$(BASEURL)$$rel" "$$src"
+
+## Makes its own directory: what it waits on is every page's map
+## entry, and a site with no pages yet waits on nothing, so nothing
+## else has made the tree it writes into.
+$(root.dir)/sitemap.xml: $(sources.mapentry)
+ mkdir -p $(@D)
+ mkwb sitemap $(sources.mapentry) > $@
+
+## The site is served from its own name, so the canonical URL is
+## derived rather than configured. $(BASEURL) is deliberately not
+## folded in: it is the path prefix for in-site links, while this
+## is the scheme-and-host every consumer concatenates a rooted path
+## onto.
+baseurl.txt:
+ echo 'https://$(NAME)' > $@
+
+## fingerprint.txt / expiry.txt tolerate a missing public key: if
+## $(root.dir)/$(PUBURL) is empty (no key was exported), fall back
+## to an empty fingerprint and a fixed far-future expiry (2099-12-31
+## UTC, epoch 4102444800). check-unit-expiry stays meaningful
+## because expiry > now holds; security.txt stays valid (RFC 9116
+## requires an Expires line).
+fingerprint.txt: $(root.dir)/$(PUBURL)
+ if [ -s $< ]; then \
+ gpg --always-trust --no-keyring --show-key --with-colons \
+ $< | \
+ awk -F: '/^pub:/ { print $$5 }' > $@; \
+ else \
+ : > $@; \
+ fi
+
+## Rendered in UTC: date(1) writes the offset it is standing in
+## otherwise, and then two builds of one site disagree about when
+## the key expires because the people running them do not share a
+## timezone.
+expiry.txt: $(root.dir)/$(PUBURL)
+ if [ -s $< ]; then \
+ gpg --always-trust --no-keyring --show-key --with-colons \
+ $< | \
+ awk -F: '/^pub:/ { print $$7 }' | \
+ xargs -I% date -uIs -d@% > $@; \
+ else \
+ date -uIs -d '@4102444800' > $@; \
+ fi
+
+expiry-epoch.txt: expiry.txt
+ date -d "$$(cat expiry.txt)" '+%s' > $@
+
+now.txt:
+ now > $@
+
+$(root.dir)/.well-known/security.txt: src/global.json baseurl.txt \
+ expiry.txt $(root.dir)/$(PUBURL)
+ mkdir -p $(@D)
+ printf 'Contact: mailto:%s\n' \
+ "$$(mkwb get email src/global.json)" > $@
+ printf 'Expires: %s\n' "$$(cat expiry.txt)" >> $@
+ if [ -s $(root.dir)/$(PUBURL) ]; then \
+ printf 'Encryption: %s/$(PUBURL)\n' \
+ "$$(cat baseurl.txt)" >> $@; \
+ fi
+ printf 'Preferred-Languages: en, pt, fr, eo, es, de\n' >> $@
+
+## Each writes out a variable deps.mk defines, so deps.mk is what
+## they are made from: without it named here the list is written
+## once and then never again, and a page added later is built,
+## carried into no tarball, and shipped by nothing.
+src/sources.txt: deps.mk
+ printf '%s\n' $(sources) > $@
+
+src/all-contents.txt: deps.mk
+ printf '%s\n' $(all-contents) > $@
+
+src/all-filelists.txt: deps.mk src/all-symlinks.txt
+ printf '%s\n' $(all-filelists) src/all-symlinks.txt > $@
+
+src/all-symlinks.txt: $(root.dir)/.gitignore
+ sed 's|^|$(root.dir)|' $(root.dir)/.gitignore > $@
+
+src/install.txt: src/all-contents.txt src/all-filelists.txt $(all-filelists)
+ cat src/all-contents.txt $$(cat src/all-filelists.txt) > $@
+
+sources.txt: src/sources.txt
+install.txt: src/install.txt
+sources.txt install.txt:
+ sed 's|^$(root.dir)/||' src/$(@F) > $@
+
+## What a site ships: the pages under one tarball and the sources
+## they were built from under another, each carrying exactly what
+## its list names. A tarball rather than a directory because it
+## travels --- "cat install.tar | ssh host tar -xf - -C /srv/www"
+## is the whole of a deployment --- and because installing is then
+## the same extraction whether the tree is going next door or
+## across a network.
+##
+## They are side assets, not derived ones: install.tar is built
+## from what it archives, so it cannot be one of them.
+##
+## And it waits on all of that, static contents included. Naming
+## only the derived ones held while the rest were sources the
+## repository carried; a site that renders its favicon instead has
+## nothing to make it, and dtar stops at the first name it cannot
+## find.
+install.tar: $(derived-assets) $(contents) install.txt
+ cat install.txt | dtar -C $(root.dir) > $@
+
+## Waits on the sources themselves, not merely on the list naming
+## them: some are built --- a rendered favicon, a translated page ---
+## and a parallel build that reached this rule first archived them
+## empty, which the list alone could not have told it.
+sources.tar: sources.txt $(sources)
+ cat sources.txt | dtar -C $(root.dir) > $@
+
+
+
+## ---- check-unit-* targets ---------------------------------------
+
+src/sort-expected.txt:
+ if [ -n "$(articles.adoc)" ]; then \
+ dirname $(articles.adoc) | LC_ALL=C sort | \
+ uniq -c | \
+ awk '{ printf "%s\t%s\n", $$2, $$1 }'; \
+ fi > $@
+
+src/sort-given.txt: $(sources.json) src/sort-expected.txt
+ awk '{ \
+ "grep \"\\\"sort\\\":\" " $$1 "/*.json | wc -l" | \
+ getline cnt; \
+ printf "%s\t%s\n", $$1, cnt; \
+ }' src/sort-expected.txt > $@
+
+check-unit-sorting: src/sort-expected.txt src/sort-given.txt
+ diff -U10 src/sort-expected.txt src/sort-given.txt
+
+
+.SUFFIXES: .updatedat-check
+sources.updatedat-check = $(sources.adoc:.adoc=.updatedat-check)
+$(sources.updatedat-check):
+ u=$$(mkwb get updatedat_epoch $*.json); \
+ d=$$(mkwb get date_epoch $*.json); \
+ if [ -n "$$u" ] && [ "$$u" -le "$$d" ]; then exit 3; fi
+
+check-unit-updatedat: $(sources.updatedat-check)
+
+
+.SUFFIXES: .links-internal-check
+sources.links-internal-check = $(sources.adoc:.adoc=.links-internal-check)
+$(sources.links-internal-check): $(sources.html) $(slides.pdf)
+ dir=$$(dirname "$*"); \
+ grep -E '^(link|image):' $*.links | cut -d: -f2- | \
+ xargs -I% test -e "$$dir"/%
+
+check-unit-links-internal: $(sources.links-internal-check)
+
+
+check-unit-links-external:
+
+
+## Every page carries a title. A source the transformer could not
+## read one from -- a deck in another format, say -- renders one
+## that is empty, and nothing downstream notices.
+.SUFFIXES: .title-check
+sources.title-check = $(sources.adoc:.adoc=.title-check)
+$(sources.title-check): $(sources.html)
+ grep -q '<title>[^<]' $*.html || { \
+ printf '%s: rendered with an empty title\n' "$*.html" >&2; \
+ exit 1; \
+ }
+
+check-unit-titles: $(sources.title-check)
+
+
+## A deck that collapses to one page is what a source written in
+## an input dialect the tool no longer speaks looks like: eslaides
+## reads it, exits 0, and emits a deck with nothing broken out of
+## it. The page count is the one thing that says so, and it is
+## knowable from the source: one page per slide, and one slide
+## more than there are breaks between them.
+##
+## The count alone does not catch the case that prompted this: a
+## deck written in an input dialect the tool no longer speaks has
+## no breaks it recognises, so one page is exactly what one slide
+## predicts. Hence the second assertion --- a deck is never one
+## slide, and a source that claims to be is being misread.
+##
+## awk rather than grep -c: a deck carrying an em dash or an emoji
+## is enough for grep to call the PostScript binary and count
+## nothing, which reads here as a deck that is fine.
+.SUFFIXES: .pages-check
+slides.pages-check = $(slides.eslaides:.eslaides=.pages-check)
+$(slides.pages-check): $(slides.ps)
+ want=$$(awk '/^<<<$$/{n++} END{print n+1}' $*.eslaides); \
+ got=$$(awk '/^%%Page:/{n++} END{print n+0}' $*.ps); \
+ if [ "$$want" -ne "$$got" ]; then \
+ printf '%s: %s pages for %s slides\n' \
+ "$*.ps" "$$got" "$$want" >&2; \
+ exit 1; \
+ fi; \
+ if [ "$$want" -eq 1 ]; then \
+ printf '%s: no slide breaks; a deck is not one slide\n' \
+ "$*.eslaides" >&2; \
+ exit 1; \
+ fi
+
+check-unit-slides: $(slides.pages-check)
+
+
+## A listing block that renders empty means the transformer lost
+## the code it was handed, and usually the prose after it too.
+.SUFFIXES: .listing-check
+sources.listing-check = $(sources.adoc:.adoc=.listing-check)
+$(sources.listing-check): $(sources.html)
+ if grep -q '<div class="content"></div>' $*.html; then \
+ printf '%s: a listing block rendered empty\n' \
+ "$*.html" >&2; \
+ exit 1; \
+ fi
+
+check-unit-listings: $(sources.listing-check)
+
+
+## check-unit-links-internal sees only the link: and image: macros
+## a page wrote. This sees what the templates emitted around it:
+## the feed, the stylesheet, the icons, the navigation.
+.SUFFIXES: .links-html-check
+sources.links-html-check = $(sources.adoc:.adoc=.links-html-check)
+$(sources.links-html-check): $(sources.html)
+ dir=$$(dirname "$*"); \
+ missing=$$(grep -oE '(href|src)="[^"#?:]+"' $*.html | \
+ sed -e 's/.*="//' -e 's/"$$//' | \
+ while read -r h; do \
+ case "$$h" in /*|'') continue;; esac; \
+ test -e "$$dir/$$h" || printf '%s ' "$$h"; \
+ done); \
+ if [ -n "$$missing" ]; then \
+ printf '%s: unresolved: %s\n' "$*.html" "$$missing" >&2; \
+ exit 1; \
+ fi
+
+check-unit-links-html: $(sources.links-html-check)
+
+
+## Atom gives every feed a distinct id. A site that pins one feed
+## URL for the whole build publishes several feeds claiming to be
+## the same one.
+## -exec ... + rather than $(find ...) as arguments: a site with
+## no feeds at all fed grep(1) no filenames, which left it reading
+## the terminal, and "make check" hung there rather than passing.
+check-unit-feed-ids: $(feeds.xml) $(categories.xml)
+ dupes=$$(find $(root.dir) -name 'feed*.xml' -type f \
+ -exec grep -h 'rel="self"' {} + | \
+ sort | uniq -d); \
+ if [ -n "$$dupes" ]; then \
+ printf 'feeds sharing an id:\n%s\n' "$$dupes" >&2; \
+ exit 1; \
+ fi
+
+
+## Only meaningful where content is partitioned by language: the
+## directory a page sits in is what it should say it speaks.
+check-unit-lang: $(sources.html)
+ if [ -z '$(LANGUAGES)' ]; then exit 0; fi; \
+ bad=''; \
+ for f in $(sources.html); do \
+ l=$$(printf '%s\n' "$${f#$(root.dir)/}" | cut -d/ -f1); \
+ case "$$l" in ??) ;; *) continue;; esac; \
+ d=$$(grep -m1 -o '<html lang="[^"]*"' "$$f" | \
+ sed -e 's/.*="//' -e 's/"//'); \
+ if [ "$$d" != "$$l" ]; then bad="$$bad $$f($$d)"; fi; \
+ done; \
+ if [ -n "$$bad" ]; then \
+ printf 'pages declaring a language their path does not:%s\n' \
+ "$$bad" >&2; \
+ exit 1; \
+ fi
+
+
+## po4a writes a translation only when it has one, and a stale
+## fuzzy flag is enough to skip a page without saying so.
+check-unit-i18n:
+ if [ ! -f po/po4a.cfg ]; then exit 0; fi; \
+ missing=$$(grep -oE '[a-z][a-z]:$(root.dir)/[^[:space:]]+' \
+ po/po4a.cfg | \
+ cut -d: -f2 | \
+ while read -r t; do \
+ test -e "$$t" || printf '%s ' "$$t"; \
+ done); \
+ if [ -n "$$missing" ]; then \
+ printf 'declared in po4a.cfg, never generated: %s\n' \
+ "$$missing" >&2; \
+ exit 1; \
+ fi
+
+
+## "clean" removes what the current deps.mk lists, so an artifact
+## whose source was renamed or deleted stays behind for good --
+## and gitignored, so no status command shows it either.
+##
+## Three rules cover everything whose name says what produced it:
+## nearly every artifact is <source>.<ext>, a code sidecar is
+## <page>.html.<n>.txt, and a torrent or a sentinel is named for
+## the file it describes. What is left out is derived from a
+## directory rather than from one named file -- the dated sortdata
+## markers, the feeds, the collection lists -- and so carries no
+## name to check a source against.
+check-unit-orphans: $(derived-assets)
+ orphans=$$(find $(root.dir) -type f | \
+ while read -r f; do \
+ case "$$f" in \
+ *.html.*.txt) \
+ [ -e "$${f%.html.*.txt}.adoc" ] || \
+ printf '%s ' "$$f";; \
+ *.torrent|*.sentinel) \
+ [ -e "$${f%.*}" ] || \
+ printf '%s ' "$$f";; \
+ *.htmlbody|*.json|*.snippets|*.links|\
+ *.caslinks|\
+ *.html|*.indexentry|*.feedentry|*.mapentry|\
+ *.categorydata|*.htmlheader|*.htmlfooter|\
+ *.prevnext|\
+ *.htmllisting|*.ps|*.pdf|*.midi) \
+ s=$${f%.*}; \
+ [ -e "$$s.adoc" ] || \
+ [ -e "$$s.eslaides" ] || \
+ [ -e "$$s.ly" ] || \
+ printf '%s ' "$$f";; \
+ esac; \
+ done); \
+ if [ -n "$$orphans" ]; then \
+ printf 'built artifacts whose source is gone: %s\n' \
+ "$$orphans" >&2; \
+ exit 1; \
+ fi
+
+
+
+symlink-deps = \
+ $(sources.html) \
+ $(feeds.xml) \
+ $(categories.xml) \
+ $(root.dir)/.well-known/security.txt \
+ $(sources.media.torrent) \
+
+## A symlink naming a FILE.gz is satisfied by FILE: the twin is
+## the packager's to craft over the installed tree, not this
+## build's -- see gzipdir(1). Every other link has to resolve
+## here and now.
+check-unit-links-symlinks: src/all-symlinks.txt $(symlink-deps)
+ dangling=''; \
+ for l in $$(cat src/all-symlinks.txt); do \
+ if [ -e "$$l" ]; then continue; fi; \
+ t=$$(readlink "$$l"); \
+ case "$$t" in \
+ *.gz) test -e "$$(dirname "$$l")/$${t%.gz}" && \
+ continue;; \
+ esac; \
+ dangling="$$dangling $$l"; \
+ done; \
+ if [ -n "$$dangling" ]; then \
+ printf 'symlinks resolving to nothing:%s\n' \
+ "$$dangling" >&2; \
+ exit 1; \
+ fi
+
+
+check-unit-links: check-unit-links-internal check-unit-links-external
+check-unit-links: check-unit-links-symlinks check-unit-links-html
+
+
+MAXSIZE = 52428800 # from spec: https://www.sitemaps.org/protocol.html
+check-unit-sitemap-size: $(root.dir)/sitemap.xml
+ test "$$(stat --printf='%s' $(root.dir)/sitemap.xml)" -le $(MAXSIZE)
+
+check-unit-sitemap-count: $(root.dir)/sitemap.xml
+ test "$$(grep -cF '</url>' $(root.dir)/sitemap.xml)" -le 50000
+
+check-unit-sitemap: check-unit-sitemap-count check-unit-sitemap-size
+
+
+check-unit-expiry: expiry-epoch.txt now.txt
+ test "$$(cat expiry-epoch.txt)" -gt "$$(cat now.txt)"
+
+
+check-unit: check-unit-sorting check-unit-updatedat check-unit-links
+check-unit: check-unit-sitemap check-unit-expiry
+check-unit: check-unit-titles check-unit-listings check-unit-feed-ids
+check-unit: check-unit-lang check-unit-i18n check-unit-orphans
+check-unit: check-unit-slides
+
+## A site anchors "check" in its own Makefile so pristine(1) finds
+## it there, and every site meant that to run these. One of them
+## did not say so and its checks never ran, which is a silence no
+## site should have to remember to break: the rules that define
+## the checks are the rules that ask for them. A site with tests
+## of its own names those on a "check" line beside this one.
+check: check-unit
+
+
+ALWAYS:
+
+$(sources.html) $(sources.json): src/i18n.stamp
+$(listings.htmllisting) $(categories.xml): src/i18n.stamp
+$(articles.feedentry): src/i18n.stamp