Compare commits
11 Commits
c28f4fdb77
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 968c5045c0 | |||
| ddf9bb79e2 | |||
| 6acc56e87c | |||
| 894939a55f | |||
| 05f3c171a6 | |||
| 55b52a41f9 | |||
| 2aca078dac | |||
| 91be5213ce | |||
| 677bf18e5b | |||
| 9938f0f8ff | |||
| 36d0305af1 |
@@ -304,6 +304,13 @@ export default {
|
|||||||
url: "https://www.neatorama.com/",
|
url: "https://www.neatorama.com/",
|
||||||
description: "Yep, Neatorama's still around!",
|
description: "Yep, Neatorama's still around!",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Public Domain Review",
|
||||||
|
feedUrl: "https://publicdomainreview.org/rss.xml",
|
||||||
|
url: "https://publicdomainreview.org",
|
||||||
|
description:
|
||||||
|
"The Public Domain Review is an online journal and not-for-profit project dedicated to the exploration of curious and compelling works from the history of art, literature, and ideas.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "The Pudding",
|
title: "The Pudding",
|
||||||
feedUrl: "https://pudding.cool/rss.xml",
|
feedUrl: "https://pudding.cool/rss.xml",
|
||||||
@@ -501,6 +508,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"Started in 1997 by Floor64 founder Mike Masnick and then growing into a group blogging effort, the Techdirt blog relies on a proven economic framework to analyze and offer insight into news stories about changes in government policy, technology and legal issues that affect companies’ ability to innovate and grow.",
|
"Started in 1997 by Floor64 founder Mike Masnick and then growing into a group blogging effort, the Techdirt blog relies on a proven economic framework to analyze and offer insight into news stories about changes in government policy, technology and legal issues that affect companies’ ability to innovate and grow.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "The Canary",
|
||||||
|
feedUrl: "https://www.thecanary.co/feed/",
|
||||||
|
url: "https://www.thecanary.co/",
|
||||||
|
description:
|
||||||
|
"The Canary is a anti-oppression, decolonised, and recolonised radical media outlet that publishes the truth without fear or favour. We publish stories that matter to ordinary people across the UK, whether the corporate and state media like it or not.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Usermag",
|
title: "Usermag",
|
||||||
feedUrl: "https://www.usermag.co/feed",
|
feedUrl: "https://www.usermag.co/feed",
|
||||||
@@ -593,6 +607,14 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"Writing on wet shaving, politics, whole food plant based diets, and more.",
|
"Writing on wet shaving, politics, whole food plant based diets, and more.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "lemon ice cream",
|
||||||
|
feedUrl:
|
||||||
|
"https://soundsoflemonicecream.blogspot.com/feeds/posts/default?alt=rss",
|
||||||
|
url: "https://soundsoflemonicecream.blogspot.com/",
|
||||||
|
description:
|
||||||
|
"annabelle kathleen marcile akers - aka lemon ice cream.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "MediaActivist",
|
title: "MediaActivist",
|
||||||
feedUrl: "https://www.mediaactivist.com/rss/",
|
feedUrl: "https://www.mediaactivist.com/rss/",
|
||||||
|
|||||||
@@ -1,4 +1,89 @@
|
|||||||
export default [
|
export default [
|
||||||
|
{
|
||||||
|
title: "Wild Berry Fizzy Pop Powder",
|
||||||
|
description:
|
||||||
|
"Recording my experience burning Wild Berry’s Fizzy Pop incense powder.",
|
||||||
|
synopsis:
|
||||||
|
"Recording my experience burning Wild Berry’s Fizzy Pop incense powder.",
|
||||||
|
url: "/img/gallery/wild-berry-fizzy-pop/",
|
||||||
|
date: new Date("May 28, 2026"),
|
||||||
|
galleryImage: "wild-berry-fizzy-pop-powder-8.webp",
|
||||||
|
galleryImageAlt: "",
|
||||||
|
pictures: [
|
||||||
|
{
|
||||||
|
title: "Preparing the censer",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-1.webp",
|
||||||
|
altText:
|
||||||
|
"A brass incense censer with a tool holder and stencil next to a jar of the incense powder.",
|
||||||
|
thumbAltText:
|
||||||
|
"A brass incense censer with a tool holder and stencil next to a jar of the incense powder.",
|
||||||
|
caption: "I feel guilty for sullying this censer.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Electric blue",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-8.webp",
|
||||||
|
altText:
|
||||||
|
"A brass incense spoon scooping bright blue powder from the top of a jar.",
|
||||||
|
thumbAltText:
|
||||||
|
"A brass incense spoon scooping bright blue powder from the top of a jar.",
|
||||||
|
caption: "Just look at the color of this stuff!",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Adding powder",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-2.webp",
|
||||||
|
altText:
|
||||||
|
"Putting the electric blue powder atop the brass stencil with a tiny incense spoon.",
|
||||||
|
thumbAltText:
|
||||||
|
"Putting the electric blue powder atop the brass stencil with a tiny incense spoon.",
|
||||||
|
caption: "No turning back now.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Adding more powder",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-3.webp",
|
||||||
|
altText:
|
||||||
|
"Putting more electric blue powder atop the brass stencil with a tiny incense spoon.",
|
||||||
|
thumbAltText:
|
||||||
|
"Putting more electric blue powder atop the brass stencil with a tiny incense spoon.",
|
||||||
|
caption: "Fully committing.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Stencil loaded",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-4.webp",
|
||||||
|
altText:
|
||||||
|
"The grooves of the brass stencil are full of blue incense powder, revealing the shape of an auspicious cloud.",
|
||||||
|
thumbAltText:
|
||||||
|
"The grooves of the brass stencil are full of blue incense powder, revealing the shape of an auspicious cloud.",
|
||||||
|
caption: "That color is wild.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Time to get lit",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-5.webp",
|
||||||
|
altText:
|
||||||
|
"A plasma lighter hovers ominously over the tail of a trail of blue incense powder in the shape of an auspicious cloud, atop a flat layer of ash in a brass censer.",
|
||||||
|
thumbAltText:
|
||||||
|
"A plasma lighter hovers ominously over the tail of a trail of blue incense powder in the shape of an auspicious cloud, atop a flat layer of ash in a brass censer.",
|
||||||
|
caption: "Here we go.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Time to get lit",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-6.webp",
|
||||||
|
altText:
|
||||||
|
"A long, angry-looking ember travels down the trail of blue incense powder.",
|
||||||
|
thumbAltText:
|
||||||
|
"A long, angry-looking ember travels down the trail of blue incense powder.",
|
||||||
|
caption: "What a wicked looking ember.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Finally over",
|
||||||
|
filename: "wild-berry-fizzy-pop-powder-7.webp",
|
||||||
|
altText:
|
||||||
|
"A long, angry-looking ember lights the final stretch of the incense seal, leaving a trail of very dark black ash.",
|
||||||
|
thumbAltText:
|
||||||
|
"A long, angry-looking ember lights the final stretch of the incense seal, leaving a trail of very dark black ash.",
|
||||||
|
caption: "At last.",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Cooking",
|
title: "Cooking",
|
||||||
description: "Some stuff I've made in the kitchen.",
|
description: "Some stuff I've made in the kitchen.",
|
||||||
|
|||||||
51
_includes/articleAuthor.njk
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<div class="author">
|
||||||
|
{% if author %}
|
||||||
|
{% if author.profilePic %}
|
||||||
|
{% if author.url %}
|
||||||
|
<a href="{{ author.url }}">
|
||||||
|
{% endif %}
|
||||||
|
<img class="profilePic" src="{{ author.profilePic }}">
|
||||||
|
{% if author.url %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<p>
|
||||||
|
{% if author.url %}
|
||||||
|
<a href="{{ author.url }}">
|
||||||
|
{% endif %}
|
||||||
|
{% if author.name %}
|
||||||
|
<span class="authorName">{{ author.name }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if author.url %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if author.bio %}
|
||||||
|
<br>{{ author.bio }}
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% else %}
|
||||||
|
{% if metadata.author.profilePic %}
|
||||||
|
{% if metadata.author.url %}
|
||||||
|
<a href="{{ metadata.author.url }}">
|
||||||
|
{% endif %}
|
||||||
|
<img class="profilePic" src="{{ metadata.author.profilePic }}">
|
||||||
|
{% if metadata.author.url %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<p>
|
||||||
|
{% if metadata.author.url %}
|
||||||
|
<a href="{{ metadata.author.url }}">
|
||||||
|
{% endif %}
|
||||||
|
{% if metadata.author.name %}
|
||||||
|
<span class="authorName">{{ metadata.author.name }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if metadata.author.url %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if metadata.author.bio %}
|
||||||
|
<br>{{ metadata.author.bio }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
@@ -1,22 +1,25 @@
|
|||||||
<footer>
|
<footer>
|
||||||
<p>{% if metadata.copyrightNotice %}<span class="copyright-notice">{{ metadata.copyrightNotice }}</span>{% endif %}
|
<div class="footerContainer">
|
||||||
|
<p>
|
||||||
{% if metadata.webrings %}<br>
|
{% if metadata.copyrightNotice %}
|
||||||
{% for webring in metadata.webrings %}
|
<span class="copyright-notice">{{ metadata.copyrightNotice }}</span>
|
||||||
|
{% endif %}
|
||||||
|
<br>Made by humans, not AI.
|
||||||
|
<div class="webringsContainer">
|
||||||
|
{% if metadata.webrings %}{% for webring in metadata.webrings %}
|
||||||
<span class="webring">
|
<span class="webring">
|
||||||
{% if webring.previousURL %}<a href="{{ webring.previousURL }}">←</a>{% endif %}
|
{% if webring.previousURL %}<a href="{{ webring.previousURL }}">←</a>{% endif %}
|
||||||
{% if webring.ringURL %}<a href="{{ webring.ringURL }}">{{ webring.name }}</a>{% endif %}
|
{% if webring.ringURL %}<a href="{{ webring.ringURL }}">{{ webring.name }}</a>{% endif %}
|
||||||
{% if webring.nextURL %}<a href="{{ webring.nextURL }}">→</a>{% endif %}
|
{% if webring.nextURL %}<a href="{{ webring.nextURL }}">→</a>{% endif %}
|
||||||
</span>
|
</span><br>
|
||||||
{% endfor %}
|
{% endfor %}{% endif %}
|
||||||
{% endif %}
|
</div>
|
||||||
<span class="webring"><a href="/search/">Search</a></span>
|
<div class="linksContainer">
|
||||||
<span class="webring"><a href="/sitemap/">Sitemap</a></span>
|
{% if metadata.footerLinks %}{% for link in metadata.footerLinks %}
|
||||||
|
<a {% if link.onClick %} onCLick="{{ link.onClick }}"{% endif %} href="{{ link.linkURL }}">{{ link.linkDisplay }}</a>
|
||||||
|
{% endfor %}{% endif %}
|
||||||
|
</div>
|
||||||
</p>
|
</p>
|
||||||
<div id="buttonsAndStuffContainer">
|
|
||||||
<a href="https://notbyai.fyi/">
|
|
||||||
<img src="/img/written-by-human-not-by-ai-white.svg" alt="Written by humans, not by AI.">
|
|
||||||
</a>
|
|
||||||
{% include "settings/siteSettings.njk" %}
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
{% include "settings/siteSettings.njk" %}
|
||||||
|
|||||||
@@ -1,12 +1,4 @@
|
|||||||
<a href="#skip" class="visually-hidden">Skip to main content</a>
|
<a href="#skip" class="visually-hidden">Skip to main content</a>
|
||||||
<header>
|
<header>
|
||||||
<a
|
|
||||||
href="/"
|
|
||||||
class="home-link">
|
|
||||||
<img
|
|
||||||
class="logo"
|
|
||||||
src="{% if metadata.holidayLogo %}{{ metadata.holidayLogo }}{% else %}{{ metadata.logo }}{% endif %}"
|
|
||||||
alt="{{ metadata.title }}">
|
|
||||||
</a>
|
|
||||||
{% if not hideNav %}{% include "nav.njk" %}{% endif %}
|
{% if not hideNav %}{% include "nav.njk" %}{% endif %}
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -13,18 +13,9 @@
|
|||||||
{% if tags and tags.includes('galleryImage') %}
|
{% if tags and tags.includes('galleryImage') %}
|
||||||
<link rel="stylesheet" type="text/css" href="/css/gallery-images.css" />
|
<link rel="stylesheet" type="text/css" href="/css/gallery-images.css" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if tags and tags.includes('metadata') %}
|
|
||||||
<link rel="stylesheet" type="text/css" href="/css/metadata.css" />
|
|
||||||
{% endif %}
|
|
||||||
{% if tags and tags.includes('navigator') %}
|
{% if tags and tags.includes('navigator') %}
|
||||||
<link rel="stylesheet" type="text/css" href="/css/navigator.css" />
|
<link rel="stylesheet" type="text/css" href="/css/navigator.css" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if tags and tags.includes('profilePic') %}
|
|
||||||
<link rel="stylesheet" type="text/css" href="/css/profile-pic.css" />
|
|
||||||
{% endif %}
|
|
||||||
{% if tags and tags.includes('postList') %}
|
|
||||||
<link rel="stylesheet" type="text/css" href="/css/post-list.css" />
|
|
||||||
{% endif %}
|
|
||||||
{% if tags and tags.includes('tagList') %}
|
{% if tags and tags.includes('tagList') %}
|
||||||
<link rel="stylesheet" type="text/css" href="/css/tags.css" />
|
<link rel="stylesheet" type="text/css" href="/css/tags.css" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -86,8 +77,8 @@
|
|||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</main>
|
</main>
|
||||||
{% include "birb.njk" %}
|
|
||||||
{% include "footer.njk" %}
|
{% include "footer.njk" %}
|
||||||
|
{% include "birb.njk" %}
|
||||||
{% include "weather.njk" %}
|
{% include "weather.njk" %}
|
||||||
{% include "wooMode.njk" %}
|
{% include "wooMode.njk" %}
|
||||||
{% include "settings/settingsConfig.njk" %}
|
{% include "settings/settingsConfig.njk" %}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ layout: layouts/linksPage.njk
|
|||||||
<div class="socialLinks">
|
<div class="socialLinks">
|
||||||
{% for link in metadata.socialLinks %}
|
{% for link in metadata.socialLinks %}
|
||||||
<a class="link-button u-url" {% if link.customAttribute %} {{ link.customAttribute | safe }} {% endif %} href="{{ link.linkURL }}">
|
<a class="link-button u-url" {% if link.customAttribute %} {{ link.customAttribute | safe }} {% endif %} href="{{ link.linkURL }}">
|
||||||
<button type="button"><img src="{{ link.iconURL }}" />{{ link.linkDisplay }}</button>
|
<button type="button">{{ link.iconSVG | safe }}{{ link.linkDisplay }}</button>
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,44 +2,39 @@
|
|||||||
layout: layouts/base.njk
|
layout: layouts/base.njk
|
||||||
---
|
---
|
||||||
<article class="post" data-pagefind-body>
|
<article class="post" data-pagefind-body>
|
||||||
<h1>{{ title | markdownify | safe}}</h1>
|
<div class="hero-container">
|
||||||
{% include "mastodonComments.njk" %}
|
<div class="hero">
|
||||||
{% if not hideMetadata %}
|
<p class="post-taglist">
|
||||||
<div class="post-metadata">
|
|
||||||
{% if author %}
|
|
||||||
{% if author.profilePic %}
|
|
||||||
<img class="profilePic" src="{{ author.profilePic }}">
|
|
||||||
{% endif %}
|
|
||||||
<div class="post-metadata-copy">
|
|
||||||
<p>{% if author.url %}<a href="{{ author.url }}">{% endif %}
|
|
||||||
{% if author.name %}By {{ author.name }}{% endif %}{% if author.url %}</a> • {% endif %}<time datetime="{{ page.date | htmlDateString }}">{{ page.date | niceDate }}</time> • {{ content | emojiReadTime }}</p>
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
{% if metadata.author.profilePic %}
|
|
||||||
<img class="profilePic" src="{{ metadata.author.profilePic }}">
|
|
||||||
{% endif %}
|
|
||||||
<div class="post-metadata-copy">
|
|
||||||
<p>{% if metadata.author.url %}<a href="{{ metadata.author.url }}">{% endif %}
|
|
||||||
{% if metadata.author.name %}By {{ metadata.author.name }}{% endif %}{% if metadata.author.url %}</a> • {% endif %}<time datetime="{{ page.date | htmlDateString }}">{{ page.date | niceDate }}</time>{% if tags and not tags.includes('quiz') %} • {{ content | emojiReadTime }}{% endif %}</p>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
{%- for tag in tags | filterTagList %}
|
{%- for tag in tags | filterTagList %}
|
||||||
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
|
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
|
||||||
<li>
|
<a href="{{ tagUrl }}">#{{ tag }} </a>
|
||||||
<a
|
|
||||||
href="{{ tagUrl }}"
|
|
||||||
class="post-tag">
|
|
||||||
{{ tag }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
</ul>
|
</p>
|
||||||
|
<h1>{{ title | markdownify | safe}}</h1>
|
||||||
|
{% if synopsis %}
|
||||||
|
<p class="post-synopsis">
|
||||||
|
{{ synopsis | markdownify | safe}}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if tags and tags.includes('quiz') %}
|
||||||
|
<p class="post-synopsis">
|
||||||
|
{{ content | markdownify | safe}}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if not tags.includes('quiz') %}
|
||||||
|
{% if imageURL %}
|
||||||
|
<a href="{{ imageURL }}"><img class="post-image" src="{{ imageURL }}" alt="{{ imageAlt }}"></a>
|
||||||
|
{% endif %}
|
||||||
|
<p class="post-time-author">
|
||||||
|
<time datetime="{{ page.date | htmlDateString }}">{{ page.date | niceDate }}</time><br>
|
||||||
|
By <a href="{% if author %}{{ author.url }}{% else %}{{ metadata.author.url }}{% endif %}">{% if author %}{{ author.name }}{% else %}{{ metadata.author.name }}{% endif %}</a></p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% if tags and not tags.includes('quiz') %}{{ content | safe }}{% endif %}
|
||||||
{{ content | safe }}
|
|
||||||
</article>
|
</article>
|
||||||
|
{% if tags and not tags.includes('quiz') %}
|
||||||
|
{% include "articleAuthor.njk" %}
|
||||||
|
{% include "mastodonComments.njk" %}
|
||||||
|
{% endif %}
|
||||||
{% include "issoCommenting.njk" %}
|
{% include "issoCommenting.njk" %}
|
||||||
|
|||||||
@@ -3,6 +3,12 @@ layout: layouts/post.njk
|
|||||||
structuredData: none
|
structuredData: none
|
||||||
---
|
---
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
|
{% if imageURL %}
|
||||||
|
<a href="{{ imageURL }}"><img class="post-image" src="{{ imageURL }}" alt="{{ imageAlt }}"></a>
|
||||||
|
{% endif %}
|
||||||
|
<p class="post-time-author">
|
||||||
|
<time datetime="{{ page.date | htmlDateString }}">{{ page.date | niceDate }}</time><br>
|
||||||
|
By <a href="{% if author %}{{ author.url }}{% else %}{{ metadata.author.url }}{% endif %}">{% if author %}{{ author.name }}{% else %}{{ metadata.author.name }}{% endif %}</a></p>
|
||||||
<section class="quiz">
|
<section class="quiz">
|
||||||
<form onsubmit="handleQuizSubmit(); return false">
|
<form onsubmit="handleQuizSubmit(); return false">
|
||||||
{% for question in questions %}
|
{% for question in questions %}
|
||||||
|
|||||||
@@ -2,7 +2,15 @@
|
|||||||
<div class="continue-discussion">
|
<div class="continue-discussion">
|
||||||
<a class="link-button" href="https://{{ metadata.mastodonHost }}/@{{ metadata.mastodonUser }}/{{ mastodon_id }}">
|
<a class="link-button" href="https://{{ metadata.mastodonHost }}/@{{ metadata.mastodonUser }}/{{ mastodon_id }}">
|
||||||
<button type="button">
|
<button type="button">
|
||||||
<img src="/img/mastodon.svg">
|
<svg
|
||||||
|
viewBox="0 0 1536 1792"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path
|
||||||
|
d="M1503.302 1111.386c-22.579 116.159-202.224 243.284-408.55 267.921-107.588 12.837-213.519 24.636-326.476 19.455-184.728-8.463-330.494-44.092-330.494-44.092 0 17.983 1.11 35.106 3.328 51.12 24.015 182.308 180.772 193.228 329.261 198.32 149.872 5.127 283.321-36.951 283.321-36.951l6.157 135.491s-104.827 56.293-291.574 66.646c-102.974 5.66-230.836-2.59-379.759-42.009C65.529 1641.797 10.219 1297.502 1.482 948.17-1.11 844.449.485 746.646.49 664.847.5 307.631 234.539 202.924 234.539 202.924c118.011-54.199 320.512-76.99 531.033-78.71h5.173c210.52 1.721 413.152 24.511 531.157 78.71 0 0 234.04 104.706 234.04 461.923 0 0 2.935 263.556-32.64 446.539zm-243.429-418.827c0-88.4-21.711-159.35-67.71-210.618-46.63-51.972-107.687-78.613-183.47-78.613-87.699 0-154.104 33.703-198.002 101.121L768 576l-42.683-71.55c-43.907-67.42-110.313-101.124-198.003-101.124-75.792 0-136.849 26.642-183.47 78.614-45.21 51.973-67.718 122.219-67.718 210.618v432.53h171.359V705.273c0-88.498 37.234-133.415 111.713-133.415 82.35 0 123.63 53.283 123.63 158.646v229.788h170.35V730.505c0-105.363 41.272-158.646 123.62-158.646 74.478 0 111.715 44.917 111.715 133.415v419.816h171.358V692.56z"
|
||||||
|
id="path1"
|
||||||
|
style="fill-opacity:1" />
|
||||||
|
</svg>
|
||||||
|
|
||||||
Discuss on Mastodon »
|
Discuss on Mastodon »
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
<nav>
|
<nav>
|
||||||
|
<div class="nav-elements-grid-container">
|
||||||
|
<div class="nav-elements-container">
|
||||||
<h2 class="visually-hidden">Top level navigation menu</h2>
|
<h2 class="visually-hidden">Top level navigation menu</h2>
|
||||||
|
<a
|
||||||
|
href="/"
|
||||||
|
class="home-link">
|
||||||
|
<svg class="logo" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 8.467 8.467"><path d="M23.248 20.452v6.444c0 1.12.902 2.023 2.023 2.023h4.421c1.12 0 2.023-.902 2.023-2.023v-4.421c0-1.12-.902-2.023-2.023-2.023h-6.444m1.516 1.924q.102.007.255.013a8 8 0 0 0 .848-.013l2.39 3.18V23.32q0-.313-.039-.478a.36.36 0 0 0-.165-.243q-.128-.076-.402-.095v-.128a18 18 0 0 0 .676.02 8 8 0 0 0 .567-.02v.128a.65.65 0 0 0-.312.095.36.36 0 0 0-.147.23 2.3 2.3 0 0 0-.032.44v3.638a1.712 1.712 0 0 0-.268 0l-2.734-3.715v2.753q0 .306.039.478.037.165.166.242.134.07.401.096v.127a3 3 0 0 0-.312-.013 11 11 0 0 0-.676 0q-.153 0-.255.013v-.127a.7.7 0 0 0 .312-.096.34.34 0 0 0 .141-.23q.038-.159.038-.44v-2.943q0-.236-.038-.344a.21.21 0 0 0-.14-.153.9.9 0 0 0-.313-.051zm5.092 3.671a.5.5 0 0 1 .357.128q.14.127.14.337t-.14.338a.5.5 0 0 1-.357.127.52.52 0 0 1-.363-.127.45.45 0 0 1-.134-.338q0-.21.134-.337a.52.52 0 0 1 .363-.128" style="fill-opacity:1;" transform="translate(-23.248 -20.452)"/></svg>
|
||||||
|
</a>
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
{%- for entry in collections.all | eleventyNavigation %}
|
{%- for entry in collections.all | eleventyNavigation %}
|
||||||
<li class="nav-item" {% if entry.url == page.url %} aria-current="page" data-currentpage="true"{% endif %}><a href="{{ entry.url }}">{{ entry.title }}</a></li>
|
<li class="nav-item" {% if entry.url == page.url %} aria-current="page" data-currentpage="true"{% endif %}><a href="{{ entry.url }}">{{ entry.title }}</a></li>
|
||||||
@@ -7,4 +14,6 @@
|
|||||||
<li class="subscribe nav-item"><a href="/feed/feed.xml">{% include "rssLogo.njk" %}Feed</a>
|
<li class="subscribe nav-item"><a href="/feed/feed.xml">{% include "rssLogo.njk" %}Feed</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{% for link in metadata.navigatorLinks %}
|
{% for link in metadata.navigatorLinks %}
|
||||||
<div class="navigatorItem">
|
<div class="navigatorItem">
|
||||||
<a href="{{ link.linkURL }}">
|
<a href="{{ link.linkURL }}">
|
||||||
<img alt="" src="{{ link.iconURL }}">
|
{{ link.iconSVG | safe }}
|
||||||
<p>{{ link.linkDisplay }}</p>
|
<p>{{ link.linkDisplay }}</p>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
{% set numPages = pagination.pages | length %}
|
{% set numPages = pagination.pages | length %}
|
||||||
{% if pagination.pageNumber > 0 %}
|
<span class=buttonContainer>
|
||||||
<a href="/{{ paginationRootDir }}/{% if pagination.pageNumber > 1%}page-{{ pagination.pageNumber }}/{% endif %}">
|
{% if pagination.pageNumber > 0 %}
|
||||||
|
<a href="/{{ paginationRootDir }}/{% if pagination.pageNumber > 1%}page-{{ pagination.pageNumber }}/{% endif %}">
|
||||||
<button type="button">← Previous</button>
|
<button type="button">← Previous</button>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if pagination.pageNumber < numPages - 1 %}
|
{% if pagination.pageNumber < numPages - 1 %}
|
||||||
<a href="/{{ paginationRootDir }}/page-{{ pagination.pageNumber + 2 }}/">
|
<a href="/{{ paginationRootDir }}/page-{{ pagination.pageNumber + 2 }}/">
|
||||||
<button type="button">{% if pagination.pageNumber == 0%}More{% else %}Next{% endif %} →</button>
|
<button type="button">{% if pagination.pageNumber == 0%}Next{% else %}Next{% endif %} →</button>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
|||||||
@@ -1,17 +1,8 @@
|
|||||||
<section class="postlist{% if postListTypeMicroblog %} microblogList{% endif %}">
|
<section class="postlist{% if postListTypeMicroblog %} microblogList{% endif %}">
|
||||||
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
|
{% if postlistHeaderText %}<h2 class="postlist-header">{{ postlistHeaderText }}</h2>{% endif %}
|
||||||
<div class="postlist-item-container">
|
<div class="postlist-item-container">
|
||||||
{% for post in postslist %}
|
{% for post in postslist %}
|
||||||
<article class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
|
<article class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
|
||||||
|
|
||||||
{% if not postListTypeMicroblog %}
|
|
||||||
<a href="{{ post.url }}" class="postlist-link">
|
|
||||||
<div class="post-image-container">
|
|
||||||
<img class="post-image" {% if post.data.imageURL %} src="{{ post.data.imageURL }}" alt="{{ post.data.imageAlt }}" {% else %} src="{{ metadata.defaultPostImageURL }}" alt="{{ metadata.defaultPostImageAlt }}"{% endif %}>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="post-copy">
|
<div class="post-copy">
|
||||||
{% if not postListTypeMicroblog %}
|
{% if not postListTypeMicroblog %}
|
||||||
<a href="{{ post.url }}" class="postlist-link">
|
<a href="{{ post.url }}" class="postlist-link">
|
||||||
@@ -23,6 +14,13 @@
|
|||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if post.data.synopsis %}
|
||||||
|
<p>{{ post.data.synopsis | markdownify | safe }}</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if not post.data.synopsis and post.data.description %}
|
||||||
|
<p>{{ post.data.description | markdownify | safe }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="post-metadata">
|
<div class="post-metadata">
|
||||||
<div class="post-metadata-copy">
|
<div class="post-metadata-copy">
|
||||||
<p>
|
<p>
|
||||||
@@ -32,30 +30,25 @@
|
|||||||
<a href="{{ post.data.author.url }}">
|
<a href="{{ post.data.author.url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.data.author.name %}
|
{% if post.data.author.name %}
|
||||||
By {{ post.data.author.name }}
|
{{ post.data.author.name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.data.author.url %}</a> •
|
{% if post.data.author.url %}</a> •
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}<a href="{{ metadata.author.url }}">By {{ metadata.author.name }}</a> •
|
{% else %}<a href="{{ metadata.author.url }}">{{ metadata.author.name }}</a> •
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
</div>
|
||||||
{%- for tag in post.data.tags | filterTagList %}
|
</div>
|
||||||
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
|
</div>
|
||||||
<li>
|
{% if not postListTypeMicroblog %}
|
||||||
<a
|
<a href="{{ post.url }}" class="postlist-link">
|
||||||
href="{{ tagUrl }}"
|
<div class="post-image-container">
|
||||||
class="post-tag">
|
<img class="post-image" {% if post.data.imageURL %} src="{{ post.data.imageURL }}" alt="{{ post.data.imageAlt }}" {% else %} src="{{ metadata.defaultPostImageURL }}" alt="{{ metadata.defaultPostImageAlt }}"{% endif %}>
|
||||||
{{ tag }}
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
{% endif %}
|
||||||
{%- endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</article>
|
</article>
|
||||||
<hr>
|
<hr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<div id="siteSettingsContainer">
|
<div id="siteSettingsContainer">
|
||||||
<button onclick="siteSettings.showModal();">Site Settings</button>
|
|
||||||
<dialog id="siteSettings">
|
<dialog id="siteSettings">
|
||||||
<h2>Site Settings</h2>
|
<h2>Site Settings</h2>
|
||||||
{% include "settings/controllers/birbController.njk" %}
|
{% include "settings/controllers/birbController.njk" %}
|
||||||
|
|||||||
@@ -18,17 +18,16 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if metadata.author.url %}
|
{% if metadata.author.url %}
|
||||||
</a><br />
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
• {{ status.date | niceDate }}<br />
|
||||||
</span>
|
</span>
|
||||||
|
{% if status.data.comment %}
|
||||||
{{ status.data.comment | markdownify | safe }}<br />
|
{{ status.data.comment | markdownify | safe }}<br />
|
||||||
|
{% endif %}
|
||||||
<span class="status-metadata">
|
|
||||||
{{ status.date | niceDate }}
|
|
||||||
</span>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/post.njk
|
layout: layouts/base.njk
|
||||||
title: How to Use Feeds
|
title: Nathan Upchurch | How to Use Feeds
|
||||||
structuredData: none
|
structuredData: none
|
||||||
hideMetadata: yep
|
|
||||||
---
|
---
|
||||||
<p><!-- a <p> just to stop the dropcap from happening --></p>
|
<article data-pagefind-body>
|
||||||
|
|
||||||
|
<h1>How to Use Feeds</h1>
|
||||||
|
|
||||||
Get all the latest content from your favorite creators with no algorithm, no spam, and no spying. This page is based on [Matt Webb](https://interconnected.org)'s *[About Feeds](https://aboutfeeds.com/)*.
|
Get all the latest content from your favorite creators with no algorithm, no spam, and no spying. This page is based on [Matt Webb](https://interconnected.org)'s *[About Feeds](https://aboutfeeds.com/)*.
|
||||||
|
|
||||||
@@ -66,3 +67,5 @@ It doesn't matter which you choose; newsreaders usually make it fairly easy to e
|
|||||||
|
|
||||||
|
|
||||||
[^1]: Please note that I haven't tested all of these options personally; your mileage may vary.
|
[^1]: Please note that I haven't tested all of these options personally; your mileage may vary.
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|||||||
@@ -10,16 +10,17 @@ eleventyNavigation:
|
|||||||
<p class="page-block nodropcap">I’m a prolific vegan home cook, classical trombonist, incense maker, a <abbr title="Free/Libre Open Source Software">FLOSS</abbr> enthusiast, designer, programmer, music producer, print lover, and human with too many interests and too little time.<br><br>
|
<p class="page-block nodropcap">I’m a prolific vegan home cook, classical trombonist, incense maker, a <abbr title="Free/Libre Open Source Software">FLOSS</abbr> enthusiast, designer, programmer, music producer, print lover, and human with too many interests and too little time.<br><br>
|
||||||
This is my little corner of the internet where I talk about whatever I like without worrying about maintaining a ‘personal brand’, or constraining my writing to topics which might help advance my career or establish me as a ‘thought leader’. I’m here to express myself and have fun writing about topics I enjoy.<br><br>
|
This is my little corner of the internet where I talk about whatever I like without worrying about maintaining a ‘personal brand’, or constraining my writing to topics which might help advance my career or establish me as a ‘thought leader’. I’m here to express myself and have fun writing about topics I enjoy.<br><br>
|
||||||
If you’d like to learn more about my professional accomplishments and work, I’ll link my professional website here when I get around to it.</p>
|
If you’d like to learn more about my professional accomplishments and work, I’ll link my professional website here when I get around to it.</p>
|
||||||
<a href="./colophon/">
|
<span class="buttonContainer">
|
||||||
<button type="button">Colophon »</button>
|
<a href="./colophon/">
|
||||||
</a>
|
<button type="button">Colophon</button>
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="../me/">
|
<a href="../me/">
|
||||||
<button type="button">Contact »</button>
|
<button type="button">Contact</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="./privacy/">
|
|
||||||
<button type="button">Privacy »</button>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
<a href="./privacy/">
|
||||||
|
<button type="button">Privacy</button>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ As I brought my laundry basket downstairs earlier today I checked the front porc
|
|||||||
The "eleven inch" sticks all come markedly short of eleven inches, and they each have some three-plus inches of bare bamboo stick. Some appear to be machine extruded while others show a coating gradient typical with powder-coated sticks. Strange. I start with a strawberry cone:
|
The "eleven inch" sticks all come markedly short of eleven inches, and they each have some three-plus inches of bare bamboo stick. Some appear to be machine extruded while others show a coating gradient typical with powder-coated sticks. Strange. I start with a strawberry cone:
|
||||||
|
|
||||||
## Strawberry (Cones)
|
## Strawberry (Cones)
|
||||||
I'm *sure* I've had these before. I have a feeling they may have been among the incense I picked up from a gas station I once frequented not only for [the drinks with the wee glass lizards on them](https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Feaqi1o3yv2441.jpg)[^3], but for their gargantuan incense display. The cones have surprisingly little fragrance before they are burned. Upon lighting, they produce a large amount of smoke. There is a sweet, strikingly artificial, strawberry-like fragrance in the burn. It's reminds me of a strawberry juice-box or fruit snack that's 99% apple juice with a hint of strawberry essence. But mostly, I smell the charcoal and some accelerant. The smell is nostalgic, but not good by any stretch. My throat is already feeling slightly irritated; an inauspicious start. Moving on swiftly.
|
I'm *sure* I've had these before. I have a feeling they may have been among the incense I picked up from a gas station I once frequented not only for [the drinks with the wee glass lizards on them](https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Feaqi1o3yv2441.jpg)[^3], but for their gargantuan incense display. The cones have surprisingly little fragrance before they are burned. Upon lighting, they produce a large amount of smoke. There is a sweet, strikingly artificial, strawberry-like fragrance in the burn. It reminds me of a strawberry juice-box or fruit snack that's 99% apple juice with a hint of strawberry essence. But mostly, I smell the charcoal and some accelerant. The smell is nostalgic, but not good by any stretch. My throat is already feeling slightly irritated; an inauspicious start. Moving on swiftly.
|
||||||
|
|
||||||
## Coconut
|
## Coconut
|
||||||
These have a very strong fragrance on the stick. It's sweet and acidic, almost more like a piña colada than coconut. It smells quite delicious. This fragrance is also inducing some nostalgia for me. On lighting, an aggressively sooty flame leaps to cover the first centimeter or so of the stick; oil appears to emerge from the stick directly beneath the flame. The fragrance upon extinguishing the flame is shocking. It's *foul*: vaporized wax, burning plastic, and some odd fishy note with a hint of artificial coconut. It's the kind of smell that makes you feel that your lifespan is being reduced. I put the stick out in short order.
|
These have a very strong fragrance on the stick. It's sweet and acidic, almost more like a piña colada than coconut. It smells quite delicious. This fragrance is also inducing some nostalgia for me. On lighting, an aggressively sooty flame leaps to cover the first centimeter or so of the stick; oil appears to emerge from the stick directly beneath the flame. The fragrance upon extinguishing the flame is shocking. It's *foul*: vaporized wax, burning plastic, and some odd fishy note with a hint of artificial coconut. It's the kind of smell that makes you feel that your lifespan is being reduced. I put the stick out in short order.
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
title: "One Last Chance for Wild Berry: Reviewing Fizzy Pop Incense Powder"
|
||||||
|
description: "If this isn't any good, I'm giving up on Wild Berry once and for all."
|
||||||
|
date: 2026-05-28
|
||||||
|
tags:
|
||||||
|
- Incense
|
||||||
|
- Incense Review
|
||||||
|
synopsis: "If this isn't any good, I'm giving up on Wild Berry once and for all."
|
||||||
|
imageURL: /img/gallery/wild-berry-fizzy-pop/wild-berry-fizzy-pop-powder-5.webp
|
||||||
|
imageAlt: "A plasma lighter hovers ominously over the tail of a trail of blue incense powder in the shape of an auspicious cloud, atop a flat layer of ash in a brass censer."
|
||||||
|
mastodon_id: "116653399110363374"
|
||||||
|
---
|
||||||
|
Some time ago, I [reviewed a variety](/blog/an-evening-with-americas-best-incense-wild-berry/) of Wild Berry incense sticks and cones. If you don't know how that went, here's an idea:
|
||||||
|
|
||||||
|
> It’s the kind of smell that makes you feel that your lifespan is being reduced… off-notes are tremendous… beginning to feel as though I’ve french-inhaled my way through a pack of menthol Newports.
|
||||||
|
|
||||||
|
I didn't think I'd wind up returning to the brand, but I figured I'd give them one last chance before I completely wrote it off. If you haunt [/r/incense](https://www.reddit.com/r/Incense/) as much I do, you'll know that *Fizzy Pop* is rated highly by Wild Berry fans. Since my last experience with Wild Berry's incense, I've felt that it may have been a bit of an oversight not to try *Fizzy Pop*. I was also curious about the company's incense powder offering. Not only is it unusual for a western incense brand to offer powder, but in my experience powders don't tend to contain all of the off-notes you might imagine to be supplied by bamboo sticks and binders. It's much easier to make a powder that doesn't stink to the heavens than it is a stick. With that thought, my mind was made up. I simply hadn't been fair to Wild Berry until I'd tried the powder variant of their fan favorite.
|
||||||
|
|
||||||
|
Ten Trumpland fun-bucks, plus shipping, will net you a jar containing 38 grams of shockingly blue incense powder—approximately twelve hours of burn time according to the side of the jar. I sure hope I like this stuff. The fragrance upon opening the jar is a lot of fun. It's strong, smelling distinctly like a concentrated lemon-lime soda syrup, or a fizzy lemon-lime candy. It's uncanny; a super bright, almost powdery, white-musk / laundry detergent note offers a real sensation of effervescence. There are going to be a lot of people who find the unburned fragrance of this stuff sickly, but I happen to love candy and don't mind smells in this category. I don't necessarily want my apartment fragranced of it, but it's fun to smell.
|
||||||
|
|
||||||
|
[](/img/gallery/wild-berry-fizzy-pop/wild-berry-fizzy-pop-powder-8.webp)
|
||||||
|
|
||||||
|
I must admit that it felt *wrong* loading up a stencil with this lightning-blue powder in my Chinese censer. The test-blends I use this thing to burn might not always be great, but they are made of real aromatic woods, resins, and other botanicals. The powder texture was pretty perfect, however, and it was easy enough to make a neat incense seal.
|
||||||
|
|
||||||
|
[](/img/gallery/wild-berry-fizzy-pop/wild-berry-fizzy-pop-powder-5.webp)
|
||||||
|
|
||||||
|
Upon lighting, a long, angry red ember took hold, quickly working its way down the electric blue trail and turning it into a spookily dark black ash. The fragrance that emerged immediately alerted me to the fact that this experiment was a grave mistake. While scrambling to get away without knocking over my camera, I scribbled onto an upside-down notepad:
|
||||||
|
|
||||||
|
> fishy , burning laundry-detergent. metallic. ~~Like~~ smelled like ~~in~~ the ashes of incense. <u>Diabolical</u>. maybe the faintest hint of sprite.
|
||||||
|
|
||||||
|
As I paced the living room, trying to come to terms with what I was experiencing, I realized that I was going to have to sit back down next to the burning incense to take more pictures. Behind the camera the fishy smoke followed me, flying straight at my face like I'd offended it. I covered my mouth with my shirt; it did little good. Even the ember looked like it had it in for me.
|
||||||
|
|
||||||
|
[.")](/img/gallery/wild-berry-fizzy-pop/wild-berry-fizzy-pop-powder-6.webp)
|
||||||
|
|
||||||
|
In the aftermath of this ordeal, It occurred to me that I may not have managed to write in sufficient detail to constitute a review. I thought about burning another trail to analyze the incense more closely, but I just can't bring myself to do it.
|
||||||
|
|
||||||
|
[](/img/wild-berry-fizzy-pop-powder/diabolical.webp)
|
||||||
|
|
||||||
|
But, really, what more can I say? In my struggle to record the many emotions and sensations I was experiencing, I don't know that I could do much better than "<u>Diabolical</u>" at the time, and I don't know that I can do better now. Yes, I think I'm done with Wild Berry for good at this point. After two, frankly, *harrowing* experiences with the brand, I don't even know that I can muster the courage to try the "Mystic Meadow" sample sticks they've sent me. Not to put too fine a point on it, but how a company can develop, approve, and sell an incense powder that smells so strikingly, aggressively, offensively bad is truly beyond me.
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
eleventyExcludeFromCollections: true
|
eleventyExcludeFromCollections: true
|
||||||
layout: layouts/base.njk
|
layout: layouts/base.njk
|
||||||
|
hideBlogTitleFromHeader: true
|
||||||
title: "The Stochastic Bletherist | The Personal Blog of Nathan Upchurch"
|
title: "The Stochastic Bletherist | The Personal Blog of Nathan Upchurch"
|
||||||
tags:
|
tags:
|
||||||
- metadata
|
- metadata
|
||||||
@@ -19,31 +20,28 @@ paginationRootDir: blog
|
|||||||
<h1>The Stochastic Bletherist</h1>
|
<h1>The Stochastic Bletherist</h1>
|
||||||
|
|
||||||
<p class="page-block nodropcap">
|
<p class="page-block nodropcap">
|
||||||
The personal blog of Nathan Upchurch, where he writes about everything from <a href="/tags/storytime">personal stories</a> to <a href="/tags/gnu-linux">tech</a>, <a href="/tags/vegan-cooking">food</a>, and <a href="/tags/incense">incense</a>.<br />
|
<em>The Stochastic Bletherist</em> is the personal blog of Nathan Upchurch, where he writes about whatever he fancies at the time. <a href="/feed/feed.xml">Subscribe</a> if you’re interested in musings on life, music, and technology, weird and wonderful incense reviews, the occasional bit of spicy discourse, or learning how to make things like vegan ranch dressing or incense sticks. There’s something for everyone here.
|
||||||
|
<span class="buttonContainer">
|
||||||
<a href="/tags/">
|
<a href="../blogroll/">
|
||||||
<button type="button">Topics »</button>
|
<button type="button">Blogroll</button>
|
||||||
</a>
|
</a>
|
||||||
<a href="../blogroll/">
|
<a href="/search/">
|
||||||
<button type="button">Blogroll »</button>
|
<button type="button">Search</button>
|
||||||
</a>
|
</a>
|
||||||
|
<a href="/tags/">
|
||||||
|
<button type="button">Topics</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>What’s New:</h2>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>The Stochastic Bletherist Blog</h1>
|
<h1>The Stochastic Bletherist</h1>
|
||||||
<p class="page-block nodropcap">
|
|
||||||
Writing about everything from <a href="/tags/storytime">personal stories</a> to <a href="/tags/gnu-linux">tech</a>, <a href="/tags/vegan-cooking">food</a>, and <a href="/tags/incense">incense</a>.<br />
|
|
||||||
|
|
||||||
<a href="/tags/">
|
<p class="page-block nodropcap">
|
||||||
<button type="button">Topics »</button>
|
<em>The Stochastic Bletherist</em> is the personal blog of Nathan Upchurch, where he writes about whatever he fancies at the time. <a href="/feed/feed.xml">Subscribe</a> if you’re interested in musings on life, music, and technology, weird and wonderful incense reviews, the occasional bit of spicy discourse, or learning how to make things like vegan ranch dressing or incense sticks. There’s something for everyone here.
|
||||||
</a>
|
|
||||||
<a href="../blogroll/">
|
|
||||||
<button type="button">Blogroll »</button>
|
|
||||||
</a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>More posts:</h2>
|
<h2 class="postlist-header">More posts:</h2>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
38
content/blog/the-trauma-of-employment.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
title: The Trauma of Employment
|
||||||
|
description: Power imbalances at work negatively impact human relationships and leave long-lasting scars. We can do better.
|
||||||
|
synopsis: Power imbalances at work negatively impact human relationships and leave long-lasting scars. We can do better.
|
||||||
|
date: 2026-06-30
|
||||||
|
tags:
|
||||||
|
- Life
|
||||||
|
- Work
|
||||||
|
imageURL: /img/trauma-of-employment/Venetian-Glass-Workers.webp
|
||||||
|
imageAlt: "Venetian Glass Workers by John Singer Sargent, oil on canvas. This backlit view of a shop in Venice is dark and atmospheric except for the brilliant strokes of light green and silvery white paint that describe the canes of glass as tradespeople prepare to cut them into bead-sized pieces, which will then be polished and strung into jewelry."
|
||||||
|
mastodon_id: "116842107464446750"
|
||||||
|
---
|
||||||
|
::: info
|
||||||
|
Content warning: sexual assault.
|
||||||
|
:::
|
||||||
|
|
||||||
|
Every year, I receive a glowing review from my employer, effusive, even. But each year, I dread the review. 'This time, it's going to be bad,' I think. 'I'm sure my boss was annoyed with me by the tone of their last teams message'. 'I can sense that she wants to replace me'. 'It's been a good run, but I'd better refresh my resume'. My thoughts run away from me and before I know it I'm experiencing a full-blown stress response in my body as I imagine myself with a bindle slung over my shoulder because I can't afford to pay rent. I'm aware that this is utterly irrational. My current boss is almost certainly the best I've ever had, and there are no real signs of trouble. This anxiety stems from something deeper.
|
||||||
|
|
||||||
|
My first 'professional' role was as a print broker and artworker. I was paid peanuts, but I loved it. It turns out that I was a total print nerd, and specifying, designing, planning, managing, and procuring print work was a bit of a dream job for me. It was a small office, and my boss kind of just let me do my thing and, beside the pay, treated me well. Over the years, I've come to learn that 'professional' jobs (or as I like to call them, 'short-pile-carpet jobs') where a person with ADHD can truly thrive are scarce as hen's teeth. The problem is rarely the work itself, but those charged with overseeing it.
|
||||||
|
|
||||||
|
Back in the nineteenth century, a Russian prince by the name of Pëtr Kropotkin was hard at work annoying capitalists and authoritarian communists alike with a deluge of pointed critiques. Kropotkin's thought was largely concerned with *power*, and how best to distribute and use it in order to prevent oppressive systems from repeating themselves, whether or not this occurs under a banner emblazoned with a hammer and sickle. Kropotkin also espoused the traditional human gift economy. Despite gift economies being humanity's default state, chugging along nicely for thousands of years, the idea is often subjected to the critique that human nature simply won't allow good behavior under this sort of arrangement. So prevalent was this idea that in 1888, Kropotkin replied with the essay "Are We Good Enough?" in which he wrote:
|
||||||
|
|
||||||
|
> Men are not good enough for Communism, but are they good enough for Capitalism? If all men were good-hearted, kind, and just, they would never exploit one another, although possessing the means of doing so. With such men the private ownership of capital would be no danger. The capitalist would hasten to share his profits with the workers, and the best-remunerated workers with those suffering from occasional causes. If men were provident they would not produce velvet and articles of luxury while food is wanted in cottages: they would not build palaces as long as there are slums.
|
||||||
|
>
|
||||||
|
> If men had a deeply developed feeling of equity they would not oppress other men. Politicians would not cheat their electors; Parliament would not be a chattering and cheating box, and Charles Warren’s policemen would refuse to bludgeon the Trafalgar Square talkers and listeners. And if men were gallant, self-respecting, and less egotistic, even a bad capitalist would not be a danger; the workers would have soon reduced him to the role of a simple comrade-manager. Even a King would not be dangerous, because the people would merely consider him as a fellow unable to do better work, and therefore entrusted with signing some stupid papers sent out to other cranks calling themselves Kings.
|
||||||
|
|
||||||
|
In this indictment of human nature, Kropotkin exposes the problem inherent to bosses: their human fallibility. In a sensible world, power would be better distributed; it would be impossible for one flawed human to accumulate sufficient power to ruin scores of lives. But today, despite our lip-service to democracy, millions of petty tyrants rule, unelected, over billions of others. They control minute aspects of the lives of the workers they employ with a sort of horrifying totalitarian control that books have been written about where it concerns similar behavior from nation states. I like my boss. She's pleasant, kind, intelligent, and has never done me wrong. But if she were a tyrant, or were to become one, there would be no recourse for me or my colleagues[^1], and the consequences could easily be life changing.
|
||||||
|
|
||||||
|
In my twenties, through a convoluted and tragic series of circumstances, I wound up working in hospitality. Mostly bartending at first, but I went into coffee later. People often don't realize how awful this industry is, especially in the U.S.A. The reality is that, no matter what you do, if your job involves short-pile-carpet and a laptop, your worst day at work almost certainly pales in comparison to the average day for a waiter, bartender, bar-back, busser, line-cook, or barista. The work itself is grueling, the pay is usually minimal, health insurance is a rarity, customers treat you like a servant with shit on your face, and employers treat you like a cheap machine—with shit on its face. To this day, I tip profusely. In hospitality, people are fired at a moment's notice. Bosses are routinely insane. Screaming at workers in front of colleagues and customers, wage theft, threatening to fire workers, and sexual harassment and assault are—and I need you to take this literally—completely normal. There's a [Mario Batali](https://www.nytimes.com/2022/08/24/dining/mario-batali-sexual-misconduct-lawsuits-settles.html) or a [René Redzepi](https://www.nytimes.com/2026/03/07/dining/rene-redzepi-noma-abuse-allegations.html) in most kitchens.[^2] I've worked for an operations manager known for grabbing the asses of the cocktail waitresses they employed. I worked for a man who—I kid you not—lived in the basement-office of the coffee shop he owned and would watch you on camera from his bed. He would scream at you over the phone if you didn't count the cash in full view of the camera at all times, and would also scream at you in front of customers if you didn't make espresso the way he did (which was wrong). I've personally been sexually assaulted by customers at work, multiple times. I've been fired. I've had customers threaten to have me fired because I refused to give them free product.
|
||||||
|
|
||||||
|
In this line of work, people see you as something less than human. Your livelihood is worth less than their convenience. That stays with you. Mistreatment by your peers is unpleasant, but mistreatment by people who have the power to put an immediate stop to your ability to feed, clothe, and house yourself is an existential threat. When I feel such intense anxiety related to my employment today, years later, and despite working almost entirely from home, glowing performance reviews, meaningful pay increases every year, and a kind, reasonable boss, I realize that my time in hospitality hurt me in ways that are hard to heal.
|
||||||
|
|
||||||
|
When you've experienced employment without that short-pile-carpet pretense and veneer of respectability, any sense of discomfort, dissatisfaction, or irritation from your employer feels dangerous. Because it is. No matter how good and reasonable they are, they are also fallible, and their bad mood could destroy your life. I've also been a boss, in charge of a couple dozen or so baristas, cooks, and store managers. I once walked into a café, and noticing that something was off, asked one of the workers to fix it in what I thought was a neutral 'by the way' sort of tone. I was later told that she burst into tears when I left. At the time I was hyper-aware that anything I said could be interpreted (or felt) as a threat, so I intentionally tried to ensure that I was as friendly and calm as possible. Still, the nature of the arrangement, the unjust power imbalance, made it impossible to take my words at face value. I was a threat to her livelihood, and nothing I could say or do could ever change that. They say that it's lonely being in leadership roles. It is. Workers are becoming friends and building genuine rapport, while you're always the 800-pound gorilla in the room, and you're kidding yourself if you think that you're an exception.
|
||||||
|
|
||||||
|
Some six years into my current role, I still haven't decorated my office downtown. There's not a single item in a drawer anywhere that I'll need to collect when I eventually move on. I think escaping hospitality—even though I was head of the chain's Chicago operations at the time—felt too good to be true. It seems that I'm still afraid. This trauma is, I think, something that often goes neglected at the ballot box. It's so normalized that it seems a natural part of life. So while politicians are busy riling us all up over immigration and culture-war nonsense, we collectively forget that our employers exercise *infinitely* more power over us than any politician. We need to start demanding strong worker protections, right of first refusal, and other means of righting the power imbalance not because all bosses are bad, but because all bosses are human. And with this, we can slowly begin to build a world where work is carried out equitably, for the betterment of society, with respect and due care toward those who carry it out. Work doesn't have to be traumatic, and by turning our attention to these issues which affect our lives so intimately, we can see to it that it isn't.
|
||||||
|
|
||||||
|
[^1]: And yes, you smarmy what-name, I recognize that technically you might consider it recourse to upend your life and find a new job, if you can, but that's a bit like saying "Yes, he fired an arrow at you, but could you not simply have moved out of the way?" "Yes, they kicked the fire-ladder away from the window, but could you not have simply knotted some bed-sheets?" What is possible and what is reasonable are often two very things, especially when your life, health, and well-being are at stake.
|
||||||
|
[^2]: Remember that the next time you roll your eyes at the POS tip screen.
|
||||||
45
content/blog/vegan-ranch-dressing.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
title: Making a Decent Vegan Ranch Dressing
|
||||||
|
description: Veganizing the corpulegenic condiment at the pinnacle of American sauces.
|
||||||
|
synopsis: Veganizing the corpulegenic condiment at the pinnacle of American sauces.
|
||||||
|
date: 2026-05-25
|
||||||
|
tags:
|
||||||
|
- Vegan Cooking
|
||||||
|
- Food and Beverage
|
||||||
|
imageURL: /img/ranch/vegan-ranch-dressing.webp
|
||||||
|
imageAlt: My hand holding a bottle of vegan ranch dressing labeled with blue tape.
|
||||||
|
mastodon_id: "116638231076499180"
|
||||||
|
---
|
||||||
|
If, like me, you have ever lived in the U.S.A., and if, like me, you are of a sufficiently distinguished BMI so as to rank highly the invention of comestibles, you will agree[^1] that Ranch (enPR: rāyŭnch) dressing is one of the great American inventions—right up there with the cotton gin, surgical anesthesia, and the modern assembly line.
|
||||||
|
|
||||||
|
[](/img/ranch/vegan-ranch-dressing.webp)
|
||||||
|
|
||||||
|
For those unfamiliar with the condiment, Ranch dressing is a tangy, herbaceous, and unsettlingly white sauce of moderate viscosity intended for use as a salad dressing. In practice, it is also used as a dip for everything from fresh vegetables to fried foods, and a general purpose condiment that you might find in or on anything from pizzas to sandwiches. These days, Ranch dressing is essentially a cool, green-flecked, less-sweet alternative to ketchup, only limited in its uses by your imagination. The flavor is peculiar. It's creamy, tangy, savory, and herbal all at once in a way that is all its own. Is it any good? Here's what Dan Howell of the internet's most famous gaslighting gay couple had to say about it:
|
||||||
|
|
||||||
|
<figure><div style="position: relative; padding-top: 56.25%;"><iframe title="Dan on Ranch dressing, from @rosegoldphil on TikTok" width="100%" height="100%" src="https://makertube.net/videos/embed/owfr1z6dBtLTWkgNYKoHFa" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" style="position: absolute; inset: 0px;"></iframe></div><figcaption>They could hide their relationship for sixteen years, but nothing could obscure Dan’s love of Ranch dressing.</figcaption></figure>
|
||||||
|
|
||||||
|
I've been vegan for some twelve years now, and store-bought vegan ranch dressing is unfortunately expensive and rarely scratches the itch for me anyway. Dry Ranch seasoning mixes usually contain dairy, so they're out of the question. Surprisingly, even if this were an affordable avenue, not a single vegan restaurant in the city of Chicago seems to have a decent Ranch dressing either, so I set out to see whether the carnists might have a recipe that I could adapt. I landed on [a homemade Ranch seasoning mix recipe from The Pioneer Woman](https://www.thepioneerwoman.com/food-cooking/recipes/a91701/homemade-ranch-seasoning-mix/). The recipe helpfully includes instructions for making a dressing from the mix, which I also adapted. Making it is easy. Simply whisk together the following dry ingredients:
|
||||||
|
|
||||||
|
|Qty|Unit|Ingredient|
|
||||||
|
|--|--|--|
|
||||||
|
|1|Tbsp|Dried Parsley|
|
||||||
|
|2|tsp|Dried Dill|
|
||||||
|
|1|tsp|Dried Chives|
|
||||||
|
|1|Tbsp|Garlic Powder|
|
||||||
|
|1/2|tsp|Ground Black Pepper|
|
||||||
|
|n/a|n/a|MSG to Taste|
|
||||||
|
|1|Tbsp|Onion Powder|
|
||||||
|
|n/a|n/a|Salt to Taste|
|
||||||
|
|
||||||
|
then whisk the mixture with these wet ingredients until well combined:
|
||||||
|
|
||||||
|
|Qty|Unit|Ingredient|
|
||||||
|
|--|--|--|
|
||||||
|
|1/4|cup|Lemon Juice|
|
||||||
|
|1|cup|Vegan Mayonnaise|
|
||||||
|
|2/3|cup|Vegan Sour Cream|
|
||||||
|
|3/4|cup|Water|
|
||||||
|
|
||||||
|
Now store your homemade vegan Ranch dressing in the fridge, and use it within five days. I'm sure this won't present a challenge.
|
||||||
|
|
||||||
|
[^1]: By continuing readers agree to indemnify, defend, and hold the author harmless from any and all claims arising from or related to neck sprains and other injuries sustained through vigorous nodding in agreement.
|
||||||
70
content/blog/what-would-you-do-if-you-didnt-have-to-work.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
title: "Re: What Would You Do if You Didn't Have to Work?"
|
||||||
|
description: "Oh the lives we could lead without capitalism in the way."
|
||||||
|
date: 2026-05-18
|
||||||
|
tags:
|
||||||
|
- Life
|
||||||
|
- Quick Thoughts
|
||||||
|
synopsis: "Oh the lives we could lead without capitalism in the way."
|
||||||
|
imageURL: /img/what-would-you-do-if-you-didnt-have-to-work/ducc.webp
|
||||||
|
imageAlt: "A close up shot of a well fed mallard with a shiny green head bobbing about in the Chicago River."
|
||||||
|
mastodon_id: "116596651947015321"
|
||||||
|
---
|
||||||
|
|
||||||
|
In response to [this recent post](https://gary.onl/what-would-you-do-if-you-didnt-have-to-work/) by [gary online](https://gary.onl/): I am *absolutely* not someone who derives their worth or identity by what they do
|
||||||
|
to earn a crust. If I didn't have to work, I'd lead a richness of life that
|
||||||
|
would put to shame both the wastrels[^1] of ~~inherited~~ *stolen* means who live by
|
||||||
|
the labor of others, and the wealthy denizens of the c-suite who earn their
|
||||||
|
exorbitant salaries by becoming professional whip-crackers for the former. Here
|
||||||
|
are a few things I'd like to do.
|
||||||
|
|
||||||
|
[](/img/what-would-you-do-if-you-didnt-have-to-work/ducc.webp)
|
||||||
|
|
||||||
|
- Learn
|
||||||
|
[Launy Grøndahl's Trombone Concerto](https://www.youtube.com/watch?v=AY8VJ6n83Qs&list=RDAY8VJ6n83Qs&start_radio=1)
|
||||||
|
so well I could play it in the middle of a battlefield.
|
||||||
|
- Finally get around to learning tenor clef in order to be able to do so.
|
||||||
|
- Cook for people: great big trays of vegan mac and cheese, spaghetti squash
|
||||||
|
with all sorts of sauces, coconut curries, baked beans, cornbread, teriyaki,
|
||||||
|
pizzas, burgers in homemade pretzel rolls, foccacia with olive oil and
|
||||||
|
balsamic vinegar for dipping, crunchy palmiers, millionaire's shortbread, tablet,
|
||||||
|
dosa, sambar, kale salads with pickled vegetables and crispy tofu, orange
|
||||||
|
faux chicken, seitan deli meats and country-fried steaks, biscuits and
|
||||||
|
"sausage" gravy, and more.
|
||||||
|
- Learn to make stovies, vegan haggis, peshwari naan, and sourdough bread, and
|
||||||
|
other delicious things.
|
||||||
|
- Get really good at programming.
|
||||||
|
- Learn C++ so that I can contribute code to open source projects like
|
||||||
|
[Scribus](https://www.scribus.net/), [Inkscape](https://inkscape.org/), and
|
||||||
|
[KDE](https://kde.org/).
|
||||||
|
- Focus on my health and fitness.
|
||||||
|
- Go to college and/or university, something I never had the chance to do, and
|
||||||
|
learn about psychology, computer science, music, mathematics, statistics,
|
||||||
|
design, and electrical engineering.
|
||||||
|
- Take courses for the fun of learning something new.
|
||||||
|
- Write more.
|
||||||
|
- Spend more time with my partner.
|
||||||
|
- Spend more time socializing.
|
||||||
|
- Go on more walks.
|
||||||
|
- Feed peas to the ducks on the river more days than not.
|
||||||
|
- Make more incense.
|
||||||
|
- Get really good at making incense.
|
||||||
|
- Try my hand at enfleurage
|
||||||
|
- Learn perfumery.
|
||||||
|
- Take a first-aid course.
|
||||||
|
- Design signage and informational material for public benefit.
|
||||||
|
- Get back into welding.
|
||||||
|
- Attempt to make soap.
|
||||||
|
- Lay in the grass on sunny days drinking shandy and eating vegan cheese and
|
||||||
|
crackers.
|
||||||
|
- Get my Spanish into shape.
|
||||||
|
- Learn German.
|
||||||
|
- Learn more Scots. Maybe write something in it.
|
||||||
|
- Write music.
|
||||||
|
- Wile away afternoons in cafés drinking tea.
|
||||||
|
- Search for resins and local aromatics.
|
||||||
|
- Take the bus to different towns just to walk around.
|
||||||
|
- Read more books.
|
||||||
|
- Not worry about what time it is.
|
||||||
|
|
||||||
|
[^1]: You ever meet one of those modern Bertie Wooster types? It's all bottle service, trips to Dubai, and overpriced yet under-seasoned lunches. Wealth truly is wasted on the wealthy.
|
||||||
@@ -6,7 +6,15 @@ h1: Changelog
|
|||||||
includeTOC: true
|
includeTOC: true
|
||||||
---
|
---
|
||||||
## 2026
|
## 2026
|
||||||
|
### June
|
||||||
|
* 2026-06-28
|
||||||
|
* Updated site style.
|
||||||
### May
|
### May
|
||||||
|
* 2026-05-26
|
||||||
|
* Updated [blogroll](/blogroll).
|
||||||
|
* Updated [/links](/links).
|
||||||
|
* 2026-05-15
|
||||||
|
* Updated [/links](/links).
|
||||||
* 2026-05-12
|
* 2026-05-12
|
||||||
* Implement pet bird in settings.
|
* Implement pet bird in settings.
|
||||||
* Refactor settings implementation. As a result:
|
* Refactor settings implementation. As a result:
|
||||||
|
|||||||
@@ -18,15 +18,15 @@ eleventyComputed:
|
|||||||
<div class="buttonContainer galleryButtons">
|
<div class="buttonContainer galleryButtons">
|
||||||
{% if picture.previousImage %}
|
{% if picture.previousImage %}
|
||||||
<a href="../{{ picture.previousImage | slugify }}">
|
<a href="../{{ picture.previousImage | slugify }}">
|
||||||
<button type="button">Previous</button>
|
<button type="button">← Previous</button>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="/gallery/{{ picture.containingGallery | slugify }}/">
|
<a href="/gallery/{{ picture.containingGallery | slugify }}/">
|
||||||
<button type="button">Gallery</button>
|
<button type="button">🕮 Gallery</button>
|
||||||
</a>
|
</a>
|
||||||
{% if picture.nextImage %}
|
{% if picture.nextImage %}
|
||||||
<a href="../{{ picture.nextImage | slugify }}">
|
<a href="../{{ picture.nextImage | slugify }}">
|
||||||
<button type="button">Next</button>
|
<button type="button">Next →</button>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/home.njk
|
layout: layouts/home.njk
|
||||||
eleventyNavigation:
|
|
||||||
key: Home
|
|
||||||
order: 1
|
|
||||||
---
|
---
|
||||||
{% include "navigator.njk" %}
|
{% include "navigator.njk" %}
|
||||||
|
|||||||
@@ -6,12 +6,17 @@ h1: Links
|
|||||||
includeTOC: true
|
includeTOC: true
|
||||||
---
|
---
|
||||||
Here are some links to pages and resources that I believe are worth sharing.
|
Here are some links to pages and resources that I believe are worth sharing.
|
||||||
## Design tools and resources
|
## Creative resources
|
||||||
### Education
|
### General
|
||||||
|
* [Creazilla](https://creazilla.com/)—A huge collection of media files under a Public Domain license including photos, illustrations, scanned art images, vectors, videos, and audio files.
|
||||||
|
* [Pixabay](https://pixabay.com/)—Free stock photos, illustrations, vector graphics, videos, music and sounds effects.
|
||||||
|
|
||||||
|
### Graphic Design
|
||||||
|
#### Education
|
||||||
* [Butterick’s Practical Typography](https://practicaltypography.com/)
|
* [Butterick’s Practical Typography](https://practicaltypography.com/)
|
||||||
### Reference
|
#### Reference
|
||||||
* [Design Systems Gallery](https://designsystemsrepo.com/design-systems-recent/)
|
* [Design Systems Gallery](https://designsystemsrepo.com/design-systems-recent/)
|
||||||
### Software
|
#### Software
|
||||||
* [Converseen](https://converseen.fasterland.net/)—A Batch Image Converter and Resizer Tool for Windows, Linux and macOS
|
* [Converseen](https://converseen.fasterland.net/)—A Batch Image Converter and Resizer Tool for Windows, Linux and macOS
|
||||||
* [darktable](https://www.darktable.org/)—An open source photography workflow application and raw developer
|
* [darktable](https://www.darktable.org/)—An open source photography workflow application and raw developer
|
||||||
* [digiKam](https://www.digikam.org/)—Open-source digital asset manager and image editor
|
* [digiKam](https://www.digikam.org/)—Open-source digital asset manager and image editor
|
||||||
@@ -22,16 +27,18 @@ Here are some links to pages and resources that I believe are worth sharing.
|
|||||||
* [Krita](https://krita.org/en/)—A professional FLOSS painting and raster editing tool
|
* [Krita](https://krita.org/en/)—A professional FLOSS painting and raster editing tool
|
||||||
* [RawTherapee](https://www.rawtherapee.com/)—A free, cross-platform raw image processing program
|
* [RawTherapee](https://www.rawtherapee.com/)—A free, cross-platform raw image processing program
|
||||||
* [Scribus](https://www.scribus.net/)—The Go-To Libre Desktop Publishing Application
|
* [Scribus](https://www.scribus.net/)—The Go-To Libre Desktop Publishing Application
|
||||||
### Stock graphics
|
#### Stock graphics
|
||||||
* [Artvee](https://artvee.com/)—Browse and download high-resolution, public domain paintings, posters and illustrations
|
* [Artvee](https://artvee.com/)—Browse and download high-resolution, public domain paintings, posters and illustrations
|
||||||
* [CocoMaterial](https://cocomaterial.com/)—The Open Source hand-drawn illustration library with 3,293 images
|
* [CocoMaterial](https://cocomaterial.com/)—The Open Source hand-drawn illustration library with 3,293 images
|
||||||
* [Free and open source icons](https://www.toools.design/free-open-source-icon-libraries)
|
* [Free and open source icons](https://www.toools.design/free-open-source-icon-libraries)
|
||||||
* [Getty Search Gateway](https://search.getty.edu/gateway/search?q=&cat=type&r=%22Paintings%22&types=%22Paintings$Paintings%22&highlights=%22Open%20Content%20Images$Recent%20Acquisitions%22&rows=10&srt=a&dir=s&dsp=0&img=0&pg=1)
|
* [Getty Museum Collection](https://www.getty.edu/art/collection/search?open_content=true)
|
||||||
|
* [Getty Research Collections](https://www.getty.edu/research/collections/search?is_open_content=true)
|
||||||
* [Museo](https://museo.app/)—A visual search engine that connects you with the Art Institute of Chicago, the Rijksmuseum, the Harvard Art Museums, the Minneapolis Institute of Art, the The Cleveland Museum of Art, and the New York Public Library Digital Collection
|
* [Museo](https://museo.app/)—A visual search engine that connects you with the Art Institute of Chicago, the Rijksmuseum, the Harvard Art Museums, the Minneapolis Institute of Art, the The Cleveland Museum of Art, and the New York Public Library Digital Collection
|
||||||
|
* [National Gallery of Art](https://www.nga.gov/artwork-search?download=1)—Search and download from a collection of tens of thousands of artworks.
|
||||||
* [Pexels](https://www.pexels.com/)—The best free stock photos, royalty free images & videos shared by creators
|
* [Pexels](https://www.pexels.com/)—The best free stock photos, royalty free images & videos shared by creators
|
||||||
* [Pixabay](https://pixabay.com/)—Stunning royalty-free images & royalty-free stock
|
* [Public Domain Image Archive](https://pdimagearchive.org/galleries/all/random/desc)—The Public Domain Image Archive is a curated collection of more than 10,000 out-of-copyright historical images, free for all to explore and reuse.
|
||||||
* [Smithsonian Open Access](https://www.si.edu/openaccess)—Download, share, and reuse millions of the Smithsonian’s images
|
* [Smithsonian Open Access](https://www.si.edu/openaccess)—Download, share, and reuse millions of the Smithsonian’s images
|
||||||
### Typefaces
|
#### Typefaces
|
||||||
* [Badass Libre Fonts By Womxn](https://www.design-research.be/by-womxn/)
|
* [Badass Libre Fonts By Womxn](https://www.design-research.be/by-womxn/)
|
||||||
* [Collletttivo](https://www.collletttivo.it/)—An Open-Source type foundry and a network of people promoting the practice of type design through mutual exchange and collaboration
|
* [Collletttivo](https://www.collletttivo.it/)—An Open-Source type foundry and a network of people promoting the practice of type design through mutual exchange and collaboration
|
||||||
* [coolLabs Fonts](https://fonts.coollabs.io/)—A privacy-friendly drop-in replacement for Google Fonts
|
* [coolLabs Fonts](https://fonts.coollabs.io/)—A privacy-friendly drop-in replacement for Google Fonts
|
||||||
@@ -140,6 +147,10 @@ Unlimited creativity, zero ads.
|
|||||||
* [TypeLit.io](https://www.typelit.io/)—Test your typing online by practicing on your favorite literature
|
* [TypeLit.io](https://www.typelit.io/)—Test your typing online by practicing on your favorite literature
|
||||||
* [Wee Windaes—A continuum o the Scots Leid](https://wee-windaes.nls.uk/)
|
* [Wee Windaes—A continuum o the Scots Leid](https://wee-windaes.nls.uk/)
|
||||||
|
|
||||||
|
## Music
|
||||||
|
* [Free Music Archive](https://freemusicarchive.org/home)—Free Music Archive (FMA) offers free access to open licensed, original music by independent artists around the world.
|
||||||
|
* [Musopen](https://musopen.org/)—Musopen is a 501(c) 3 non-profit working to increase access to music education by providing free music recordings, sheet music, apps, and educational materials.
|
||||||
|
|
||||||
## Privacy-respecting tools and services
|
## Privacy-respecting tools and services
|
||||||
* [Autistici](https://www.autistici.org/)—A collective offering free digital services, including:
|
* [Autistici](https://www.autistici.org/)—A collective offering free digital services, including:
|
||||||
* Anonymity services
|
* Anonymity services
|
||||||
@@ -263,5 +274,4 @@ Unlimited creativity, zero ads.
|
|||||||
## Sounds & Samples
|
## Sounds & Samples
|
||||||
* [FreeSound](https://freesound.org/)
|
* [FreeSound](https://freesound.org/)
|
||||||
* [LooperMan](https://www.looperman.com/)
|
* [LooperMan](https://www.looperman.com/)
|
||||||
* [Pixabay](https://pixabay.com/sound-effects/)
|
|
||||||
* [SampleSwap](https://sampleswap.org/index.php)
|
* [SampleSwap](https://sampleswap.org/index.php)
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ Mostly for my own use, this is a list of U.S.-based online shops that are not Am
|
|||||||
* [All Vegetarian Inc.](https://veganforall.com/)—Vegan substitutes for bacon, shrimp, eggs, and more.
|
* [All Vegetarian Inc.](https://veganforall.com/)—Vegan substitutes for bacon, shrimp, eggs, and more.
|
||||||
* [Fake Meats](https://www.fakemeats.com/default.asp)—Vegetarian and vegan meat substitutes, snacks, seasonings, sauces, jerky, and more. Seems like this store isn't totally vegan: check ingredients before buying.
|
* [Fake Meats](https://www.fakemeats.com/default.asp)—Vegetarian and vegan meat substitutes, snacks, seasonings, sauces, jerky, and more. Seems like this store isn't totally vegan: check ingredients before buying.
|
||||||
* [vegefood.com](https://vegefood.com/)—All sorts of weird and wonderful vegan and vegetarian meat alternatives. Not totally vegan: check ingredients before buying.
|
* [vegefood.com](https://vegefood.com/)—All sorts of weird and wonderful vegan and vegetarian meat alternatives. Not totally vegan: check ingredients before buying.
|
||||||
|
* [WebstaurantStore](https://www.webstaurantstore.com/search/vegan.html)—If you're willing to buy by the case, you can get all sorts of vegan alternatives here on the cheap.
|
||||||
* [Yang Kee Trading](https://yangkeetrading.com/)—Large dried TVP chunks, slices, and strips, vegan pork floss, teas, and more.
|
* [Yang Kee Trading](https://yangkeetrading.com/)—Large dried TVP chunks, slices, and strips, vegan pork floss, teas, and more.
|
||||||
|
|
||||||
## General
|
## General
|
||||||
@@ -74,6 +75,9 @@ Mostly for my own use, this is a list of U.S.-based online shops that are not Am
|
|||||||
* [Ten Thousand Villages](https://www.tenthousandvillages.com/)—Fair trade kitchen items, soaps, handwoven baskets, games and puzzles, jewelry, and more from artisans across the world.
|
* [Ten Thousand Villages](https://www.tenthousandvillages.com/)—Fair trade kitchen items, soaps, handwoven baskets, games and puzzles, jewelry, and more from artisans across the world.
|
||||||
|
|
||||||
## Home
|
## Home
|
||||||
|
### Art
|
||||||
|
* [Prints: The Public Domain Review](https://publicdomainreview.org/shop/fine-art-prints/)—The Public Domain Review prints shop offers custom-made Giclée prints from a selection of more than 900 public domain images. All proceeds from sales go back into The Public Domain Review (a not-for-profit project).
|
||||||
|
|
||||||
### Cleaning Supplies
|
### Cleaning Supplies
|
||||||
* [Friendswood Brooms](https://friendswoodbrooms.com/)—Handmade corn brooms.
|
* [Friendswood Brooms](https://friendswoodbrooms.com/)—Handmade corn brooms.
|
||||||
* [Meckley Brooms](https://www.meckleybrooms.com/)—Handmade corn brooms.
|
* [Meckley Brooms](https://www.meckleybrooms.com/)—Handmade corn brooms.
|
||||||
|
|||||||
7
content/now-burning/Now Burning_2026-05-18_12:40.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hippie Hug
|
||||||
|
manufacturer: The World Makes Scents
|
||||||
|
date: 2026-05-18 12:40:00
|
||||||
|
time: 12:40 PM
|
||||||
|
---
|
||||||
|
|
||||||
7
content/now-burning/Now Burning_2026-05-21_11:48.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Morning Star Lavender
|
||||||
|
manufacturer: Nippon Kodo
|
||||||
|
date: 2026-05-21 11:47:47
|
||||||
|
time: 11:47 AM
|
||||||
|
---
|
||||||
|
Meh.
|
||||||
7
content/now-burning/Now Burning_2026-05-23_15:02.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Suifu
|
||||||
|
manufacturer: Yamadamatsu
|
||||||
|
date: 2026-05-23 15:02:33
|
||||||
|
time: 3:02 PM
|
||||||
|
---
|
||||||
|
|
||||||
7
content/now-burning/Now Burning_2026-06-29_10:44.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Dragon's Blood
|
||||||
|
manufacturer: Bhagwan Incense
|
||||||
|
date: 2026-06-29 10:43:50
|
||||||
|
time: 10:43 AM
|
||||||
|
---
|
||||||
|
|
||||||
@@ -10,9 +10,9 @@ postlistHeaderText: "What I've been burning:"
|
|||||||
|
|
||||||
<h1>Now Burning:</h1>
|
<h1>Now Burning:</h1>
|
||||||
<article class="post microblog-post" data-pagefind-body>
|
<article class="post microblog-post" data-pagefind-body>
|
||||||
<img class="microblog-icon" src="/img/censer.svg">
|
<svg class="microblog-icon" xmlns="http://www.w3.org/2000/svg" width="397.265" height="1334.648" viewBox="0 0 105.11 353.126"><path d="M107.422 160.854s-16.31-.307-10.002-23.543c6.309-23.235 9.079-29.543 2.616-38.16s-8.31-16.927-2.924-20.312 19.542-1.23 22.927 8.002c3.386 9.232-8.001-9.233-18.464-4.001-10.464 5.232 19.388 15.541 16.002 28.005-3.385 12.464-8.85 11.387-7.312 20.158 1.539 8.77 11.62 13.54 7.466 21.542s-10.31 8.31-10.31 8.31" style="fill-opacity:.1;stroke-width:.176994;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke markers fill" transform="translate(-105.56 -112.273)scale(1.47357)"/><path d="M76.434 211.488c-2.753 4.398-4.194 9.316-4.194 14.313 0 11.22 7.23 22.978 18.772 28.19v3.851c0 1.274 1.026 2.3 2.3 2.3h1.298c1.274 0 2.3-1.026 2.3-2.3v-1.752q.972.26 1.96.47-.05.235-.05.483v.805c0 1.275 1.026 2.3 2.3 2.3h10.121c1.275 0 2.3-1.025 2.3-2.3v-.805l-.001-.08q.96-.15 1.911-.345v1.224c0 1.274 1.027 2.3 2.301 2.3h1.297c1.274 0 2.3-1.026 2.3-2.3v-2.925c12.764-4.806 21.011-17.124 21.01-29.116 0-4.997-1.44-9.915-4.193-14.313H105zM105 148.46v61.93h4.6v-61.93z" style="stroke-width:.260177;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke markers fill" transform="translate(-105.56 -112.273)scale(1.47357)"/><path d="M107.3 142.38a2.295 2.295 0 0 0-2.3 2.3v2.682h4.6v-2.681c0-1.275-1.026-2.3-2.3-2.3" style="fill-opacity:1;stroke-width:.264583;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke markers fill" transform="translate(-105.56 -112.273)scale(1.47357)"/></svg>
|
||||||
<div class="microblog-status">
|
<div class="microblog-status">
|
||||||
<h2 class="">{{ burning.data.title }}{% if burning.data.manufacturer %}, {{ burning.data.manufacturer }}{% endif %}, {{ burning.date | niceDate }}, {{ burning.data.time }}</h2>
|
<h2 class="">{{ burning.data.title }}{% if burning.data.manufacturer %}, {{ burning.data.manufacturer }}{% endif %}, <br>{{ burning.date | niceDate }}, {{ burning.data.time }}</h2>
|
||||||
{% if burning.content %}
|
{% if burning.content %}
|
||||||
<div class="microblog-comment">
|
<div class="microblog-comment">
|
||||||
{{ burning.content | safe }}
|
{{ burning.content | safe }}
|
||||||
@@ -21,5 +21,5 @@ postlistHeaderText: "What I've been burning:"
|
|||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
<a href="/once-burned/">
|
<a href="/once-burned/">
|
||||||
<button type="button">Previous Entries »</button>
|
<button type="button">Previous Entries</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -18,7 +18,13 @@ tags:
|
|||||||
<div class="buttonContainer">
|
<div class="buttonContainer">
|
||||||
<a class="link-button" href="/feeds/now.xml">
|
<a class="link-button" href="/feeds/now.xml">
|
||||||
<button type="button">
|
<button type="button">
|
||||||
<img src="/img/RSS.svg">
|
<svg class="nav-icon" viewBox="0 0 155 155" width="153.349" height="152.909" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="translate(-427.323 -373.814)">
|
||||||
|
<ellipse style="opacity: 1; fill-opacity: 1; fill-rule: nonzero" transform="matrix(.86996 0 0 .86996 135.156 330.529)" cx="360.357" cy="200.643" rx="24.643" ry="23.929"></ellipse>
|
||||||
|
<path style="fill-opacity: 1; fill-rule: evenodd" d="m427.835 455.057-.073-30.273c64.706 3.375 100.619 49.673 101.5 101.94h-30.318c-.503-45.942-31.74-69.996-71.11-71.667z"></path>
|
||||||
|
<path style="fill-opacity: 1; fill-rule: evenodd" d="m428.201 404.571-.878-30.757C526.75 378.43 580 450.582 580.67 526.724l-31.197-.44c1.365-48.704-34.665-120.267-121.273-121.713Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
Subscribe to “Now” Posts
|
Subscribe to “Now” Posts
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
@@ -31,8 +37,8 @@ tags:
|
|||||||
</div>
|
</div>
|
||||||
{% set postsCount = collections.now | removeMostRecent | length %}
|
{% set postsCount = collections.now | removeMostRecent | length %}
|
||||||
{% if postsCount > 1 %}
|
{% if postsCount > 1 %}
|
||||||
<h2>Previous Entries:</h2>
|
<h2 class="postlist-header">Previous Entries:</h2>
|
||||||
{% set postslist = collections.now | removeMostRecent %}
|
{% set postslist = collections.now | removeMostRecent | reverse %}
|
||||||
{% set showPostListHeader = false %}
|
{% set showPostListHeader = false %}
|
||||||
{% include "postslist.njk" %}
|
{% include "postslist.njk" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ title: Me Time
|
|||||||
description: "Taking time off for the holiday, incense stuff, leisure, and displacement."
|
description: "Taking time off for the holiday, incense stuff, leisure, and displacement."
|
||||||
synopsis: "Taking time off for the holiday, incense stuff, leisure, and displacement."
|
synopsis: "Taking time off for the holiday, incense stuff, leisure, and displacement."
|
||||||
date: 2025-11-28
|
date: 2025-11-28
|
||||||
|
imageURL: /img/maroma_sandalwood.webp
|
||||||
|
imageAlt: An incense stick protruding from a round blue ceramic censer.
|
||||||
---
|
---
|
||||||
Not much of tremendous interest has been going on lately; I took the week off because I forget to take time during the year, and thanksgiving is as good excuse as any to cram in some PTO at the end of the year. I've also been taking Fridays off lately. Sol and I had planned to spend thanksgiving day with their folks, but we unfortunately had to cancel the day before due to some medical stuff. Instead, we had a nice wee dinner just between the two of us: a [nut roast](https://lovingitvegan.com/vegan-nut-roast/), mashed potatoes, and gochujang-glazed carrots, all with lashings of gravy. Nut roasts are one of those foods that more people ought to eat. I think people avoid it because it sounds like too-healthy hippie food, but it's genuinely lovely. It's good hot as part of a roast dinner; it's also fantastic cold on sandwiches.
|
Not much of tremendous interest has been going on lately; I took the week off because I forget to take time during the year, and thanksgiving is as good excuse as any to cram in some PTO at the end of the year. I've also been taking Fridays off lately. Sol and I had planned to spend thanksgiving day with their folks, but we unfortunately had to cancel the day before due to some medical stuff. Instead, we had a nice wee dinner just between the two of us: a [nut roast](https://lovingitvegan.com/vegan-nut-roast/), mashed potatoes, and gochujang-glazed carrots, all with lashings of gravy. Nut roasts are one of those foods that more people ought to eat. I think people avoid it because it sounds like too-healthy hippie food, but it's genuinely lovely. It's good hot as part of a roast dinner; it's also fantastic cold on sandwiches.
|
||||||
|
|
||||||
|
|||||||
25
content/now/now_2026-06-29.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
title: Getting Old
|
||||||
|
description: "Life updates and thoughts on moving, aging, doing human stuff, and work."
|
||||||
|
synopsis: "Life updates and thoughts on moving, aging, doing human stuff, and work."
|
||||||
|
date: 2026-06-29
|
||||||
|
imageURL: /img/Still_Life_with_Lemons_Oranges_and_a_Pomegranate_about_1620–1630_Jacob_van_Hulsdonck.webp
|
||||||
|
imageAlt: A still life painting by Jacob van Hulsdonck of lemons, oranges, and a pomegranate.
|
||||||
|
---
|
||||||
|
It's been a while since my last update; I wanted to finish refreshing the style of my website before writing anything. The update took quite some time. At first, I implemented a design with big full-width header images on blog posts, and it looked pretty good. But, for some reason, after putting in all of the effort to accomplish my design I found that I lacked any motivation to keep going. I eventually realized that I just wasn't keen on the design. There was nothing wrong with it per se; I think it was just too loud. After some more time in Inkscape, I settled on the current look and worked feverishly to complete it. It's not terribly different: just a little tidier, more green, with some type tweaks.
|
||||||
|
|
||||||
|
## Moving on
|
||||||
|
|
||||||
|
Kicking-out time approaches for my apartment. I knew the new landlord was fibbing when she said she hoped that I, and the other residents, would stay on as tenants. It just isn't tenable without huge rent increases. For a first-time property owner it seems like she's already got the slum-lord routine down; no contact whatsoever unless rent is remitted ever so slightly later than usual (honestly, I don't mind this). She also opted not to pay a professional to replace the water heater, and simply left the broken unit taking up space in the basement after installing the new one. I realize I sound salty, but I'm not. For a man with lots of big feelings, I find it extremely difficult to hold a grudge. I recognize that she has done something awful by forcing six people from their home irrespective of their attachment to the place or ability to bear the cost of a move financially. I also don't have to hate her for it. In fact, I'm close to incapable.
|
||||||
|
|
||||||
|
## Getting old
|
||||||
|
|
||||||
|
But beside all of that, I've been feeling pretty vulnerable in other ways too. It's impossible to save money in this economy, and I'm starting to really internalize what a tenuous position this puts me in unless I can escape the U.S. before I'm old and decrepit. The driving force behind this awakening is that I have health stuff to consider these days. Nothing remotely serious, but, lord, It seems not so long ago that I was a twenty-something running around the city utterly uninsured, working too much, drinking too much, recklessly re-using old contact lenses, and sowing my wild oats without so much as a thought to donning a pair of dungarees. Don't get me wrong—I'm as strong and lively as ever—but you sure do start to acknowledge that you're merely a squishy machine when you have to fire up an electronic breathing box so that you don't hold your breath too long in your sleep. At the ripe old age of 36 I'm beginning to feel a bit like a monk; my only remaining vices are drinking tea, burning incense, and pondering my mortality.
|
||||||
|
|
||||||
|
## Human stuff
|
||||||
|
|
||||||
|
This is a good phase of life for me too, however. I'm no longer filled with the acute sense of existential dread that hits you when your life suddenly becomes more stable. Only a little of that these days, [as a treat](https://knowyourmeme.com/memes/cats-can-have-little-a-salami). I'm starting to regain that rich appreciation of beauty that I had too many feelings for as a teen and too little time for as a twenty-something. I've started buying the chocolate bars with love poems inside the wrappers, for the wrappers. I'm slowly remembering how to not worry too much about things I can't change. I've really come to relish small treats. I know what it's like to love someone, and be loved by someone, for close to a decade. In a world where everything seems to be going to pot and nobody has any money, I've been retreating into what it is to be a human, and it's been pretty cozy. Drinking tea, making and appreciating incense, playing music, reading and writing more prose and poetry. All really nice, really human things to do.
|
||||||
|
|
||||||
|
## A big work event
|
||||||
|
|
||||||
|
We had our big annual event at work not long ago. This year, Hillary Clinton was one of our speakers, so there was a big to-do with secret service, et cetera. It's par for the course for VIPs to be present at these events, so it's not uncommon for attendees and speakers alike to have private security. But this was another matter entirely and it required a lot of work from everybody involved. Despite some sleepless nights for our events director, it went very well and got quite a lot of news coverage. I didn't speak to her but I hear that Hillary had a nice time as well, which is great. You want your speakers to enjoy themselves. I rather enjoyed the conversation too.
|
||||||
@@ -25,11 +25,12 @@ paginationRootDir: once-burned
|
|||||||
{% else %}
|
{% else %}
|
||||||
<p>Nothing’s here yet!</p>
|
<p>Nothing’s here yet!</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<span class="buttonContainer">
|
||||||
|
{% include "permalinkButtons.njk" %}
|
||||||
|
|
||||||
{% include "permalinkButtons.njk" %}
|
<a href="/now-burning/">
|
||||||
|
<button type="button">Latest</button>
|
||||||
<a href="/now-burning/">
|
</a>
|
||||||
<button type="button">Latest »</button>
|
</span>
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ paginationRootDir: prior-thoughts
|
|||||||
{% include "permalinkButtons.njk" %}
|
{% include "permalinkButtons.njk" %}
|
||||||
|
|
||||||
<a href="/status/">
|
<a href="/status/">
|
||||||
<button type="button">Latest »</button>
|
<button type="button">Latest</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ description: "Bored? Take a fun quiz to while away the time!"
|
|||||||
<p>Test your knowledge, learn about yourself, and waste your precious time, right here, right now, with a quiz!</p>
|
<p>Test your knowledge, learn about yourself, and waste your precious time, right here, right now, with a quiz!</p>
|
||||||
|
|
||||||
{% set postsCount = collections.quiz | length %}
|
{% set postsCount = collections.quiz | length %}
|
||||||
<h2>Available quizzes:</h2>
|
<h2 class="postlist-header">Available quizzes:</h2>
|
||||||
{% set postslist = collections.quiz | reverse %}
|
{% set postslist = collections.quiz | reverse %}
|
||||||
{% set showPostListHeader = false %}
|
{% set showPostListHeader = false %}
|
||||||
{% include "postslist.njk" %}
|
{% include "postslist.njk" %}
|
||||||
|
|||||||
5
content/status/Status_2026-05-18_10:07.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-18 10:06:00
|
||||||
|
emoji: 👻
|
||||||
|
comment: "[Spooky stuff](https://sinceyouarrived.world/taken)."
|
||||||
|
---
|
||||||
5
content/status/Status_2026-06-29_13:29.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-29 13:28:40
|
||||||
|
emoji: 🤖
|
||||||
|
comment: I wish that before companies bolted-on AI assistants to their products, they first considered whether they have been neglecting basic quality of life features like fuzzy search, trimming whitespace from inputs, good info hierarchy and discoverability, etc. Like, if your software is a labyrinth full of foot-guns, of course people are going to want a magic lamp.
|
||||||
|
---
|
||||||
@@ -7,7 +7,7 @@ permalink: "/status/index.html"
|
|||||||
---
|
---
|
||||||
{% set status = collections.status | last %}
|
{% set status = collections.status | last %}
|
||||||
|
|
||||||
<h1>Nathan’s status:</h1>
|
<h1>Current status:</h1>
|
||||||
<article class="post microblog-post" data-pagefind-body>
|
<article class="post microblog-post" data-pagefind-body>
|
||||||
<div class="microblog-status card">
|
<div class="microblog-status card">
|
||||||
<span class="microblog-emoji">{{ status.data.emoji }}</span>
|
<span class="microblog-emoji">{{ status.data.emoji }}</span>
|
||||||
@@ -24,20 +24,17 @@ permalink: "/status/index.html"
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if metadata.author.url %}
|
{% if metadata.author.url %}
|
||||||
</a><br />
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
• {{ status.date | niceDate }}<br />
|
||||||
</span>
|
</span>
|
||||||
{% if status.data.comment %}
|
{% if status.data.comment %}
|
||||||
{{ status.data.comment | markdownify | safe }}<br />
|
{{ status.data.comment | markdownify | safe }}<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<span class="status-metadata">
|
|
||||||
{{ status.date | niceDate }}
|
|
||||||
</span>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
<a href="/prior-thoughts/">
|
<a href="/prior-thoughts/">
|
||||||
<button type="button">Previous Entries »</button>
|
<button type="button">Previous Entries</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -41,17 +41,25 @@ eleventyComputed:
|
|||||||
</h1>
|
</h1>
|
||||||
<p class="page-block nodropcap">
|
<p class="page-block nodropcap">
|
||||||
Here’s everything I’ve posted tagged “{{ tag }}.” Want to be notified when I post on this topic? Subscribe to “{{ tag }}” using the button below.<br>
|
Here’s everything I’ve posted tagged “{{ tag }}.” Want to be notified when I post on this topic? Subscribe to “{{ tag }}” using the button below.<br>
|
||||||
|
<span class="buttonContainer">
|
||||||
<a class="link-button" href="/tags/">
|
<a class="link-button" href="/tags/">
|
||||||
<button type="button">
|
<button type="button">
|
||||||
More topics »
|
More topics
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<a class="link-button" href="/feeds/{{ tag | slugify }}.xml">
|
<a class="link-button" href="/feeds/{{ tag | slugify }}.xml">
|
||||||
<button type="button">
|
<button type="button">
|
||||||
<img src="/img/RSS.svg">
|
<svg class="nav-icon" viewBox="0 0 155 155" width="153.349" height="152.909" version="1.0" xmlns="http://www.w3.org/2000/svg">
|
||||||
Subscribe »
|
<g transform="translate(-427.323 -373.814)">
|
||||||
|
<ellipse style="opacity: 1; fill-opacity: 1; fill-rule: nonzero" transform="matrix(.86996 0 0 .86996 135.156 330.529)" cx="360.357" cy="200.643" rx="24.643" ry="23.929"></ellipse>
|
||||||
|
<path style="fill-opacity: 1; fill-rule: evenodd" d="m427.835 455.057-.073-30.273c64.706 3.375 100.619 49.673 101.5 101.94h-30.318c-.503-45.942-31.74-69.996-71.11-71.667z"></path>
|
||||||
|
<path style="fill-opacity: 1; fill-rule: evenodd" d="m428.201 404.571-.878-30.757C526.75 378.43 580 450.582 580.67 526.724l-31.197-.44c1.365-48.704-34.665-120.267-121.273-121.713Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
Subscribe
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{% set postslist = collections[ tag ] | reverse %}
|
{% set postslist = collections[ tag ] | reverse %}
|
||||||
|
|||||||
@@ -1,21 +1,124 @@
|
|||||||
.isso-comment-header {
|
.isso-auth-section {
|
||||||
height: var(--space-2xl) !important;
|
display: flex !important;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
gap: var(--space-3xs);
|
||||||
|
& .isso-input-wrapper {
|
||||||
|
flex-basis: 30%;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@container (width < 460px) {
|
||||||
|
.isso-auth-section {
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h4.isso-thread-heading {
|
.isso-comment {
|
||||||
color: var(--text-color) !important;
|
& > .isso-avatar {
|
||||||
font-size: var(--step-2) !important;
|
margin-left: var(--space-l);
|
||||||
font-variation-settings:
|
margin-top: var(--space-l);
|
||||||
"opsz" 50,
|
& img {
|
||||||
"wght" 350,
|
border-radius: var(--large-rounded-radius);
|
||||||
"SOFT" 20,
|
border-top-left-radius: 0;
|
||||||
"WONK" 1 !important;
|
}
|
||||||
line-height: calc(var(--step-2) * 0.25 + var(--step-2)) !important;
|
}
|
||||||
margin-bottom: var(--space-m) !important;
|
& .isso-comment-footer {
|
||||||
margin-top: var(--space-m) !important;
|
display: flex;
|
||||||
padding-bottom: 0 !important;
|
flex-flow: row nowrap;
|
||||||
padding-top: 0 !important;
|
align-items: center;
|
||||||
text-wrap: pretty !important;
|
& a {
|
||||||
|
position: inherit;
|
||||||
|
}
|
||||||
|
& .isso-reply {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--2);
|
||||||
|
font-variation-settings: "wght" 700;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
text-align: end;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
& .isso-spacer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
& .isso-votes {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--1);
|
||||||
|
font-variation-settings: "wght" 700;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
& svg {
|
||||||
|
fill: var(--contrast-color) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& .isso-comment-header {
|
||||||
|
color: var(--contrast-color) !important;
|
||||||
|
margin-bottom: var(--space-s);
|
||||||
|
& a[href].isso-author, a[href].isso-author:visited, a[href].isso-author:hover {
|
||||||
|
color: var(--contrast-color) !important;
|
||||||
|
}
|
||||||
|
& .isso-author {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--1);
|
||||||
|
font-variation-settings: "wght" 600;
|
||||||
|
&::after {
|
||||||
|
content: "\A";
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& .isso-permalink {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--2);
|
||||||
|
font-variation-settings: "wght" 500;
|
||||||
|
|
||||||
|
}
|
||||||
|
& .isso-spacer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& > .isso-follow-up {
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
margin-top: var(--space-xs);
|
||||||
|
margin-bottom: var(--space-l);
|
||||||
|
|
||||||
|
& .isso-text-wrapper {
|
||||||
|
border-top-left-radius: var(--large-rounded-radius);
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& > .isso-text-wrapper {
|
||||||
|
background-color: var(--contrast-color-tint);
|
||||||
|
border-radius: var(--large-rounded-radius);
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
padding: var(--space-l);
|
||||||
|
& .isso-text p {
|
||||||
|
font-style: italic;
|
||||||
|
margin-block: 0 1lh !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:not(:first-of-type), .isso-follow-up .isso-comment {
|
||||||
|
border-top: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
section#isso-thread {
|
||||||
|
& h4.isso-thread-heading {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step-0);
|
||||||
|
font-variation-settings: "wght" 450;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
line-height: calc(var(--step-0) * 0.25 + var(--step-0));
|
||||||
|
margin-block: 0 1lh;
|
||||||
|
margin-top: var(--space-m);
|
||||||
|
padding-bottom: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-wrap: pretty;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.isso-text > h1,
|
.isso-text > h1,
|
||||||
@@ -24,15 +127,15 @@ h4.isso-thread-heading {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.isso-form-wrapper > .isso-auth-section > .isso-post-action > input {
|
.isso-form-wrapper > .isso-auth-section > .isso-post-action > input {
|
||||||
background-color: var(--contrast-color) !important;
|
background-color: var(--contrast-color-tint) !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
border-radius: var(--border-radius) !important;
|
border-radius: var(--border-radius) !important;
|
||||||
color: var(--background-color) !important;
|
color: var(--contrast-color) !important;
|
||||||
font-family: var(--font-family-ui) !important;
|
font-family: var(--font-family-ui) !important;
|
||||||
font-size: var(--step--2) !important;
|
font-size: var(--step--2) !important;
|
||||||
font-variation-settings: var(--font-variation-ui) !important;
|
font-variation-settings: var(--font-variation-ui) !important;
|
||||||
height: var(--space-m-l) !important;
|
height: var(--space-m-l) !important;
|
||||||
letter-spacing: var(--ui-letter-spacing) !important;
|
letter-spacing: var(--wide-letter-spacing) !important;
|
||||||
margin: var(--space-s) 0 0 0 !important;
|
margin: var(--space-s) 0 0 0 !important;
|
||||||
padding: 0 var(--space-xs) !important;
|
padding: 0 var(--space-xs) !important;
|
||||||
text-transform: uppercase !important;
|
text-transform: uppercase !important;
|
||||||
@@ -44,8 +147,7 @@ p.isso-input-wrapper {
|
|||||||
display: block !important;
|
display: block !important;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
max-width: 100% !important;
|
max-width: 100% !important;
|
||||||
& > label,
|
& > label {
|
||||||
& > input {
|
|
||||||
font-family: var(--font-family-ui) !important;
|
font-family: var(--font-family-ui) !important;
|
||||||
font-size: var(--step--2) !important;
|
font-size: var(--step--2) !important;
|
||||||
font-variation-settings: var(--font-variation-ui) !important;
|
font-variation-settings: var(--font-variation-ui) !important;
|
||||||
@@ -55,15 +157,56 @@ p.isso-input-wrapper {
|
|||||||
margin-block: inherit !important;
|
margin-block: inherit !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@container (width < 460px) {
|
||||||
|
p.isso-input-wrapper > label {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.isso-postbox {
|
||||||
|
background-color: var(--contrast-color);
|
||||||
|
border-radius: var(--large-rounded-radius);
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
color: var(--background-color);
|
||||||
|
padding: var(--space-l) calc((100cqw - (var(--grid-gutter) * 11)) / 12) var(--space-2xs) calc((100cqw - (var(--grid-gutter) * 11)) / 12);
|
||||||
|
/*! margin-left: calc(((100cqw - (var(--grid-gutter) * 11)) / 12) * -1) !important; */
|
||||||
|
margin-block: 1lh 1lh;
|
||||||
|
/*! width: calc(((100cqw) / 12) * 14); */
|
||||||
|
}
|
||||||
|
@container (width < 460px) {
|
||||||
|
.isso-postbox {
|
||||||
|
padding: var(--space-l) var(--space-m) var(--space-s) var(--space-m);
|
||||||
|
}
|
||||||
|
}
|
||||||
.isso-post-action {
|
.isso-post-action {
|
||||||
display: inline-block !important;
|
display: inline-block !important;
|
||||||
float: inherit !important;
|
float: inherit !important;
|
||||||
margin: 0 var(--space-2xs) 0 0 !important;
|
margin-left: 0 !important;
|
||||||
&::after {
|
&::after {
|
||||||
content: "" !important;
|
content: "" !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@container (width < 460px) {
|
||||||
|
.isso-post-action {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.isso-text {
|
||||||
|
color: var(--text-color);
|
||||||
|
& > blockquote {
|
||||||
|
margin: 0;
|
||||||
|
padding: var(--space-3xs) var(--space-s);
|
||||||
|
&::before {
|
||||||
|
font-size: var(--step-5);
|
||||||
|
margin-top: -4.5px;
|
||||||
|
}
|
||||||
|
& p {
|
||||||
|
padding: 0 0 0 var(--space-s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& p {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
textarea.isso-textarea {
|
textarea.isso-textarea {
|
||||||
background-color: var(--background-color) !important;
|
background-color: var(--background-color) !important;
|
||||||
@@ -76,7 +219,19 @@ textarea.isso-textarea {
|
|||||||
font-variation-settings: var(--font-variation-default) !important;
|
font-variation-settings: var(--font-variation-default) !important;
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
min-height: var(--space-l) !important;
|
min-height: var(--space-l) !important;
|
||||||
padding: 0 var(--space-3xs) !important;
|
|
||||||
resize: vertical !important;
|
resize: vertical !important;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* reply form */
|
||||||
|
.isso-root > .isso-comment > .isso-text-wrapper > .isso-postbox {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
.isso-postbox {
|
||||||
|
margin-left: auto !important;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,12 @@
|
|||||||
grid-column: var(--span-grid);
|
grid-column: var(--span-grid);
|
||||||
}
|
}
|
||||||
.continue-discussion button {
|
.continue-discussion button {
|
||||||
margin-top: calc(var(--space-s) * -1);
|
|
||||||
margin-bottom: var(--space-m);
|
margin-bottom: var(--space-m);
|
||||||
|
& > svg {
|
||||||
|
aspect-ratio: 1 / 1;
|
||||||
|
fill: var(--background-color);
|
||||||
|
height: var(--space-xs);
|
||||||
|
margin-right: var(--space-2xs);
|
||||||
|
width: var(--space-xs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
main > section > article.post > p:not(.nodropcap):first-of-type:first-letter {
|
main > section > article.post > p:not(.nodropcap):first-of-type:first-letter {
|
||||||
float: left;
|
float: left;
|
||||||
font-size: var(--step-5);
|
font-size: var(--step-4);
|
||||||
padding: var(--space-2xs);
|
padding-top: var(--space-3xs);
|
||||||
color: var(--contrast-color);
|
color: var(--contrast-color);
|
||||||
border: solid 2px var(--contrast-color);
|
|
||||||
font-family: var(--font-family-headline);
|
font-family: var(--font-family-headline);
|
||||||
font-variation-settings:
|
font-variation-settings:
|
||||||
"opsz" 144,
|
"opsz" 144,
|
||||||
"wght" 500,
|
"wght" 600,
|
||||||
"SOFT" 10,
|
"SOFT" 10,
|
||||||
"WONK" 0;
|
"WONK" 0;
|
||||||
margin: 0.5rem 0.7rem 0 0;
|
margin: 0.5rem 0.7rem 0 0;
|
||||||
border-radius: 0.2em;
|
|
||||||
border-top-left-radius: 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
width: var(--space-7xl-8xl);
|
width: var(--space-7xl-8xl);
|
||||||
height: var(--space-7xl-8xl);
|
height: var(--space-7xl-8xl);
|
||||||
.gallery-image {
|
.gallery-image {
|
||||||
border-radius: var(--border-radius);
|
border-radius: 1em;
|
||||||
|
border-top-left-radius: 0;
|
||||||
width: var(--space-7xl-8xl);
|
width: var(--space-7xl-8xl);
|
||||||
height: var(--space-7xl-8xl);
|
height: var(--space-7xl-8xl);
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
|
|||||||
@@ -1,31 +1,48 @@
|
|||||||
.guestbook-message blockquote {
|
.guestbook-message blockquote {
|
||||||
margin-bottom: var(--space-m);
|
margin-bottom: var(--space-m);
|
||||||
margin-top: var(--space-3xs);
|
margin-top: var(--space-3xs);
|
||||||
|
padding: var(--space-m) var(--space-2xl);
|
||||||
|
&:before {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
content: "“";
|
||||||
|
font-size: 10rem;
|
||||||
|
font-variation-settings:
|
||||||
|
"opsz" 72,
|
||||||
|
"wght" 360,
|
||||||
|
"SOFT" 0,
|
||||||
|
"WONK" 0;
|
||||||
|
margin-left: calc((var(--space-xl) * 1.25) * -1);
|
||||||
|
margin-top: calc((var(--space-s) * 1.3) * -1);
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.guestbook-message p {
|
.guestbook-message p {
|
||||||
margin-block: 0 0;
|
margin-block: 0 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
|
||||||
}
|
}
|
||||||
.guestbook-message p b,
|
.guestbook-message p b,
|
||||||
.guestbook-message p small {
|
.guestbook-message p small {
|
||||||
font-family: var(--meta-font-family);
|
color: var(--color-metadata);
|
||||||
font-size: var(--meta-font-size);
|
font-family: var(--font-family-metadata);
|
||||||
font-variation-settings: var(--meta-font-variation-settings);
|
font-size: var(--font-size-metadata);
|
||||||
|
font-variation-settings: var(--font-variation-settings-metadata);
|
||||||
|
text-transform: var(--text-transform-metadata);
|
||||||
|
letter-spacing: var(--letter-spacing-metadata);
|
||||||
|
& a[href] {
|
||||||
|
color: var(--color-metadata);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#guestbooks___challenge-answer-container br,
|
#guestbooks___challenge-answer-container br,
|
||||||
.guestbooks___input-container br {
|
.guestbooks___input-container br {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.guestbook-message-reply {
|
.guestbook-message-reply {
|
||||||
border-left: var(--border-details);
|
|
||||||
margin-left: var(--space-l);
|
margin-left: var(--space-l);
|
||||||
margin-top: calc(var(--space-s) * -1);
|
margin-top: calc(var(--space-s) * -1);
|
||||||
opacity: 0.9;
|
|
||||||
padding-left: var(--space-s);
|
padding-left: var(--space-s);
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
& blockquote {
|
& blockquote {
|
||||||
margin-left: 0;
|
padding-left: var(--space-s);
|
||||||
}
|
}
|
||||||
& blockquote::before {
|
& blockquote::before {
|
||||||
content: "";
|
content: "";
|
||||||
|
|||||||
@@ -16,16 +16,27 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 0 var(--space-s) 0;
|
margin: 0 0 var(--space-s) 0;
|
||||||
& > img {
|
& > svg {
|
||||||
max-width: var(--space-s);
|
fill: var(--background-color);
|
||||||
|
margin-right: var(--space-xs);
|
||||||
|
width: var(--space-s);
|
||||||
|
height: var(--space-s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h1.socialTitle {
|
h1.socialTitle {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin-top: var(--space-m);;
|
||||||
font-size: var(--step-4);
|
|
||||||
line-height: calc(var(--step-4) * 0.5 + var(--step-4));
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step-0);
|
||||||
|
font-style: normal;
|
||||||
|
font-variation-settings: "wght" 450;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
line-height: calc(var(--step-0) * 0.25 + var(--step-0));
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-wrap: pretty;
|
||||||
}
|
}
|
||||||
|
|
||||||
.links-container p {
|
.links-container p {
|
||||||
@@ -37,5 +48,5 @@ h1.socialTitle {
|
|||||||
img.profilePic {
|
img.profilePic {
|
||||||
max-width: var(--space-6xl);
|
max-width: var(--space-6xl);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: solid 2px var(--text-color);
|
border: solid 2px var(--contrast-color);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
.post-metadata {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row nowrap;
|
|
||||||
padding: 0 0 var(--space-l) 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-metadata-copy {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-metadata p,
|
|
||||||
.post-metadata ul,
|
|
||||||
.post-metadata ul li,
|
|
||||||
time,
|
|
||||||
.metadata {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row wrap;
|
|
||||||
font-family: var(--meta-font-family);
|
|
||||||
font-size: var(--meta-font-size);
|
|
||||||
font-style: var(--meta-font-style);
|
|
||||||
font-variation-settings: var(--meta-font-variation-settings);
|
|
||||||
line-height: calc(var(--meta-font-size) * 0.5 + var(--meta-font-size));
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding-left: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-metadata {
|
|
||||||
padding-left: 0.15rem;
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
.microblog-comment {
|
.microblog-comment {
|
||||||
p {
|
& p {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: var(--space-s) 0 0 0;
|
padding: var(--space-s) 0 0 0;
|
||||||
@@ -12,20 +12,42 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.microblog-icon {
|
.microblog-icon {
|
||||||
filter: var(--logo-filter);
|
fill: var(--contrast-color);
|
||||||
height: var(--space-4xl);
|
height: var(--space-4xl);
|
||||||
padding-right: var(--space-s);
|
padding-right: var(--space-s);
|
||||||
width: var(--space-2xl);
|
width: var(--space-2xl);
|
||||||
}
|
}
|
||||||
.microblog-list {
|
.microblog-list {
|
||||||
.post-metadata {
|
& .postlist-item-container {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
gap: var(--space-s);
|
||||||
|
& .postlist-item {
|
||||||
|
& .post-copy {
|
||||||
|
& .post-metadata {
|
||||||
|
& .post-metadata-copy {
|
||||||
|
& p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& h3 {
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& .post-metadata {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.microblog-post {
|
.microblog-post {
|
||||||
display: flex;
|
display: flex;
|
||||||
.microblog-comment {
|
& .microblog-comment {
|
||||||
p {
|
& p {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
padding-bottom: var(--space-2xs);
|
padding-bottom: var(--space-2xs);
|
||||||
}
|
}
|
||||||
@@ -37,25 +59,28 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: var(--space-s);
|
padding: var(--space-s);
|
||||||
}
|
}
|
||||||
.microblog-status-copy {
|
& h2 {
|
||||||
|
margin-top: var(--space-m);
|
||||||
|
}
|
||||||
|
& .microblog-status-copy {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column nowrap;
|
flex-flow: column nowrap;
|
||||||
p {
|
p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.status-metadata {
|
& .status-metadata {
|
||||||
font-family: var(--meta-font-family);
|
color: var(--color-metadata);
|
||||||
font-size: var(--meta-font-size);
|
font-family: var(--font-family-metadata);
|
||||||
font-style: var(--meta-font-style);
|
font-size: var(--font-size-metadata);
|
||||||
font-variation-settings: var(--meta-font-variation-settings);
|
font-variation-settings: var(--font-variation-settings-metadata);
|
||||||
line-height: calc(var(--meta-font-size) * 0.5 + var(--meta-font-size));
|
letter-spacing: var(--letter-spacing-metadata);
|
||||||
|
line-height: calc(var(--font-size-metadata) * 0.5 + var(--font-size-metadata));
|
||||||
|
text-transform: var(--text-transform-metadata);
|
||||||
|
& a[href] {
|
||||||
|
color: var(--color-metadata);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.postlist-item-container {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
gap: var(--space-s);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,43 +2,45 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
gap: var(--space-2xs) var(--space-2xs);
|
gap: var(--space-2xs) var(--space-2xs);
|
||||||
grid-template-columns: repeat(auto-fill, minmax(var(--space-6xl), 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(var(--space-6xl), 1fr));
|
||||||
|
margin-bottom: var(--space-xl);
|
||||||
|
margin-top: var(--space-xl);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
.navigatorItem {
|
.navigatorItem {
|
||||||
background-color: var(--background-color);
|
background-color: var(--background-color);
|
||||||
border: 1.5px solid var(--color-gray-20);
|
border: var(--border-header-footer);
|
||||||
border-radius: var(--border-radius);
|
border-radius: var(--border-radius);
|
||||||
color: var(--text-color);
|
color: var(--text-color);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column wrap;
|
flex-flow: row nowrap;
|
||||||
height: var(--space-3xl);
|
height: var(--space-3xl);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
a {
|
& a[href] {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: var(--space-s) var(--space-xs);
|
padding: var(--space-s) var(--space-xs);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
img {
|
& p {
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--2);
|
||||||
|
font-variation-settings: var(--font-variation-ui);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
}
|
||||||
|
& svg {
|
||||||
aspect-ratio: 1 / 1;
|
aspect-ratio: 1 / 1;
|
||||||
filter: var(--logo-filter);
|
fill: var(--text-color);
|
||||||
|
max-height: var(--space-m);
|
||||||
width: var(--space-m);
|
width: var(--space-m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: var(--text-color);
|
background-color: var(--contrast-color);
|
||||||
border: 1.25px solid var(--text-color);
|
|
||||||
transition: var(--transition-normal);
|
transition: var(--transition-normal);
|
||||||
a {
|
& a {
|
||||||
color: var(--background-color);
|
color: var(--background-color);
|
||||||
transition: var(--transition-normal);
|
transition: var(--transition-normal);
|
||||||
img {
|
& svg {
|
||||||
filter: none;
|
fill: var(--background-color);
|
||||||
transition: var(--transition-normal);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
img {
|
|
||||||
filter: brightness(0) saturate(100%) invert(16%) sepia(0%)
|
|
||||||
saturate(1024%) hue-rotate(177deg) brightness(99%) contrast(88%);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
/* Posts list */
|
|
||||||
.postlist,
|
|
||||||
.links-nextprev {
|
|
||||||
container: postlist / inline-size;
|
|
||||||
}
|
|
||||||
.postlist-item {
|
|
||||||
align-items: flex-start;
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row nowrap;
|
|
||||||
justify-content: flex-start;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.postlist-item-container {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
gap: var(--space-s);
|
|
||||||
}
|
|
||||||
.post-image {
|
|
||||||
width: var(--space-4xl);
|
|
||||||
height: var(--space-4xl);
|
|
||||||
object-fit: cover;
|
|
||||||
object-position: 50% 50%;
|
|
||||||
}
|
|
||||||
.post-image-container {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
box-shadow: var(--box-shadow);
|
|
||||||
height: var(--space-4xl);
|
|
||||||
max-height: var(--space-4xl);
|
|
||||||
overflow: hidden;
|
|
||||||
width: var(--space-4xl);
|
|
||||||
}
|
|
||||||
|
|
||||||
.postlist-date,
|
|
||||||
.postlist-item:before {
|
|
||||||
color: var(--color-gray-90);
|
|
||||||
font-size: var(--meta-font-size);
|
|
||||||
}
|
|
||||||
.postlist-date {
|
|
||||||
word-spacing: -0.5px;
|
|
||||||
}
|
|
||||||
.postlist-link {
|
|
||||||
font-size: var(--step-5);
|
|
||||||
padding-right: 0.5em;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.postlist-link p {
|
|
||||||
background-color: var(--color-gray-90);
|
|
||||||
border-radius: 100px;
|
|
||||||
color: var(--background-color);
|
|
||||||
font-family: var(--font-family-ui);
|
|
||||||
font-size: var(--step--2);
|
|
||||||
font-variation-settings: var(--font-variation-ui);
|
|
||||||
letter-spacing: var(--ui-letter-spacing);
|
|
||||||
margin-top: calc(var(--space-3xs) * -1);
|
|
||||||
padding-left: var(--space-xs);
|
|
||||||
padding-right: var(--space-xs);
|
|
||||||
text-transform: uppercase;
|
|
||||||
width: max-content;
|
|
||||||
}
|
|
||||||
.post-copy {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@container postlist (max-width: 500px) {
|
|
||||||
.postlist-item {
|
|
||||||
flex-flow: column wrap;
|
|
||||||
}
|
|
||||||
.post-image-container {
|
|
||||||
margin-left: 0;
|
|
||||||
min-height: var(--space-10xl);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.post-image-container img.post-image {
|
|
||||||
width: 100cqw;
|
|
||||||
height: var(--space-10xl);
|
|
||||||
}
|
|
||||||
.postlist-link {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.postlist-link h3 {
|
|
||||||
padding-top: var(--space-m);
|
|
||||||
}
|
|
||||||
.postlist-link p {
|
|
||||||
margin-top: var(--space-xs);
|
|
||||||
}
|
|
||||||
.post-metadata {
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
.profilePic:not(.links-container > img.profilePic) {
|
|
||||||
border-radius: 100%;
|
|
||||||
height: var(--space-xl);
|
|
||||||
margin-right: var(--space-s);
|
|
||||||
width: var(--space-xl);
|
|
||||||
}
|
|
||||||
@@ -18,7 +18,7 @@ details:not(.toc) {
|
|||||||
font-size: var(--step--2);
|
font-size: var(--step--2);
|
||||||
font-variation-settings: var(--font-variation-ui);
|
font-variation-settings: var(--font-variation-ui);
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: var(--ui-letter-spacing);
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
font-family: var(--font-family-ui);
|
font-family: var(--font-family-ui);
|
||||||
|
|
||||||
::marker {
|
::marker {
|
||||||
@@ -40,7 +40,7 @@ details:not(.toc) {
|
|||||||
font-size: var(--step--2);
|
font-size: var(--step--2);
|
||||||
font-variation-settings: var(--font-variation-ui);
|
font-variation-settings: var(--font-variation-ui);
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: var(--ui-letter-spacing);
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
font-family: var(--font-family-ui);
|
font-family: var(--font-family-ui);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,13 +28,44 @@ mark {
|
|||||||
font-family: var(--font-family-ui) !important;
|
font-family: var(--font-family-ui) !important;
|
||||||
font-size: var(--step--2) !important;
|
font-size: var(--step--2) !important;
|
||||||
font-variation-settings: var(--font-variation-ui) !important;
|
font-variation-settings: var(--font-variation-ui) !important;
|
||||||
letter-spacing: var(--ui-letter-spacing) !important;
|
letter-spacing: var(--wide-letter-spacing) !important;
|
||||||
margin: var(--space-xs) 0 0 0 !important;
|
margin: var(--space-xs) 0 0 0 !important;
|
||||||
padding: 0 var(--space-xs) !important;
|
padding: 0 var(--space-xs) !important;
|
||||||
text-transform: uppercase !important;
|
text-transform: uppercase !important;
|
||||||
transition: var(--transition-normal) !important;
|
transition: var(--transition-normal) !important;
|
||||||
white-space: nowrap !important;
|
white-space: nowrap !important;
|
||||||
}
|
}
|
||||||
|
.pagefind-ui__results-area {
|
||||||
|
.pagefind-ui__message {
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--2);
|
||||||
|
font-variation-settings: "wght" 500;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
padding-top: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.pagefind-ui__results {
|
||||||
|
& .pagefind-ui__result {
|
||||||
|
& .pagefind-ui__result-inner {
|
||||||
|
& .pagefind-ui__result-excerpt {
|
||||||
|
font-size: var(--step-0);
|
||||||
|
line-height: calc(var(--step-0) * 0.5 + var(--step-0));
|
||||||
|
}
|
||||||
|
& .pagefind-ui__result-title {
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--1);
|
||||||
|
font-variation-settings: "wght" 700;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
line-height: calc(var(--step--1) * 0.5 + var(--step--1));
|
||||||
|
text-transform: uppercase;
|
||||||
|
& a[href] {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.pagefind-ui__search-clear {
|
.pagefind-ui__search-clear {
|
||||||
font-family: var(--meta-font-family) !important;
|
font-family: var(--meta-font-family) !important;
|
||||||
|
|||||||
@@ -1,31 +1,27 @@
|
|||||||
a.post-tag {
|
a.post-tag {
|
||||||
background-color: var(--color-gray-20);
|
color: var(--background-color);
|
||||||
border-radius: 1rem;
|
|
||||||
color: var(--text-color);
|
|
||||||
font-family: var(--meta-font-family);
|
font-family: var(--meta-font-family);
|
||||||
font-variation-settings: "wght" 300;
|
font-variation-settings: "wght" 300;
|
||||||
margin-top: var(--space-3xs);
|
|
||||||
margin-right: var(--space-3xs);
|
|
||||||
padding: 0 var(--space-3xs);
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
a.post-tag:before {
|
a.post-tag:before {
|
||||||
content: "#";
|
content: "#";
|
||||||
}
|
}
|
||||||
a.post-tag:visited {
|
a.post-tag:visited {
|
||||||
color: var(--text-color);
|
color: var(--background-color);
|
||||||
}
|
}
|
||||||
a.post-tag:hover {
|
a[href].post-tag:hover {
|
||||||
color: var(--text-color);
|
color: var(--background-color);
|
||||||
}
|
}
|
||||||
.tag-feed-icon {
|
.tag-feed-icon {
|
||||||
fill: var(--rss-orange);
|
fill: var(--rss-orange);
|
||||||
height: var(--space-m);
|
|
||||||
transition: var(--transition-normal);
|
|
||||||
width: var(--space-m);
|
|
||||||
&.small {
|
|
||||||
height: var(--space-s);
|
height: var(--space-s);
|
||||||
|
transition: var(--transition-normal);
|
||||||
width: var(--space-s);
|
width: var(--space-s);
|
||||||
|
&.small {
|
||||||
|
height: var(--space-xs);
|
||||||
|
width: var(--space-xs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.taglist {
|
.taglist {
|
||||||
|
|||||||
@@ -1,11 +1,46 @@
|
|||||||
details.toc {
|
|
||||||
padding-bottom: var(--space-m);
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc {
|
.toc {
|
||||||
|
padding-bottom: var(--space-m);
|
||||||
|
& div.toc {
|
||||||
|
background-color: var(--contrast-color-tint);
|
||||||
|
border-radius: var(--large-rounded-radius);
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
color: var(--contrast-color);
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-variation-settings: "wght" 360;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
padding: var(--space-s) var(--space-l) var(--space-m) var(--space-m);
|
||||||
|
}
|
||||||
& ol {
|
& ol {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
padding-left: var(--space-m);
|
padding-left: var(--space-m);
|
||||||
|
& li {
|
||||||
|
font-size: var(--step--1);
|
||||||
|
& a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&[open] {
|
||||||
|
& summary::marker {
|
||||||
|
content: "✸ ";
|
||||||
|
font-size: var(--step--1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
& summary {
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: var(--font-family-ui);
|
||||||
|
font-size: var(--step--2);
|
||||||
|
font-variation-settings: "wght" 700;
|
||||||
|
letter-spacing: var(--wide-letter-spacing);
|
||||||
|
margin-left: -1.5em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
&::marker {
|
||||||
|
color: var(--contrast-color);
|
||||||
|
content: "✸ ";
|
||||||
|
font-size: var(--step--1);
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
After Width: | Height: | Size: 346 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 95 KiB |
BIN
public/img/ranch/vegan-ranch-dressing.webp
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
public/img/trauma-of-employment/Venetian-Glass-Workers.webp
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
public/img/what-would-you-do-if-you-didnt-have-to-work/ducc.webp
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
public/img/wild-berry-fizzy-pop-powder/diabolical.webp
Normal file
|
After Width: | Height: | Size: 91 KiB |
@@ -11,14 +11,12 @@
|
|||||||
</title>
|
</title>
|
||||||
<link rel="stylesheet" href="../css/index.css"/>
|
<link rel="stylesheet" href="../css/index.css"/>
|
||||||
<link rel="stylesheet" href="../css/webfonts/webfonts.css"/>
|
<link rel="stylesheet" href="../css/webfonts/webfonts.css"/>
|
||||||
<link rel="stylesheet" href="../css/post-list.css"/>
|
|
||||||
<link rel="stylesheet" href="../css/metadata.css"/>
|
<link rel="stylesheet" href="../css/metadata.css"/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
<h1>RSS Feed Preview</h1>
|
<h1 class="feed-preview">RSS Feed Preview</h1>
|
||||||
<p class="nodropcap page-block">This is an RSS feed. Subscribe by copying the URL from the address bar into your newsreader. Don’t have a newsreader? <a href="../about-feeds/">Learn more and get started</a>. It’s free. Below is a preview of what you’ll see in your newsreader when you subscribe. Done here? <a href="../">Go back to nathanupchurch.com</a></p>
|
<p class="nodropcap page-block">This is an RSS feed. Subscribe by copying the URL from the address bar into your newsreader. Don’t have a newsreader? <a href="../about-feeds/">Learn more and get started</a>. It’s free. Below is a preview of what you’ll see in your newsreader when you subscribe. Done here? <a href="../">Go back to nathanupchurch.com</a></p>
|
||||||
<h2>Posts</h2>
|
|
||||||
<section class="postlist">
|
<section class="postlist">
|
||||||
<div class="postlist-item-container">
|
<div class="postlist-item-container">
|
||||||
<xsl:for-each select="/atom:feed/atom:entry">
|
<xsl:for-each select="/atom:feed/atom:entry">
|
||||||
@@ -40,7 +38,7 @@
|
|||||||
<xsl:attribute name="href">
|
<xsl:attribute name="href">
|
||||||
<xsl:value-of select="atom:link/@href"/>
|
<xsl:value-of select="atom:link/@href"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<h3>
|
<h3 class="postlist-link">
|
||||||
<xsl:value-of select="atom:title"/>
|
<xsl:value-of select="atom:title"/>
|
||||||
</h3>
|
</h3>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||