diff --git a/.eleventy.js b/.eleventy.js index 9ca6496..1fed181 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -69,12 +69,27 @@ module.exports = function (eleventyConfig) { eleventyConfig.addShortcode("image", imageShortcode); eleventyConfig.addShortcode("heroImage", heroImageShortcode); + // A "column" is anything tagged `column`, wherever it lives on disk + // (some columns are authored under Notes/). Newest first. eleventyConfig.addCollection("columns", function (collectionApi) { return collectionApi - .getFilteredByGlob("columns/**/*.md") + .getFilteredByTag("column") .sort((a, b) => b.date - a.date); }); + // The subject tags actually in use across columns — everything except the + // `column` type marker and Eleventy's reserved `all`. Sorted for stable order. + eleventyConfig.addCollection("subjects", function (collectionApi) { + const reserved = new Set(["all", "column"]); + const subjects = new Set(); + for (const item of collectionApi.getFilteredByTag("column")) { + for (const tag of item.data.tags || []) { + if (!reserved.has(tag)) subjects.add(tag); + } + } + return [...subjects].sort(); + }); + eleventyConfig.addFilter("inlineMarkdown", function (text) { return text.replace(/~~(.+?)~~/g, "$1"); }); diff --git a/Notes/do-people-think.md b/Notes/do-people-think.md index fbef6d0..22cbcec 100644 --- a/Notes/do-people-think.md +++ b/Notes/do-people-think.md @@ -2,7 +2,7 @@ title: Do ~~Machines~~ People Think? date: 2026-04-02 layout: column.njk -tags: column +tags: [column, philosophy] permalink: /columns/2026/do-people-think/ --- diff --git a/Notes/how-to-write.md b/Notes/how-to-write.md index bcb7465..8a84c15 100644 --- a/Notes/how-to-write.md +++ b/Notes/how-to-write.md @@ -2,7 +2,7 @@ title: How To Write date: 2026-04-06 layout: column.njk -tags: column +tags: [column, writing] permalink: /columns/2026/how-to-write/ --- diff --git a/Notes/systems.md b/Notes/systems.md index 007746f..454b2aa 100644 --- a/Notes/systems.md +++ b/Notes/systems.md @@ -2,7 +2,7 @@ title: systems date: 2026-04-06 layout: column.njk -tags: column +tags: [column, philosophy] permalink: /columns/2026/systems/ --- diff --git a/_includes/base.njk b/_includes/base.njk index 07f0f60..eeaccca 100644 --- a/_includes/base.njk +++ b/_includes/base.njk @@ -25,6 +25,7 @@ diff --git a/_includes/column.njk b/_includes/column.njk index 9ee8197..2fc23ea 100644 --- a/_includes/column.njk +++ b/_includes/column.njk @@ -38,6 +38,7 @@ diff --git a/columns/2026-04-19-happy-idiots.md b/columns/2026-04-19-happy-idiots.md index 14cb74f..33248ae 100644 --- a/columns/2026-04-19-happy-idiots.md +++ b/columns/2026-04-19-happy-idiots.md @@ -2,7 +2,7 @@ title: Happy Idiots date: 2026-04-19 layout: column.njk -tags: column +tags: [column, society] permalink: /columns/2026/happy-idiots/ --- diff --git a/columns/2026-05-14-thrilling.md b/columns/2026-05-14-thrilling.md index ca0ed8f..467ef88 100644 --- a/columns/2026-05-14-thrilling.md +++ b/columns/2026-05-14-thrilling.md @@ -2,7 +2,7 @@ title: 12-Watt Bulbs date: 2026-05-14 layout: column.njk -tags: column +tags: [column, society] permalink: /columns/2026/thrilling/ --- diff --git a/columns/2026-06-23-hamming-it-up.md b/columns/2026-06-23-hamming-it-up.md index 95d6826..e0e05ca 100644 --- a/columns/2026-06-23-hamming-it-up.md +++ b/columns/2026-06-23-hamming-it-up.md @@ -2,7 +2,7 @@ title: Hamming It Up date: 2026-06-23 layout: column.njk -tags: column +tags: [column, computing] permalink: /columns/2026/hamming/ --- diff --git a/css/style.css b/css/style.css index 618ee1d..6b75499 100644 --- a/css/style.css +++ b/css/style.css @@ -175,6 +175,33 @@ a:hover { margin: 2rem 0; } +/* subjects index */ + +.subject-group { + margin-bottom: 2rem; +} + +.subject-group h2 { + font-size: 1.1rem; + margin-bottom: 0.5rem; +} + +.subject-group ul { + list-style: none; + padding-left: 0; +} + +.subject-group li { + margin-bottom: 0.3rem; +} + +.subject-group time { + font-family: var(--font-ui); + font-size: 0.8rem; + color: var(--color-muted); + margin-left: 0.5rem; +} + /* sidebar */ .sidebar { diff --git a/subjects.njk b/subjects.njk new file mode 100644 index 0000000..9c5a83a --- /dev/null +++ b/subjects.njk @@ -0,0 +1,23 @@ +--- +layout: base.njk +title: Subjects +permalink: /subjects/ +--- + +

Subjects

+ +{%- for subject in collections.subjects %} +
+

{{ subject }}

+ +
+{%- else %} +

No subjects yet.

+{%- endfor %}