Compare commits

...

10 Commits

Author SHA1 Message Date
af04f61821 Change site default time zone to fix RSS issue 2025-07-16 12:54:09 -05:00
8a48f677f6 Update Eleventy 2025-07-16 12:53:40 -05:00
a3f1d04921 Disable structured data for now-burning
Broken with new version of eleventy, and probably not necessary anyway.
2025-07-16 12:53:28 -05:00
4fa562d0fe Fix YAML syntax errors 2025-07-16 12:52:35 -05:00
5df418eb2e Add entries to blogroll 2025-07-16 12:50:36 -05:00
6fe844486e Update /wish 2025-07-16 12:50:23 -05:00
d38da8fc37 Add category list and header links to blogroll 2025-07-16 12:50:07 -05:00
46f83c4c24 Remove id attr. from opml 2025-07-16 12:49:19 -05:00
81e76f3da0 Update changelog 2025-07-16 12:47:59 -05:00
92fd1289d1 Add entries 2025-07-16 12:47:33 -05:00
12 changed files with 84 additions and 11 deletions

View File

@ -461,6 +461,13 @@ export default {
{
name: "LGBTQ+",
blogs: [
{
title: "Assigned Media",
feedUrl: "https://www.assignedmedia.org/?format=rss",
url: "https://www.assignedmedia.org/",
description:
"Mainstream coverage of transgender life is falling short, while transphobic propaganda on the right grows louder and more insistent every day. Assigned publishes factual, up to date, responsible coverage of trans issues, allowing trans people and our allies to separate the truth from the lies and build a response to anti-trans hate that achieves dignity and equality for trans people in the US and beyond.",
},
{
title: "Uncloseted Media",
feedUrl: "https://www.unclosetedmedia.com/feed",
@ -487,6 +494,13 @@ export default {
description:
"High-quality journalism which challenges power, inspires change and builds leadership among groups underrepresented in the media. (Predominantly U.K. focused)",
},
{
title: "Rest of World",
feedUrl: "https://restofworld.org/feed/latest",
url: "https://restofworld.org/",
description:
"Rest of World is a nonprofit publication that challenges expectations about whose experiences with technology matter. We connect the dots across a rapidly evolving digital world, through on-the-ground reporting in places typically overlooked and underestimated.",
},
{
title: "Techdirt",
feedUrl: "https://www.techdirt.com/feed/",
@ -512,6 +526,13 @@ export default {
url: "https://popular.info/",
description: "News for people who give a damn.",
},
{
title: "Prism",
feedUrl: "https://prismreports.org/feed/",
url: "https://prismreports.org",
description:
"Prism is an independent and nonprofit news outlet led by journalists of color. We report from the ground up and at the intersections of injustice. Together, our journalists go where justice requires. Activists, thought leaders, decision-makers, and all those who believe in justice for all come to Prism for deep reporting and honest insights on the most pressing injustices of our time—delivered through the lens of those who are most impacted.",
},
{
title: "Reveal from the Center for Investigative Reporting",
feedUrl: "https://revealnews.org/feed",
@ -663,6 +684,13 @@ export default {
description:
'ProPublica is an independent, nonprofit newsroom that produces investigative journalism with moral force. (Thanks to <a href="https://werd.io/2024/non-profit-newsrooms-that-speak-to-power">werd.io</a> for the recommendation.)',
},
{
title: "The Appeal",
feedUrl: "https://theappeal.org/theappeal",
url: "https://theappeal.org",
description:
"The Appeal is a nonprofit news organization that envisions a world in which systems of support and care, not punishment, create public safety. The Appeals journalism exposes the harms of a criminal legal system entrenched in centuries of systemic racism. We equip people with the information necessary to make change, and we elevate solutions that emerge from the communities most affected by policing, jails, and prisons in the U.S.",
},
{
title: "The 19th",
feedUrl: "https://19thnews.org/feed/",

View File

@ -8,7 +8,7 @@ permalink: /blogroll/nathanUpchurchBlogroll.opml
<ownerName>Nathan Upchurch</ownerName>
</head>
<body>{% for category in blogroll.categories %}
<outline id="{{ category.name }}" text="{{ category.name }}">{% for blog in category.blogs %}
<outline text="{{ category.name }}">{% for blog in category.blogs %}
<outline
text="{{ blog.title }}"
description="{{ blog.description }}"

View File

@ -4,10 +4,17 @@ title: Nathan Upchurch | Blogroll
structuredData: none
---
<h1>Blogroll</h1>
<p class="nodropcap page-block">Here are some of the blogs I subscribe to. You can click the RSS icon next to each to subscribe using <a href="../about-feeds/">your newsreader</a>, or import all of them at once by downloading and importing this convenient <a href="./nathanUpchurchBlogroll.opml" download>.opml file</a>.</p>
<p class="nodropcap">Here are some blogs and independent news outlets I like to read. You can click the RSS icon next to each to subscribe using <a href="../about-feeds/">your newsreader</a>, or import all of them at once by downloading and importing this convenient <a href="./nathanUpchurchBlogroll.opml" download>.opml file</a>.</p>
<p class="page-block">
<em>Skip to category:
{% for category in blogroll.categories %}
<a href="#{{ category.name | slugify }}">{{ category.name }}</a>{% if loop.last %}.{% else %},{% endif %}
{% endfor %}
</em></p>
{% for category in blogroll.categories %}
<section class="blogroll">
<h2>{{ category.name }}:</h2>
<h2 id="{{ category.name | slugify }}">{{ category.name }}:<a class="header-anchor" href="#{{ category.name | slugify }}">#</a></h2>
{% for blog in category.blogs %}
<div class="blogroll-category-group">
<a href="{{ blog.url }}"><h3>{{ blog.title }}</h3></a>

View File

@ -4,6 +4,11 @@ title: Nathan Upchurch | Changelog
structuredData: none
---
# Changelog
* 2025-07-14
* Added [Assigned](https://www.assignedmedia.org), [Prism](https://prismreports.org), [Rest of World](https://restofworld.org), and [The Appeal](https://theappeal.org/) to the [blogroll](/blogroll).
* Updated the [blogroll](/blogroll), adding a "skip to category" section, and adding direct links to all section headers.
* Removed "id" attribute from categories in [blogroll](/blogroll) [OPML](/blogroll/nathanUpchurchBlogroll.opml).
* Updated [/wish](/wish).
* 2025-07-13
* Renamed the [blog](/blog), updated [/about](/about), and added [Bardo Burner](https://bardoburner.com/) to the [blogroll](/blogroll).
* 2025-07-10

View File

@ -8,8 +8,8 @@ tags: gallery
structuredData: none
eleventyComputed:
title: "{{ gallery.title }}"
permalink: "/gallery/{{ gallery.title | slugify }}/"
description: "{{ gallery.description }}"
permalink: "/gallery/{{ gallery.title | slugify }}/"
description: "{{ gallery.description }}"
---
<h1>{{ gallery.title }}</h1>
<p class="page-block nodropcap">{{ gallery.description }}</p>

View File

@ -0,0 +1,7 @@
---
title: Moss Garden (Nokiba)
manufacturer: Shoyeido
date: 2025-07-14 12:43:00
time: 12:43 PM
---

View File

@ -0,0 +1,7 @@
---
title: Reiryokoh
manufacturer: Kunmeido
date: 2025-07-14 11:32:00
time: 11:32 AM
---
Fancied something stimulating for this Monday morning as I drink some ripe pu'er.

View File

@ -2,4 +2,5 @@ export default {
tags: ["nowBurning"],
layout: "layouts/base.njk",
permalink: false,
structuredData: "none",
};

View File

@ -14,8 +14,8 @@ postlistHeaderText: "Latest Posts:"
structuredData: none
eleventyComputed:
title: Posts tagged “{{ tag }}”
permalink: "/tags/{{ tag | slugify }}/"
description: A list of every post I've written tagged “{{ tag }}.”
permalink: "/tags/{{ tag | slugify }}/"
description: A list of every post I've written tagged “{{ tag }}.”
---
<h1>Topic: “{{ tag }}.”
</h1>

View File

@ -35,11 +35,9 @@ If, like my mother, the non-consumable items below seem too boring to you to sat
* [Baieido Tokusen Kobunboku](https://kikohincense.com/collections/baieido-incense/products/tokusen-kobunboku)
* [Inca Aromas White Breu](https://tarotarts.com/products/inca-aromas-all-natural-fair-trade-incense-white-breu-for-clarity-and-spirituality?variant=39838738251860)
* [Minorien Kyara Fu-In](https://kikohincense.com/collections/minorien-incense-kikoh/products/minorien-kyara-fu-in-incense)
* [Kunmeido Reiryokoh](https://kikohincense.com/products/kunmeido-reiryokoh-incense)
* [Shoyeido Horin Assortment](https://shoyeido.com/products/horin-incense-assortment-sampler)
* [Shoyeido Kohbai Pressed Incense](https://shoyeido.com/products/kohbai-red-plum-blossoms?variant=41714738921590)
* [Shoyeido Premium Incense Sampler](https://shoyeido.com/products/premium-incense-assortment-sampler)
* [Tennendo Cedar Waterwheel](https://www.japanincense.com/tn-0060.html)
* [Tennendo Hana no Byakudan](https://www.japanincense.com/tn-0051.html)

View File

@ -20,6 +20,8 @@ const figoptions = {
figcaption: true,
};
const timeZone = "America/Chicago";
export default async function (eleventyConfig) {
// Helper Functions
const multiReplace = (text, replacementTable) => {
@ -30,6 +32,25 @@ export default async function (eleventyConfig) {
return newText;
};
eleventyConfig.addDateParsing((dateValue) => {
let localDate;
if (dateValue instanceof Date) {
// and YAML
localDate = DateTime.fromJSDate(dateValue, { zone: "utc" }).setZone(
timeZone,
{ keepLocalTime: true },
);
} else if (typeof dateValue === "string") {
localDate = DateTime.fromISO(dateValue, { zone: timeZone });
}
if (localDate?.isValid === false) {
throw new Error(
`Invalid \`date\` value (${dateValue}) is invalid for ${this.page.inputPath}: ${localDate.invalidReason}`,
);
}
return localDate;
});
// Collections
eleventyConfig.addCollection("galleryImages", (collection) => {
const galleries = collection.getAll()[0].data.galleries;
@ -84,7 +105,6 @@ export default async function (eleventyConfig) {
});
eleventyConfig.addFilter("htmlDateString", (dateObj) => {
// dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd");
});

View File

@ -29,7 +29,7 @@
},
"homepage": "https://upchur.ch/gitea/n_u/nathanupchurch.com",
"devDependencies": {
"@11ty/eleventy": "3.0.0-alpha.13",
"@11ty/eleventy": "^3.1.2",
"@11ty/eleventy-img": "5.0.0-beta.10",
"@11ty/eleventy-navigation": "^0.3.5",
"@11ty/eleventy-plugin-bundle": "^1.0.4",