Compare commits
21 Commits
92e077bc57
...
NewStyle20
| Author | SHA1 | Date | |
|---|---|---|---|
| 677bf18e5b | |||
| 9938f0f8ff | |||
| 36d0305af1 | |||
| c28f4fdb77 | |||
| 163de4c46a | |||
| 9eed69252a | |||
| 8bd8f518d4 | |||
| 82f47093a7 | |||
| e728ddac2c | |||
| 0d40f6fb54 | |||
| 93a3ae7bf0 | |||
| a45890d660 | |||
| 58b04186ed | |||
| 54ed7902db | |||
| c054d0c3c9 | |||
| 9d9bfc895b | |||
| f4f3cb4e91 | |||
| 72f8eee9cd | |||
| 0909926bde | |||
| 874ec4c434 | |||
| 0cec181ec3 |
@@ -10,18 +10,16 @@ My blog, originally based on the very helpful eleventy-base-blog v8, although it
|
||||
* Pretty 401 and 403 error pages
|
||||
|
||||
### Fediverse Integration
|
||||
* Mastodon [toot embedding](https://upchur.ch/gitea/n_u/nathanupchurch.com/wiki/Home#embed-a-toot-from-mastodon-using-the-toot-shortcode)
|
||||
* Link to post discussion on Mastodon
|
||||
|
||||
### Indieweb
|
||||
* [Auto-generated linktree-style page](https://upchur.ch/gitea/n_u/nathanupchurch.com/wiki#me) for the blog owner with support for custom attributes such as: `rel="me"`
|
||||
* Built in support for [webring links](https://upchur.ch/gitea/n_u/nathanupchurch.com/wiki#webrings)
|
||||
* Auto-generated, **styled** RSS feeds
|
||||
* Auto-generated, *styled* RSS feeds
|
||||
* All blog posts
|
||||
* Each individual tag
|
||||
* /now page that nicely handles posts tagged with "now"
|
||||
* Blogroll generated from _data/blogroll.js, with an automatically updated .opml so that visitors can import every blog in the list
|
||||
* Image galleries
|
||||
|
||||
### Fun
|
||||
* Image galleries
|
||||
|
||||
@@ -304,6 +304,13 @@ export default {
|
||||
url: "https://www.neatorama.com/",
|
||||
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",
|
||||
feedUrl: "https://pudding.cool/rss.xml",
|
||||
@@ -350,7 +357,7 @@ export default {
|
||||
name: "Incense, Fragrance, and Perfumery",
|
||||
blogs: [
|
||||
{
|
||||
title: "Apothecary's Garden Blog",
|
||||
title: "Apothecary’s Garden Blog",
|
||||
feedUrl: "https://apothecarysgarden.com/blogs/blog.atom",
|
||||
url: "https://apothecarysgarden.com/blogs/blog",
|
||||
description:
|
||||
@@ -501,6 +508,13 @@ export default {
|
||||
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.",
|
||||
},
|
||||
{
|
||||
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",
|
||||
feedUrl: "https://www.usermag.co/feed",
|
||||
@@ -593,6 +607,14 @@ export default {
|
||||
description:
|
||||
"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",
|
||||
feedUrl: "https://www.mediaactivist.com/rss/",
|
||||
|
||||
@@ -1,4 +1,89 @@
|
||||
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",
|
||||
description: "Some stuff I've made in the kitchen.",
|
||||
|
||||
File diff suppressed because one or more lines are too long
51
_includes/articleAuthor.njk
Normal file
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>
|
||||
17
_includes/birb.njk
Normal file
17
_includes/birb.njk
Normal file
@@ -0,0 +1,17 @@
|
||||
<!-- Birb -->
|
||||
<script>
|
||||
const showBirb = () => {
|
||||
script = document.createElement('script');
|
||||
script.setAttribute("src", "https://cdn.jsdelivr.net/gh/IdreesInc/Pocket-Bird@main/dist/web/birb.embed.js");
|
||||
document.body.appendChild(script);
|
||||
};
|
||||
|
||||
const hideBirb = () => {
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
const noBirb = () => {
|
||||
console.info("Settings: Not showing birb :[");
|
||||
}
|
||||
</script>
|
||||
<!-- /Birb -->
|
||||
@@ -1,22 +1,25 @@
|
||||
<footer>
|
||||
<p>{% if metadata.copyrightNotice %}<span class="copyright-notice">{{ metadata.copyrightNotice }}</span>{% endif %}
|
||||
|
||||
{% if metadata.webrings %}<br>
|
||||
{% for webring in metadata.webrings %}
|
||||
<div class="footerContainer">
|
||||
<p>
|
||||
{% if metadata.copyrightNotice %}
|
||||
<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">
|
||||
{% if webring.previousURL %}<a href="{{ webring.previousURL }}">←</a>{% endif %}
|
||||
{% if webring.ringURL %}<a href="{{ webring.ringURL }}">{{ webring.name }}</a>{% endif %}
|
||||
{% if webring.nextURL %}<a href="{{ webring.nextURL }}">→</a>{% endif %}
|
||||
</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<span class="webring"><a href="/search/">Search</a></span>
|
||||
<span class="webring"><a href="/sitemap/">Sitemap</a></span>
|
||||
</span><br>
|
||||
{% endfor %}{% endif %}
|
||||
</div>
|
||||
<div class="linksContainer">
|
||||
{% 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>
|
||||
<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 "siteSettings.njk" %}
|
||||
</div>
|
||||
</footer>
|
||||
{% include "settings/siteSettings.njk" %}
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
<a href="#skip" class="visually-hidden">Skip to main content</a>
|
||||
<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 %}
|
||||
</header>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<!-- ISSO style -->
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<!-- /ISSO style -->
|
||||
@@ -13,18 +13,9 @@
|
||||
{% if tags and tags.includes('galleryImage') %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/gallery-images.css" />
|
||||
{% endif %}
|
||||
{% if tags and tags.includes('metadata') %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/metadata.css" />
|
||||
{% endif %}
|
||||
{% if tags and tags.includes('navigator') %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/navigator.css" />
|
||||
{% 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') %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/tags.css" />
|
||||
{% endif %}
|
||||
@@ -43,6 +34,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="/css/woo-mode.css" />
|
||||
{% if tags and tags.includes('quiz') %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/quiz.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/comments.css" />
|
||||
{% endif %}
|
||||
{% if includeTOC %}
|
||||
<link rel="stylesheet" type="text/css" href="/css/toc.css" />
|
||||
@@ -51,6 +43,7 @@
|
||||
<link rel="stylesheet" href="/pagefind/pagefind-ui.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/search.css" />
|
||||
{% endif %}
|
||||
<script src="/js/main.js"></script>
|
||||
<!-- Mochi webmentions -->
|
||||
<link rel="webmention" href="https://mochi-webmentions.meadow.cafe/webmention/mochi@upchur.ch/1/receive" />
|
||||
<!-- Indieweb profile links -->
|
||||
@@ -66,19 +59,28 @@
|
||||
<section>
|
||||
<article data-pagefind-body>
|
||||
<h1>{{ h1 }}</h1>
|
||||
<section>
|
||||
<details class="toc">
|
||||
<summary>Table of Contents</summary>
|
||||
{{ content | toc(tags=['h2', 'h3', 'h4'], wrapper='div') | removeHash | safe }}
|
||||
</details>
|
||||
</article>
|
||||
</section>
|
||||
{% endif %}
|
||||
<section>
|
||||
{{ content | safe }}
|
||||
</section>
|
||||
</article>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% if not includeTOC %}
|
||||
<section>
|
||||
{{ content | safe }}
|
||||
</section>
|
||||
{% endif %}
|
||||
</main>
|
||||
{% include "footer.njk" %}
|
||||
{% include "birb.njk" %}
|
||||
{% include "weather.njk" %}
|
||||
{% include "wooMode.njk" %}
|
||||
{% include "settings/settingsConfig.njk" %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -4,11 +4,11 @@ layout: layouts/linksPage.njk
|
||||
<div class="links-container h-card" data-pagefind-body>
|
||||
<img class="profilePic u-photo" src="{{ metadata.author.profilePic }}">
|
||||
<h1 class="socialTitle p-name">Nathan Upchurch</h1>
|
||||
<p class="page-block nodropcap">Beside what I do to earn a crust, among other things, I’m an incense maker and enthusiast, a classical trombonist, vegan cook, writer, mediocre photographer, and a fan of, advocate for, and occasional contributor to free and open source software. Here’s where you can find me on the internet:</p>
|
||||
<p class="page-block nodropcap">Here’s where you can find me on the internet:</p>
|
||||
<div class="socialLinks">
|
||||
{% for link in metadata.socialLinks %}
|
||||
<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>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
@@ -2,44 +2,39 @@
|
||||
layout: layouts/base.njk
|
||||
---
|
||||
<article class="post" data-pagefind-body>
|
||||
<h1>{{ title | markdownify | safe}}</h1>
|
||||
{% include "mastodonComments.njk" %}
|
||||
{% if not hideMetadata %}
|
||||
<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>
|
||||
<div class="hero-container">
|
||||
<div class="hero">
|
||||
<p class="post-taglist">
|
||||
{%- for tag in tags | filterTagList %}
|
||||
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
|
||||
<li>
|
||||
<a
|
||||
href="{{ tagUrl }}"
|
||||
class="post-tag">
|
||||
{{ tag }}
|
||||
</a>
|
||||
</li>
|
||||
<a href="{{ tagUrl }}">#{{ tag }} </a>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</p>
|
||||
<h1>{{ title | markdownify | safe}}</h1>
|
||||
{% if synopsis %}
|
||||
<p class="post-synopsis">
|
||||
{{ synopsis | markdownify | safe}}
|
||||
</p>
|
||||
{% endif %}
|
||||
{{ content | safe }}
|
||||
{% 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>
|
||||
{% if tags and not tags.includes('quiz') %}{{ content | safe }}{% endif %}
|
||||
</article>
|
||||
{% if tags and not tags.includes('quiz') %}
|
||||
{% include "articleAuthor.njk" %}
|
||||
{% include "mastodonComments.njk" %}
|
||||
{% endif %}
|
||||
{% include "issoCommenting.njk" %}
|
||||
|
||||
@@ -3,6 +3,12 @@ layout: layouts/post.njk
|
||||
structuredData: none
|
||||
---
|
||||
{{ 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">
|
||||
<form onsubmit="handleQuizSubmit(); return false">
|
||||
{% for question in questions %}
|
||||
|
||||
@@ -2,7 +2,15 @@
|
||||
<div class="continue-discussion">
|
||||
<a class="link-button" href="https://{{ metadata.mastodonHost }}/@{{ metadata.mastodonUser }}/{{ mastodon_id }}">
|
||||
<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 »
|
||||
</button>
|
||||
</a>
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
<meta name="generator" content="{{ eleventy.generator }}">
|
||||
<link rel="alternate" href="/feed/feed.xml" type="application/atom+xml" title="{{ metadata.title }}">
|
||||
<link rel="alternate" href="/feed/feed.json" type="application/json" title="{{ metadata.title }}">
|
||||
<script type="module" src="/js/main.js"></script>
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
<nav>
|
||||
<div class="nav-elements-grid-container">
|
||||
<div class="nav-elements-container">
|
||||
<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>
|
||||
{% if tags and tags.includes('posts') and not tags.includes('quiz') and not hideBlogTitleFromHeader%}
|
||||
<a class="blog-name" href="/blog">
|
||||
{{ metadata.blogName }}
|
||||
</a>
|
||||
{% endif %}
|
||||
<ul class="nav">
|
||||
{%- 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>
|
||||
@@ -7,4 +19,6 @@
|
||||
<li class="subscribe nav-item"><a href="/feed/feed.xml">{% include "rssLogo.njk" %}Feed</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{% for link in metadata.navigatorLinks %}
|
||||
<div class="navigatorItem">
|
||||
<a href="{{ link.linkURL }}">
|
||||
<img alt="" src="{{ link.iconURL }}">
|
||||
{{ link.iconSVG | safe }}
|
||||
<p>{{ link.linkDisplay }}</p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{% set numPages = pagination.pages | length %}
|
||||
<span class=buttonContainer>
|
||||
{% if pagination.pageNumber > 0 %}
|
||||
<a href="/{{ paginationRootDir }}/{% if pagination.pageNumber > 1%}page-{{ pagination.pageNumber }}/{% endif %}">
|
||||
<button type="button">← Previous</button>
|
||||
@@ -7,6 +8,7 @@
|
||||
|
||||
{% if pagination.pageNumber < numPages - 1 %}
|
||||
<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>
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
<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">
|
||||
{% for post in postslist %}
|
||||
<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">
|
||||
{% if not postListTypeMicroblog %}
|
||||
<a href="{{ post.url }}" class="postlist-link">
|
||||
@@ -23,6 +14,13 @@
|
||||
</a>
|
||||
{% 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-copy">
|
||||
<p>
|
||||
@@ -32,30 +30,25 @@
|
||||
<a href="{{ post.data.author.url }}">
|
||||
{% endif %}
|
||||
{% if post.data.author.name %}
|
||||
By {{ post.data.author.name }}
|
||||
{{ post.data.author.name }}
|
||||
{% endif %}
|
||||
{% if post.data.author.url %}</a> •
|
||||
{% endif %}
|
||||
{% else %}<a href="{{ metadata.author.url }}">By {{ metadata.author.name }}</a> •
|
||||
{% else %}<a href="{{ metadata.author.url }}">{{ metadata.author.name }}</a> •
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
||||
</p>
|
||||
<ul>
|
||||
{%- for tag in post.data.tags | filterTagList %}
|
||||
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
|
||||
<li>
|
||||
<a
|
||||
href="{{ tagUrl }}"
|
||||
class="post-tag">
|
||||
{{ tag }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% 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>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</article>
|
||||
<hr>
|
||||
{% endfor %}
|
||||
|
||||
4
_includes/settings/controllers/birbController.njk
Normal file
4
_includes/settings/controllers/birbController.njk
Normal file
@@ -0,0 +1,4 @@
|
||||
<form class="siteSettingsToggle" id="birbController">
|
||||
<input type="checkbox" id="birbToggle" {% if metadata.weatherOnByDefault %}checked{% endif %} />
|
||||
<label for="birbToggle">Pet bird (Will refresh page when turned off)</label>
|
||||
</form>
|
||||
@@ -1,4 +1,4 @@
|
||||
<form class="siteSettingsToggle" id="weatherController">
|
||||
<input type="checkbox" id="weatherToggle" {% if metadata.weatherOnByDefault %}checked{% endif %} />
|
||||
<label for="weatherToggle">Show weather?</label>
|
||||
<label for="weatherToggle">Weather</label>
|
||||
</form>
|
||||
@@ -1,4 +1,4 @@
|
||||
<form class="siteSettingsToggle" id="wooModeController">
|
||||
<input type="checkbox" id="wooToggle" {% if metadata.wooModeOnByDefault %}checked{% endif %} />
|
||||
<label for="wooToggle">Woo mode?</label>
|
||||
<label for="wooToggle">Woo mode</label>
|
||||
</form>
|
||||
37
_includes/settings/settingsConfig.njk
Normal file
37
_includes/settings/settingsConfig.njk
Normal file
@@ -0,0 +1,37 @@
|
||||
<!-- Site Settings -->
|
||||
<script>
|
||||
const weatherSettings = {
|
||||
handleOnToggle: turnOnWeather,
|
||||
handleOnDefault: turnOnWeather,
|
||||
handleOffToggle: turnOffWeather,
|
||||
handleOffDefault: turnOffWeather,
|
||||
settingToggle: "weatherToggle",
|
||||
preferenceName: "weather",
|
||||
defaultSetting: {{ metadata.weatherOnByDefault }},
|
||||
forcedOn: false,
|
||||
};
|
||||
const wooModeSettings = {
|
||||
handleOnToggle: deployWoo,
|
||||
handleOnDefault: wooSensibleDefault,
|
||||
handleOffToggle: withdrawWoo,
|
||||
handleOffDefault: withdrawWoo,
|
||||
settingToggle: "wooToggle",
|
||||
preferenceName: "wooMode",
|
||||
defaultSetting: {% if forcedWoo %}true{% else %}false{% endif %},
|
||||
forcedOn: {% if forcedWoo %}true{% else %}false{% endif %},
|
||||
};
|
||||
const petBirbSettings = {
|
||||
handleOnToggle: showBirb,
|
||||
handleOnDefault: showBirb,
|
||||
handleOffToggle: hideBirb,
|
||||
handleOffDefault: noBirb,
|
||||
settingToggle: "birbToggle",
|
||||
preferenceName: "petBirb",
|
||||
defaultSetting: false,
|
||||
forcedOn: false,
|
||||
};
|
||||
settingHandler(weatherSettings);
|
||||
settingHandler(wooModeSettings);
|
||||
settingHandler(petBirbSettings);
|
||||
</script>
|
||||
<!-- /Site Settings -->
|
||||
9
_includes/settings/siteSettings.njk
Normal file
9
_includes/settings/siteSettings.njk
Normal file
@@ -0,0 +1,9 @@
|
||||
<div id="siteSettingsContainer">
|
||||
<dialog id="siteSettings">
|
||||
<h2>Site Settings</h2>
|
||||
{% include "settings/controllers/birbController.njk" %}
|
||||
{% include "settings/controllers/weatherController.njk" %}
|
||||
{% include "settings/controllers/wooModeController.njk" %}
|
||||
<button id="settingsDone" onclick="siteSettings.close();">Done</button>
|
||||
</dialog>
|
||||
</div>
|
||||
@@ -1,9 +0,0 @@
|
||||
<div id="siteSettingsContainer">
|
||||
<button onclick="siteSettings.showModal();">Site Settings</button>
|
||||
<dialog id="siteSettings">
|
||||
<h2>Site Settings</h2>
|
||||
{% include "weatherController.njk" %}
|
||||
{% include "wooModeController.njk" %}
|
||||
<button id="settingsDone" onclick="siteSettings.close();">Done</button>
|
||||
</dialog>
|
||||
</div>
|
||||
@@ -18,17 +18,16 @@
|
||||
{% endif %}
|
||||
|
||||
{% if metadata.author.url %}
|
||||
</a><br />
|
||||
</a>
|
||||
{% endif %}
|
||||
• {{ status.date | niceDate }}<br />
|
||||
</span>
|
||||
|
||||
{% if status.data.comment %}
|
||||
{{ status.data.comment | markdownify | safe }}<br />
|
||||
|
||||
<span class="status-metadata">
|
||||
{{ status.date | niceDate }}
|
||||
</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- weather -->
|
||||
<!-- Based on https://codepen.io/codeconvey/pen/xRzQay -->
|
||||
{# This include causes a symbol (text, emoji, et cetera; from metadata.weatherSymbol) to fall from the top of the viewport like snow. #}
|
||||
<div class="fallingObjects" id="weather" aria-hidden="true">
|
||||
<div class="fallingObjects hidden" id="weather" aria-hidden="true">
|
||||
<div class="fallingObject">
|
||||
<div>{{ metadata.weatherSymbol }}</div>
|
||||
</div>
|
||||
@@ -35,28 +35,14 @@
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const weather = document.getElementById("weather");
|
||||
const weatherToggle = document.getElementById("weatherToggle");
|
||||
const weatherPreference = localStorage.getItem("weather");
|
||||
|
||||
// Initial weather preference check on page load
|
||||
if ({% if metadata.weatherOnByDefault == false %}!weatherPreference || {% endif %}weatherPreference == 0) {
|
||||
weather.classList.add("hidden");
|
||||
weatherToggle.checked = false;
|
||||
} else {
|
||||
const turnOnWeather = (containerId) => {
|
||||
const container = document.getElementById(containerId);
|
||||
weather.classList.remove("hidden");
|
||||
weatherToggle.checked = true;
|
||||
};
|
||||
}
|
||||
|
||||
// Handle weather setting toggle
|
||||
weatherToggle.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
localStorage.setItem("weather", 1);
|
||||
weather.classList.remove("hidden");
|
||||
} else {
|
||||
localStorage.setItem("weather", 0);
|
||||
const turnOffWeather = (containerId) => {
|
||||
const container = document.getElementById(containerId);
|
||||
weather.classList.add("hidden");
|
||||
};
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<!-- /weather -->
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!-- Based on https://codepen.io/tommyho/pen/JjgoZLK -->
|
||||
{# This include replaces the page background with a crazy rainbow animated shader #}
|
||||
|
||||
<canvas id="shaderCanvas"></canvas>
|
||||
<canvas class="hidden" id="shaderCanvas"></canvas>
|
||||
<script src="/js/three.min.js"></script>
|
||||
<script>
|
||||
let scene, camera, renderer, uniforms, material, mesh;
|
||||
@@ -171,30 +171,11 @@
|
||||
uniforms.time.value = timestamp * 0.001;
|
||||
renderer.render(scene, camera);
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
const wooCanvas = document.getElementById("shaderCanvas");
|
||||
const wooToggle = document.getElementById("wooToggle");
|
||||
const wooPreference = localStorage.getItem("wooMode");
|
||||
let forcedWoo = false;
|
||||
|
||||
// Initial preference check on page load
|
||||
if ({% if metadata.wooModeOnByDefault == false %}!wooPreference || {% endif %}wooPreference == 0) {
|
||||
forcedWoo ? null : wooCanvas.classList.add("hidden");
|
||||
wooToggle.checked = false;
|
||||
} else {
|
||||
wooCanvas.classList.remove("hidden");
|
||||
wooToggle.checked = true;
|
||||
initWoo();
|
||||
animate(0);
|
||||
};
|
||||
|
||||
// Handle setting toggle
|
||||
wooToggle.addEventListener('change', function() {
|
||||
if (this.checked) {
|
||||
localStorage.setItem("wooMode", 1);
|
||||
|
||||
// Function for when wooMode is toggled on
|
||||
const deployWoo = () => {
|
||||
let wooAudio = new Audio("/audio/30995__unclesigmund__woo-2.mp3");
|
||||
wooAudio.volume = 0.4;
|
||||
wooAudio.play();
|
||||
@@ -202,21 +183,19 @@
|
||||
wooCanvas.classList.remove("hidden");
|
||||
initWoo();
|
||||
animate(0);
|
||||
} else {
|
||||
localStorage.setItem("wooMode", 0);
|
||||
forcedWoo ? null : wooCanvas.classList.add("hidden");
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
{% if forcedWoo %}
|
||||
// Handle forced woo
|
||||
forcedWoo = true;
|
||||
console.log("Forcing woo mode: woo!");
|
||||
// Function for when wooMode is enabled by default
|
||||
const wooSensibleDefault = () => {
|
||||
wooCanvas.classList.remove("hidden");
|
||||
initWoo();
|
||||
animate(0);
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
// Function for when wooMode is toggled off
|
||||
const withdrawWoo = () => {
|
||||
wooCanvas.classList.add("hidden");
|
||||
}
|
||||
|
||||
</script>
|
||||
<!-- /weather -->
|
||||
<!-- /Woo Mode -->
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
---
|
||||
layout: layouts/post.njk
|
||||
title: How to Use Feeds
|
||||
layout: layouts/base.njk
|
||||
title: Nathan Upchurch | How to Use Feeds
|
||||
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/)*.
|
||||
|
||||
@@ -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.
|
||||
|
||||
</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>
|
||||
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>
|
||||
<span class="buttonContainer">
|
||||
<a href="./colophon/">
|
||||
<button type="button">Colophon »</button>
|
||||
<button type="button">Colophon</button>
|
||||
</a>
|
||||
|
||||
<a href="../me/">
|
||||
<button type="button">Contact »</button>
|
||||
<button type="button">Contact</button>
|
||||
</a>
|
||||
|
||||
<a href="./privacy/">
|
||||
<button type="button">Privacy »</button>
|
||||
<button type="button">Privacy</button>
|
||||
</a>
|
||||
|
||||
</span>
|
||||
</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:
|
||||
|
||||
## 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
|
||||
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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default {
|
||||
tags: ["posts", "metadata", "profilePic", "tags"],
|
||||
tags: ["posts", "metadata", "profilePic", "tagList"],
|
||||
layout: "layouts/post.njk",
|
||||
};
|
||||
|
||||
@@ -10,6 +10,9 @@ imageAlt: "What appears to be a pack of cigarettes labeled 11:11. There is also
|
||||
synopsis: "Taking a look at Boy Vienna's viral cigarette incense sticks."
|
||||
mastodon_id: "114462578542598320"
|
||||
---
|
||||
::: info
|
||||
Update: Boy Vienna's 11:11 sticks have since also been reviewed on [rauchfahne.de](https://blog.rauchfahne.de/en/2025/11/29/boy-vienna-1111-en/).
|
||||
:::
|
||||
[Boy Vienna](https://boyvienna.com/) is a brand from fashion designer and multi-media artist [Afaf Fi Seyam](https://www.instagram.com/zeopatra) that has been receiving attention on [TikTok](https://www.tiktok.com/@boyvienna/video/7366977382508514603) and [Instagram](https://www.instagram.com/zeopatra/reel/DAyIy2Lv0RQ/) for its incense cigarettes. As opposed to the tobacco variety, these "cigarettes" are designed to be lit and allowed to burn like an incense-stick; they are not to be inhaled. I knew I was going to have to try these sticks the minute they found their way onto my screen—it would seem that [everyone else felt the same way](https://www.instagram.com/zeopatra/p/DJHP0a3NnlI/), as when I made my way to the web store most of Boy Vienna's incense varieties were sold out. For 35 {{ "USD" | abbr("United States Dollars") | safe }}, I was able to snag a box of the 11:11 variety, listed as containing a blend of sage, lavender, and rosemary.
|
||||
|
||||
[](/img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_2.webp)
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
title: "Incense Review: Hippy Hug, Lavender Française, and White Sage Mage by The World Makes Scents"
|
||||
description: "Reviewing Hippy Hug, Lavender Française, and White Sage Mage from The World Makes Scents"
|
||||
date: 2026-04-26
|
||||
tags:
|
||||
- Incense
|
||||
- Incense Review
|
||||
synopsis: "Reviewing Hippy Hug, Lavender Française, and White Sage Mage from The World Makes Scents."
|
||||
imageURL: /img/TWMS2026/the-world-makes-scents-incense.webp
|
||||
imageAlt: "A closeup of The World Makes Scents' new incense packaging with a few loose cones."
|
||||
mastodon_id: "116474428801255815"
|
||||
---
|
||||
In the interest of transparency: as readers may recall, I
|
||||
[paid Dave a visit](/blog/visiting-chicago-incense-maker-dave-of-the-world-makes-scents/)
|
||||
at the company's workshop in 2024. Since then, I've been back several times and
|
||||
we remain friends, trading ingredients, incense, and knowledge. I also received
|
||||
this incense for free. Despite this, as always, I will do my best to be
|
||||
objective.
|
||||
|
||||
[](/img/TWMS2026/the-world-makes-scents-incense.webp)
|
||||
|
||||
## Hippy Hug Sticks
|
||||
|
||||
First of all I'd like to point out that TWMS has updated their packaging. It's
|
||||
vibrant, colorful, and fun. The illustration on the *Hippy Hug* packaging is,
|
||||
however, clearly AI generated, which [I have some feelings about](ai/), but the
|
||||
overall effect is playful and creative, which I find refreshing.
|
||||
|
||||
The 12 thick sticks are wrapped in colorful paper inside TWMS' trademark
|
||||
jewelry box—an improvement on the synthetic batting material which would
|
||||
sometimes cling to the sticks. I'm struck right away, as I was with each
|
||||
variety in today's selection, by the strength of fragrance from the unlit
|
||||
incense. With *Hippy Hug*, I get a lovely hit of clove and patchouli. The sticks
|
||||
are about 4mm in diameter, and dark brown, with a rather coarse texture.
|
||||
They're also solid, with little give and no crumbling or breakage in the
|
||||
package.
|
||||
|
||||
On lighting smoky, patchouli, and sweet vanillic notes emerge. Clove follows as
|
||||
the initial burst of smoke recedes into a surprisingly gentle stream from the
|
||||
large stick. If you're familiar with sweet patchoui fragrances, such as
|
||||
*Patchouli* from Shoyeido's *Overtones* collection, *Hippy* *Hug* doesn't quite
|
||||
match this profile. While the sweetness is clear, this stick somehow leans dry,
|
||||
leaving room for the clove to mingle with what I assume is a wood binder
|
||||
(binders no longer appear to be listed on the ingredients) to make a
|
||||
spicy/smoky effect.
|
||||
|
||||
The patchouli seems to have been used judiciously: just enough to make the
|
||||
composition work. There is undoubtedly a 'campfire' aspect to this stick,
|
||||
but it comes across as more woodsmoke than that riproaring, herbaceous
|
||||
burning-vegetation note that you get when you overdose anything leafy. In
|
||||
addition to patchouli, sandalwood, benzoin, and clove, the ingredients also
|
||||
note the inclusion of frankincense. When I look for it, I think I may be able
|
||||
to identify something of a resin-note in the fragrance, but it's certainly not
|
||||
jumping out at me. The sandalwood is also a background player here.
|
||||
|
||||
I'd really been looking forward to trying this latest take on patchouli from
|
||||
TWMS since I learned that the team was revising and upgrading some of their old
|
||||
single-note formulas. I wasn't disappointed. As perhaps reflected by the name
|
||||
change, while still a patchouli fragrance, the new iteration has evolved from a
|
||||
single-note stick into an honest-to-god composition, and I'm here for it.
|
||||
|
||||
## Lavender Française
|
||||
|
||||
The fragrance of the unlit cones is lovely; a juicy lavender note with a hint
|
||||
of Australian sandalwood. This is a markedly less complex fragrance than *Hippy
|
||||
Hug,* but what it lacks in complexity is makes up for in clarity. It's
|
||||
impressively lavender-forward while somehow avoiding much of the harshness that can
|
||||
come from lavender flowers. A pleasant benzoin sweetness underscores the floral
|
||||
note. I don't notice much of a sandalwood fragrance in the burn.
|
||||
|
||||
Like any wood-based cone, you won't want to sit right next to this incense, but
|
||||
then again you don't need to. Even in my large office, with relatively little
|
||||
airflow, the fragrance traverses the distance from the incense table to the
|
||||
computer desk with little trouble. Giving this cone some room to breathe nets a
|
||||
relatively clean, room-filling fragrance. There does seem to be a wood binder
|
||||
note that somewhat muddies the waters, but it's not terribly obtrusive.
|
||||
|
||||
The fragrance naturally becomes a little rough around the edges as the diameter
|
||||
increases near the base of the cone, and the formerly modest smoke production
|
||||
ramps up quite seriously. That said, the formula seems to handle the change in
|
||||
diameter well. As the ember travels down the cone, the lavender begins to
|
||||
exchange its juicy, fruity character for a more herbal, camphoraceous scent.
|
||||
The fragrance also becomes more smoky, as is to be expected. In contrast to
|
||||
some of the cheap wood-and-synthetic-fragrance based cones I've tried, the
|
||||
effect here is more that of an evolving fragrance than a devolving one. I think
|
||||
I'd still prefer a stick, but I'd be lying if I said that I didn't enjoy this
|
||||
experience.
|
||||
|
||||
## White Sage Mage
|
||||
|
||||
The fragrance of the unlit cones is a pleasant sage note. I don't get any
|
||||
sandalwood this time for whatever reason. The fragrance immediately after
|
||||
lighting is sage forward, herbaceous, and a touch smoky, although significantly
|
||||
less so than burning a sage bundle. I never could understand why people insist
|
||||
on burning sage bundles for fragrance. The result of such a large amount of
|
||||
herbs burning at once is, for me, overwhelmingly rough and unpleasant. I much
|
||||
prefer this format: carefully processed sage included in a combustible incense
|
||||
as part of a well considered formula. It's cleaner, and as sage happens to be a
|
||||
very potent herb, it still offers more than enough of a sage fragrance. In
|
||||
fact, like *Lavender Française*, the star botanical almost entirely comprises
|
||||
the fragrance here.
|
||||
|
||||
The inclusion of a little lavender in these cones is a nice addition—the floral
|
||||
note lifts the fragrance from poultry-seasoning territory (always a risk with
|
||||
sage). The ingredients also note the inclusion of frankincense, but I couldn't
|
||||
pick it out; I suspect it may have been included to regulate the burn
|
||||
temperature somewhat. Again, the fragrance has no trouble filling the room.
|
||||
This cone is also subject to the pitfalls of the format, but it handles them
|
||||
fairly well.
|
||||
|
||||
## Conclusion
|
||||
|
||||
After experiencing this selection, I remain impressed at the quality of
|
||||
fragrance that The World Makes Scents is able to produce with carefully
|
||||
processed whole botanicals. As one of the very few incense brands on the market
|
||||
that you can be sure uses no synthetics or concentrates, it remains my go-to
|
||||
recommendation for people seeking an entirely natural combustible incense in
|
||||
the U.S.A.
|
||||
|
||||
While the brand's cones are, in my opinion, some of the better examples of the
|
||||
format, I still do recommend that people nab a
|
||||
[censer](https://shoyeido.com/products/incense-holder-bowl), some
|
||||
[ash](https://shoyeido.com/products/accessory-miyakohai-ash), and buy sticks
|
||||
where possible.[^1]
|
||||
|
||||
|
||||
[^1]: Unfortunately, when I made my order almost all of the sticks
|
||||
were out of stock on the [website](https://theworldmakesscents.com/), and I am
|
||||
trying to wean myself off of Amazon
|
||||
[for](https://en.wikipedia.org/wiki/Criticism_of_Amazon)
|
||||
[ethical](https://www.ethicalconsumer.org/retailers/ten-reasons-avoid-amazon)
|
||||
[reasons](https://socialjusticebooks.org/about/why-boycott-amazon/).
|
||||
|
||||
@@ -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
|
||||
layout: layouts/base.njk
|
||||
hideBlogTitleFromHeader: true
|
||||
title: "The Stochastic Bletherist | The Personal Blog of Nathan Upchurch"
|
||||
tags:
|
||||
- metadata
|
||||
@@ -19,31 +20,28 @@ paginationRootDir: blog
|
||||
<h1>The Stochastic Bletherist</h1>
|
||||
|
||||
<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 />
|
||||
|
||||
<a href="/tags/">
|
||||
<button type="button">Topics »</button>
|
||||
</a>
|
||||
<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="../blogroll/">
|
||||
<button type="button">Blogroll »</button>
|
||||
<button type="button">Blogroll</button>
|
||||
</a>
|
||||
<a href="/search/">
|
||||
<button type="button">Search</button>
|
||||
</a>
|
||||
<a href="/tags/">
|
||||
<button type="button">Topics</button>
|
||||
</a>
|
||||
</div>
|
||||
</p>
|
||||
|
||||
<h2>What’s New:</h2>
|
||||
{% else %}
|
||||
<h1>The Stochastic Bletherist Blog</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 />
|
||||
<h1>The Stochastic Bletherist</h1>
|
||||
|
||||
<a href="/tags/">
|
||||
<button type="button">Topics »</button>
|
||||
</a>
|
||||
<a href="../blogroll/">
|
||||
<button type="button">Blogroll »</button>
|
||||
</a>
|
||||
<p class="page-block nodropcap">
|
||||
<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.
|
||||
</p>
|
||||
|
||||
<h2>More posts:</h2>
|
||||
<h2 class="postlist-header">More posts:</h2>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
42
content/blog/revisiting-sweet-agarwood.md
Normal file
42
content/blog/revisiting-sweet-agarwood.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: "Revisiting Sweet Agarwood, and a Bonus Quiz"
|
||||
description: "Another attempt at making a sweet-agarwood style incense stick using agarwood skins."
|
||||
date: 2026-04-26
|
||||
tags:
|
||||
- Incense
|
||||
- Incense Making
|
||||
- Incense Builds (Recipes)
|
||||
synopsis: "Another attempt at making a sweet-agarwood style incense stick using agarwood skins."
|
||||
imageURL: /img/incense-recipe-an-attempt-at-a-sweet-agarwood-incense-stick/agarwood-skins.webp
|
||||
imageAlt: "Small flat slivers, or skins, of agarwood showing darker resinated wood streaked with white unresinated wood."
|
||||
mastodon_id: "116474435778369320"
|
||||
---
|
||||
My [last attempt](/blog/incense-recipe-an-attempt-at-a-sweet-agarwood-incense-stick/#fn2) at a sweet agarwood stick was okay but, as I noted, there was room for improvement. My goals with the original build were to create a decent amount of agarwood fragrance, while mitigating the harsh note that comes with cheaper wood. Following my notes from the old build, my new objectives are to increase the amount of agarwood fragrance, reduce sweetness, and add complexity.
|
||||
|
||||
### The Build
|
||||
|Ingredient |Grams|% of Build|
|
||||
|------------------------|-----|----------|
|
||||
|Agarwood |3 |24.90% |
|
||||
|Benzoin Siam |0.4 |3.32% |
|
||||
|Borneol Camphor |0.7 |5.81% |
|
||||
|Cassia |1.0 |8.30% |
|
||||
|Clove |1.2 |9.96% |
|
||||
|Guar Gum |0.35 |2.90% |
|
||||
|Musk Root |0.4 |3.32% |
|
||||
|Santalum album |4.0 |33.20% |
|
||||
|Santalum spicatum |1.0 |8.30% |
|
||||
|
||||
First of all, I included S. album *and* S. spicatum this time. I was curious to try Indian sandalwood in this version, but I also wanted to use at least a little of my superfine Australian sandalwood powder because of how it helps to make a smooth, easily extruded dough.
|
||||
|
||||
### Results
|
||||
Rather than extruding sticks right away, I decided to burn the powder as an incense-seal to trial it. Once again, the incense is very sweet. Adding a heaping helping of S. album surely didn't help this, but I think it may be time to consider forgoing the benzoin altogether. I'm not sure I like musk root with benzoin either.
|
||||
|
||||
The spices are there but, as everything is muddied by the excessive sweetness, it's hard to form an opinion on the spice levels. That said, this attempt is definitely missing something. I think I may include anise in a future iteration.
|
||||
|
||||
I like the level of camphor; the coolness is close to something like Yamadamatsu's *Suifu*, although I will have to wait and see how I like it without the benzoin. One thing I do miss from *Suifu* is that rich, sort of dried-fruit note. My guess is that this comes from using a better quality agarwood.
|
||||
|
||||
I am happier with the quantity of agarwood this time. There is still a harshness to the agarwood fragrance when the incense is burning nearby, but with a little distance everything mellows out significantly. The agarwood is pretty distinctly sour, which I'm not the biggest fan of, but I don't think there's much I can do about that as it seems to be a characteristic of the wood I'm using. So although I'm not a great fan of this particular wood in combustible incense, it's showing up and doing what it's supposed to, and I'm just going to have to be content with that.
|
||||
|
||||
## Bonus: take the incense ingredient quiz!
|
||||
|
||||
After building [the quiz feature](/quizzes/) something like a year ago, I have finally gotten around to making another quiz! This time, it's a test of your whole-botanical incense ingredient knowledge. So if you think you know your lavender from your labdanum, why not test your mettle and [give it a shot](/quizzes/incense-ingredient-quiz/)?
|
||||
45
content/blog/vegan-ranch-dressing.md
Normal file
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
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,32 @@ h1: Changelog
|
||||
includeTOC: true
|
||||
---
|
||||
## 2026
|
||||
### May
|
||||
* 2026-05-26
|
||||
* Updated [blogroll](/blogroll).
|
||||
* Updated [/links](/links).
|
||||
* 2026-05-15
|
||||
* Updated [/links](/links).
|
||||
* 2026-05-12
|
||||
* Implement pet bird in settings.
|
||||
* Refactor settings implementation. As a result:
|
||||
* Weather now no longer active by default for users with JavaScript disabled.
|
||||
* Settings check-boxes are disabled when the site has a hard setting default which ignores user preferences (such as in the case of the [Woo-Woo Incense Description Generator](/special/woo-woo-incense-description-generator/) page, which should always have woo-mode enabled).
|
||||
* 2026-05-03
|
||||
* Updated [/incense](/incense).
|
||||
|
||||
### April
|
||||
* 2026-04-27
|
||||
* Improved the appearance of the site settings modal and backdrop, including a nice fade-in effect.
|
||||
* 2026-04-26
|
||||
* Updated [/incense](/incense).
|
||||
* Updated weather to cherry blossoms for spring.
|
||||
* 2026-04-23
|
||||
* Updated [/referrals](/referrals).
|
||||
* Updated [/links](/links).
|
||||
* Updated [/incense](/incense).
|
||||
* 2026-04-20
|
||||
* Updated [/links](/links).
|
||||
* 2026-04-17
|
||||
* Added tables of contents to list pages where it makes sense.
|
||||
* Refactored CSS so that unnecessary styles are not loaded on every page.
|
||||
|
||||
@@ -18,15 +18,15 @@ eleventyComputed:
|
||||
<div class="buttonContainer galleryButtons">
|
||||
{% if picture.previousImage %}
|
||||
<a href="../{{ picture.previousImage | slugify }}">
|
||||
<button type="button">Previous</button>
|
||||
<button type="button">← Previous</button>
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="/gallery/{{ picture.containingGallery | slugify }}/">
|
||||
<button type="button">Gallery</button>
|
||||
<button type="button">🕮 Gallery</button>
|
||||
</a>
|
||||
{% if picture.nextImage %}
|
||||
<a href="../{{ picture.nextImage | slugify }}">
|
||||
<button type="button">Next</button>
|
||||
<button type="button">Next →</button>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
layout: layouts/base.njk
|
||||
title: Nathan Upchurch | Guestbook
|
||||
structuredData: none
|
||||
tag: guestbook
|
||||
tags:
|
||||
- guestbook
|
||||
---
|
||||
<h1>Sign My Guestbook</h1>
|
||||
<!-- Guestbook Script -->
|
||||
|
||||
@@ -48,6 +48,7 @@ Incense making is hard. While parts of the world with strong incense cultures en
|
||||
* [*Bakhour (Turaren Wuta) In Nigeria*, Dr Ruqayya Abba Tofa](https://www.fragrantica.com/news/Bakhour-Turaren-Wuta-In-Nigeria-21456.html)
|
||||
* [*Bakhour (Turaren Wuta) in Nigeria (Part 2)*, Dr Ruqayya Abba Tofa](https://www.fragrantica.com/news/Bakhour-Turaren-Wuta-in-Nigeria-Part-2-21989.html)
|
||||
* [Chinese incense ingredient name translations](https://web.archive.org/web/20230216230731/https://talesofincense.com/scent-materia/)
|
||||
* [*Goose Pear Tent Incense*, Be-en-Foret](https://mermadearts.com/i/chinese-goose-pear-tent-incense)
|
||||
* [*Japanese Incense Types*, Kyarazen](https://www.kyarazen.com/japanese-incense-types-in-modern-day/)
|
||||
* [*Pressed Incense Tablets*, Kyarazen](https://www.kyarazen.com/pressed-incense-tablets/)
|
||||
* [*The Wisdom of Traditional Processing Methods*, Dr. Incense](https://dr-incense.com/blogs/dr-incense-blog/the-wisdom-of-traditional-processing-methods)
|
||||
@@ -103,6 +104,7 @@ Incense making is hard. While parts of the world with strong incense cultures en
|
||||
* [Tame the Spirit Herbs (USA)](https://tamethespiritherbs.com/)—Herbs, Resins, Woods
|
||||
* [The Incense Dragon (USA)](https://www.theincensedragon.com/supplies)—Herbs, Resins, Woods
|
||||
* [The World Makes Scents (USA)](https://theworldmakesscents.com/)—Herbs, Resins, Woods
|
||||
* [Youherbit (Greece)](https://www.youherbit.com/)—Herbs, Resins, Woods
|
||||
|
||||
|
||||
## Studies on Incense and Related Topics
|
||||
@@ -116,6 +118,7 @@ Incense making is hard. While parts of the world with strong incense cultures en
|
||||
* [The Incense Makers' Guild](https://incensemakers.org/)—An invitation-only forum for experienced incense makers hosted by yours truly. Currently pretty quiet, but some good info can be found there already.
|
||||
|
||||
## Fun
|
||||
* [Incense Ingredient Quiz](/quizzes/incense-ingredient-quiz/)
|
||||
* [Woo-Woo Incense Description Generator](/special/woo-woo-incense-description-generator)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
---
|
||||
layout: layouts/home.njk
|
||||
eleventyNavigation:
|
||||
key: Home
|
||||
order: 1
|
||||
---
|
||||
{% include "navigator.njk" %}
|
||||
|
||||
@@ -6,12 +6,17 @@ h1: Links
|
||||
includeTOC: true
|
||||
---
|
||||
Here are some links to pages and resources that I believe are worth sharing.
|
||||
## Design tools and resources
|
||||
### Education
|
||||
## Creative resources
|
||||
### 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/)
|
||||
### Reference
|
||||
#### Reference
|
||||
* [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
|
||||
* [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
|
||||
@@ -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
|
||||
* [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
|
||||
### Stock graphics
|
||||
#### Stock graphics
|
||||
* [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
|
||||
* [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
|
||||
* [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
|
||||
* [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
|
||||
### Typefaces
|
||||
#### Typefaces
|
||||
* [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
|
||||
* [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
|
||||
* [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
|
||||
* [Autistici](https://www.autistici.org/)—A collective offering free digital services, including:
|
||||
* Anonymity services
|
||||
@@ -259,3 +270,8 @@ Unlimited creativity, zero ads.
|
||||
* VPN
|
||||
## Random cool stuff
|
||||
* [intertapes.net](https://intertapes.net/)—An updating collection of found cassette tapes from different locations. The audio fragments include: voice memos, field recordings, mixtapes, bootlegs and more.
|
||||
* [Pocket Bird](https://idreesinc.itch.io/pocket-bird)—A pet bird that flies around web pages as you browse. Collect feathers to unlock different birds, and find hats for your bird to wear.
|
||||
## Sounds & Samples
|
||||
* [FreeSound](https://freesound.org/)
|
||||
* [LooperMan](https://www.looperman.com/)
|
||||
* [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.
|
||||
* [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.
|
||||
* [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.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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
|
||||
* [Friendswood Brooms](https://friendswoodbrooms.com/)—Handmade corn brooms.
|
||||
* [Meckley Brooms](https://www.meckleybrooms.com/)—Handmade corn brooms.
|
||||
|
||||
7
content/now-burning/Now Burning_2026-04-18_19:16.md
Normal file
7
content/now-burning/Now Burning_2026-04-18_19:16.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Nag Champa Cotton Candy
|
||||
manufacturer: Satya
|
||||
date: 2026-04-18 19:15:00
|
||||
time: 7:15 PM
|
||||
---
|
||||
Smells like burning sugar.
|
||||
7
content/now-burning/Now Burning_2026-04-27_10:18.md
Normal file
7
content/now-burning/Now Burning_2026-04-27_10:18.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Suzaku
|
||||
manufacturer: Gyokushodo
|
||||
date: 2026-04-27 10:18:00
|
||||
time: 10:18 AM
|
||||
---
|
||||
|
||||
7
content/now-burning/Now Burning_2026-04-29_09:38.md
Normal file
7
content/now-burning/Now Burning_2026-04-29_09:38.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Kin-Kaku (Golden Pavilion)"
|
||||
manufacturer: Shoyeido
|
||||
date: 2026-04-29 09:37:00
|
||||
time: 9:37 AM
|
||||
---
|
||||
It took me a while to warm up to these sticks. No idea why—they're lovely.
|
||||
7
content/now-burning/Now Burning_2026-04-29_11:11.md
Normal file
7
content/now-burning/Now Burning_2026-04-29_11:11.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Butterfly Spring Incense
|
||||
manufacturer: Lijiali
|
||||
date: 2026-04-29 11:11:00
|
||||
time: 11:11 AM
|
||||
---
|
||||
|
||||
7
content/now-burning/Now Burning_2026-05-01_13:18.md
Normal file
7
content/now-burning/Now Burning_2026-05-01_13:18.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Moss Garden (Nokiba)"
|
||||
manufacturer: Shoyeido
|
||||
date: 2026-05-01 13:18:00
|
||||
time: 1:18 PM
|
||||
---
|
||||
|
||||
7
content/now-burning/Now Burning_2026-05-01_19:57.md
Normal file
7
content/now-burning/Now Burning_2026-05-01_19:57.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Boswellia Carterii
|
||||
manufacturer: Scents of Earth
|
||||
date: 2026-05-01 19:57:00
|
||||
time: 7:57 PM
|
||||
---
|
||||
Lovely notes of cold cantaloupe and honey.
|
||||
7
content/now-burning/Now Burning_2026-05-04_10:00.md
Normal file
7
content/now-burning/Now Burning_2026-05-04_10:00.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Sarasoju
|
||||
manufacturer: Shunkohdo
|
||||
date: 2026-05-04 10:00:00
|
||||
time: 10:00 AM
|
||||
---
|
||||
Killer daily sandalwood stick.
|
||||
7
content/now-burning/Now Burning_2026-05-05_09:11.md
Normal file
7
content/now-burning/Now Burning_2026-05-05_09:11.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Suzaku
|
||||
manufacturer: Gyokushodo
|
||||
date: 2026-05-05 9:11:00
|
||||
time: 9:11 AM
|
||||
---
|
||||
|
||||
7
content/now-burning/Now Burning_2026-05-05_11:44.md
Normal file
7
content/now-burning/Now Burning_2026-05-05_11:44.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Menthamericana
|
||||
manufacturer: Xinú
|
||||
date: 2026-05-05 11:44:00
|
||||
time: 11:44 PM
|
||||
---
|
||||
|
||||
7
content/now-burning/Now Burning_2026-05-09_14:52.md
Normal file
7
content/now-burning/Now Burning_2026-05-09_14:52.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Frankincense Oman
|
||||
manufacturer: Tennendo
|
||||
date: 2026-05-09 14:52:00
|
||||
time: 2:52 PM
|
||||
---
|
||||
Only three sticks left! :[
|
||||
7
content/now-burning/Now Burning_2026-05-11_09:52.md
Normal file
7
content/now-burning/Now Burning_2026-05-11_09:52.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Excellentia (Shira-giku)"
|
||||
manufacturer: Shoyeido
|
||||
date: 2026-05-11 9:51:00
|
||||
time: 9:51 AM
|
||||
---
|
||||
Some days you just find yourself in the mood for nine hours of continuous fragrance.
|
||||
7
content/now-burning/Now Burning_2026-05-18_12:40.md
Normal file
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
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
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
|
||||
---
|
||||
|
||||
@@ -10,9 +10,9 @@ postlistHeaderText: "What I've been burning:"
|
||||
|
||||
<h1>Now Burning:</h1>
|
||||
<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">
|
||||
<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 %}
|
||||
<div class="microblog-comment">
|
||||
{{ burning.content | safe }}
|
||||
@@ -21,5 +21,5 @@ postlistHeaderText: "What I've been burning:"
|
||||
</div>
|
||||
</article>
|
||||
<a href="/once-burned/">
|
||||
<button type="button">Previous Entries »</button>
|
||||
<button type="button">Previous Entries</button>
|
||||
</a>
|
||||
|
||||
@@ -18,7 +18,13 @@ tags:
|
||||
<div class="buttonContainer">
|
||||
<a class="link-button" href="/feeds/now.xml">
|
||||
<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
|
||||
</button>
|
||||
</a>
|
||||
@@ -31,7 +37,7 @@ tags:
|
||||
</div>
|
||||
{% set postsCount = collections.now | removeMostRecent | length %}
|
||||
{% if postsCount > 1 %}
|
||||
<h2>Previous Entries:</h2>
|
||||
<h2 class="postlist-header">Previous Entries:</h2>
|
||||
{% set postslist = collections.now | removeMostRecent %}
|
||||
{% set showPostListHeader = false %}
|
||||
{% include "postslist.njk" %}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
---
|
||||
layout: layouts/base.njk
|
||||
eleventyExcludeFromCollections: true
|
||||
tags:
|
||||
- nowBurning
|
||||
- metadata
|
||||
title: "Nathan Upchurch | Once Burned: Incense I've burning in the past."
|
||||
title: "Nathan Upchurch | Once Burned: Incense I've burned in the past."
|
||||
structuredData: none
|
||||
pagination:
|
||||
data: collections.onceBurned
|
||||
@@ -24,11 +25,12 @@ paginationRootDir: once-burned
|
||||
{% else %}
|
||||
<p>Nothing’s here yet!</p>
|
||||
{% endif %}
|
||||
|
||||
<span class="buttonContainer">
|
||||
{% include "permalinkButtons.njk" %}
|
||||
|
||||
<a href="/now-burning/">
|
||||
<button type="button">Latest »</button>
|
||||
<button type="button">Latest</button>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
eleventyExcludeFromCollections: true
|
||||
layout: layouts/base.njk
|
||||
title: "Nathan Upchurch | Prior Thoughts"
|
||||
tags:
|
||||
@@ -26,7 +27,7 @@ paginationRootDir: prior-thoughts
|
||||
{% include "permalinkButtons.njk" %}
|
||||
|
||||
<a href="/status/">
|
||||
<button type="button">Latest »</button>
|
||||
<button type="button">Latest</button>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
300
content/quizzes/incense-ingredient-quiz.md
Normal file
300
content/quizzes/incense-ingredient-quiz.md
Normal file
@@ -0,0 +1,300 @@
|
||||
---
|
||||
title: "Incense Ingredient Quiz"
|
||||
description: "How well do you know your incense ingredients?"
|
||||
date: 2026-04-26
|
||||
imageURL: "/img/quizzes/incense/incense-ingredient-quiz.webp"
|
||||
imageAlt: "A very serene photo of a burning cone of incense."
|
||||
consequences:
|
||||
- title: "What happened buddy?"
|
||||
points: 0
|
||||
spiel: "Damn, this didn’t go so well, did it? I’m sure with some time and effort you’ll do better!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-0.gif"
|
||||
imageAlt: "An animated GIF of Homer Simpson being hit by a thurible. The caption reads: Perfumed by some unseen censer, Doh! Stupid censer."
|
||||
- title: "You’ve got a lot to learn!"
|
||||
points: 20
|
||||
spiel: "You got a handful right, but it’s time to hit the books!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-20.gif"
|
||||
imageAlt: "An animated GIF of Spongebob Squarepants reading a checklist of Mermaid Man and Barnacle Boy merchandise items as the camera pans across a room containing them. The items are: thermometer, ukulele, throw pillow, screensaver, incense, snail cozy, headgear."
|
||||
- title: "Not too bad."
|
||||
points: 40
|
||||
spiel: "You’ve got a way to go, but there's no doubt you know a thing or two about incense!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-40.gif"
|
||||
imageAlt: "An animated GIF of a chunk of frankincense smoking on top of a charcoal disk."
|
||||
- title: "You’ve got a mind for incense!"
|
||||
points: 60
|
||||
spiel: "You got over half of the questions right. This is some obscure knowledge—I hope you’re proud of yourself!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-60.gif"
|
||||
imageAlt: "An animated GIF of Principal Skinner dressed as one of the biblical three kings offering frankincense."
|
||||
- title: "You’re good at this!"
|
||||
points: 80
|
||||
spiel: "You really know your incense ingredients! Well done!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-80.gif"
|
||||
imageAlt: "An animated GIF of a women with strings of jewels around her head blowing out the flame of a stick of incense."
|
||||
- title: "Perfect score!"
|
||||
points: 100
|
||||
spiel: "Either you checked the source code, or you really know your stuff! Congratulations!"
|
||||
image: "/img/quizzes/incense/results/incense-quiz-100.gif"
|
||||
imageAlt: "An animated GIF of smoke rising from a stick of incense."
|
||||
questions:
|
||||
- title: "Which of these ingredients is associated with hippies?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Styrax tonkinensis"
|
||||
points: 0
|
||||
- name: "Pogostemon cablin"
|
||||
points: 5
|
||||
- name: "Cinnamomum camphora"
|
||||
points: 0
|
||||
- name: "Ferula moschata"
|
||||
points: 0
|
||||
- title: "This ingredient is known for its peachy fragrance."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Osmanthus"
|
||||
points: 5
|
||||
- name: "Mastic"
|
||||
points: 0
|
||||
- name: "Acacia gum"
|
||||
points: 0
|
||||
- name: "Opoponax"
|
||||
points: 0
|
||||
- title: "Which of these is a type of frankincense?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Bursera fagaroides"
|
||||
points: 0
|
||||
- name: "Eriodictyon californicum"
|
||||
points: 0
|
||||
- name: "Commiphora wightii"
|
||||
points: 0
|
||||
- name: "Boswellia neglecta"
|
||||
points: 5
|
||||
- title: "Which is a type of myrrh?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Bursera fagaroides"
|
||||
points: 0
|
||||
- name: "Eriodictyon californicum"
|
||||
points: 0
|
||||
- name: "Commiphora wightii"
|
||||
points: 5
|
||||
- name: "Boswellia neglecta"
|
||||
points: 0
|
||||
- title: "Your incense sticks are having trouble burning. Which of these ingredients might you add to fix the problem?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Acacia gum"
|
||||
points: 0
|
||||
- name: "Charcoal"
|
||||
points: 5
|
||||
- name: "Clove"
|
||||
points: 5
|
||||
- name: "Myrrh"
|
||||
points: 0
|
||||
- title: "Your incense sticks are having trouble burning. Which of these ingredients is a likely culprit?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Myrrh"
|
||||
points: 5
|
||||
- name: "Cinnamon"
|
||||
points: 0
|
||||
- name: "Charcoal"
|
||||
points: 0
|
||||
- name: "Guar gum"
|
||||
points: 5
|
||||
- title: "Which of these food items is not commonly used in incense?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Plums"
|
||||
points: 0
|
||||
- name: "Wheat gluten"
|
||||
points: 5
|
||||
- name: "Corn starch"
|
||||
points: 0
|
||||
- name: "Pears"
|
||||
points: 0
|
||||
- title: "Which incense ingredient is not mentioned in the Song of Solomon?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Sandalwood"
|
||||
points: 5
|
||||
- name: "Cedar"
|
||||
points: 0
|
||||
- name: "Frankincense"
|
||||
points: 0
|
||||
- name: "Calamus"
|
||||
points: 0
|
||||
- title: "This ingredient comes from the island of Chios, Greece."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Spikenard"
|
||||
points: 0
|
||||
- name: "Mastic"
|
||||
points: 5
|
||||
- name: "Benzoin"
|
||||
points: 0
|
||||
- name: "Osmanthus"
|
||||
points: 0
|
||||
- title: "This ingredient can sometimes be harvested by combing the beards of goats."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Galbanum"
|
||||
points: 0
|
||||
- name: "Almond tree gum"
|
||||
points: 0
|
||||
- name: "Colophony resin"
|
||||
points: 0
|
||||
- name: "Labdanum"
|
||||
points: 5
|
||||
- title: "This ingredient is banned for use in food in the USA because of its high levels of coumarin."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Tonka beans"
|
||||
points: 5
|
||||
- name: "Ambrette seeds"
|
||||
points: 0
|
||||
- name: "Guggul"
|
||||
points: 0
|
||||
- name: "Valerian"
|
||||
points: 0
|
||||
- title: "Which resin is typically the squishiest?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Guggul"
|
||||
points: 0
|
||||
- name: "Elemi"
|
||||
points: 5
|
||||
- name: "Dragon’s blood"
|
||||
points: 0
|
||||
- name: "Palo santo"
|
||||
points: 0
|
||||
- title: "This wood needs to lay dead for a few years before it develops its characteristic fragrance."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Agarwood"
|
||||
points: 0
|
||||
- name: "Juniper"
|
||||
points: 0
|
||||
- name: "Sandalwood"
|
||||
points: 0
|
||||
- name: "Palo santo"
|
||||
points: 5
|
||||
- title: "This wood develops its fragrance when attacked by insects or fungus."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Sandalwood"
|
||||
points: 0
|
||||
- name: "Cedar"
|
||||
points: 0
|
||||
- name: "Agarwood"
|
||||
points: 5
|
||||
- name: "Rosewood"
|
||||
points: 0
|
||||
- title: "Which of these gums is the weakest binder?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Guar"
|
||||
points: 0
|
||||
- name: "Acacia"
|
||||
points: 5
|
||||
- name: "Xanthan"
|
||||
points: 0
|
||||
- name: "Tragacanth"
|
||||
points: 0
|
||||
- title: "Which of these is not the name of a binder?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Laha"
|
||||
points: 0
|
||||
- name: "Jigat"
|
||||
points: 0
|
||||
- name: "Nanmu"
|
||||
points: 0
|
||||
- name: "Slippery pine"
|
||||
points: 5
|
||||
- title: "Which of these animal parts or secretions is not likely to be found in an incense formula?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Dung"
|
||||
points: 0
|
||||
- name: "Fur"
|
||||
points: 5
|
||||
- name: "Opercula"
|
||||
points: 0
|
||||
- name: "Bezoars"
|
||||
points: 0
|
||||
- title: "Which is not endangered?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Bursera graveolens"
|
||||
points: 5
|
||||
- name: "Nardostachys jatamansi"
|
||||
points: 0
|
||||
- name: "Aquilaria crassna"
|
||||
points: 0
|
||||
- name: "Bulnesia sarmientoi"
|
||||
points: 0
|
||||
- title: "This ingredient is associated with a cluster of love poems by Walt Whitman."
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Calamus"
|
||||
points: 5
|
||||
- name: "Camphor"
|
||||
points: 0
|
||||
- name: "Colophony"
|
||||
points: 0
|
||||
- name: "Costus"
|
||||
points: 0
|
||||
- title: "Which ingredient is not a root?"
|
||||
image:
|
||||
imageAlt:
|
||||
imageCaption:
|
||||
answers:
|
||||
- name: "Rhubarb"
|
||||
points: 0
|
||||
- name: "Calamus"
|
||||
points: 0
|
||||
- name: "Sumbul"
|
||||
points: 0
|
||||
- name: "Styrax"
|
||||
points: 5
|
||||
---
|
||||
Do you know your lavender from your labdanum? Test your knowledge on a range of whole-plant incense ingredients.
|
||||
@@ -9,12 +9,12 @@ description: "Bored? Take a fun quiz to while away the time!"
|
||||
---
|
||||
<div data-pagefind-body>
|
||||
|
||||
<h1>Quizzes</h1>
|
||||
<h1>Take a quiz</h1>
|
||||
<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 %}
|
||||
<h2>Available Quizzes:</h2>
|
||||
{% set postslist = collections.quiz %}
|
||||
<h2 class="postlist-header">Available quizzes:</h2>
|
||||
{% set postslist = collections.quiz | reverse %}
|
||||
{% set showPostListHeader = false %}
|
||||
{% include "postslist.njk" %}
|
||||
|
||||
|
||||
@@ -9,7 +9,11 @@ structuredData: none
|
||||
|
||||
Here are some referral links to services / products that I use and recommend. Yes, I do get a kickback if you buy something using these links.
|
||||
|
||||
## Privacy
|
||||
* [Ingogni](incogni.cello.so/IaqbIpynCTd) is a service that continuously works to get your personal information from data broker databases.
|
||||
* [NordVPN](https://refer-nordvpn.com/PhakTfcNHcX) is a VPN service.
|
||||
|
||||
## Web Hosting, Storage, and VPS
|
||||
I like [Interserver](https://www.interserver.net/r/745483). They've always been quick to resolve any issues, I like the dashboard with integrated VNC, and their storage VPS' are super cheap.
|
||||
* I like [Interserver](https://www.interserver.net/r/745483). They've always been quick to resolve any issues, I like the dashboard with integrated VNC, and their storage VPS' are super cheap.
|
||||
|
||||
</article>
|
||||
|
||||
5
content/status/Status_2026-04-18_09:31.md
Normal file
5
content/status/Status_2026-04-18_09:31.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
date: 2026-04-18 9:29:00
|
||||
emoji: 🍵
|
||||
comment: Starting the day with some pinhead oats with banana and peanut butter, Middle Mountain Duck Shit Aroma Dan Cong Oolong from Yunnan Sourcing, and a stick of Tennendo's Kyara. Got to love Saturday mornings.
|
||||
---
|
||||
5
content/status/Status_2026-04-28_10:18.md
Normal file
5
content/status/Status_2026-04-28_10:18.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
date: 2026-04-28 10:15:00
|
||||
emoji: 🌿
|
||||
comment: Shoyeido's Overtones Patchouli is a banger. It really should come in a box of 450 5.25 inch sticks; I'd buy one in a heartbeat.
|
||||
---
|
||||
5
content/status/Status_2026-05-18_10:07.md
Normal file
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)."
|
||||
---
|
||||
@@ -7,7 +7,7 @@ permalink: "/status/index.html"
|
||||
---
|
||||
{% set status = collections.status | last %}
|
||||
|
||||
<h1>Nathan’s status:</h1>
|
||||
<h1>Current status:</h1>
|
||||
<article class="post microblog-post" data-pagefind-body>
|
||||
<div class="microblog-status card">
|
||||
<span class="microblog-emoji">{{ status.data.emoji }}</span>
|
||||
@@ -24,19 +24,17 @@ permalink: "/status/index.html"
|
||||
{% endif %}
|
||||
|
||||
{% if metadata.author.url %}
|
||||
</a><br />
|
||||
</a>
|
||||
{% endif %}
|
||||
• {{ status.date | niceDate }}<br />
|
||||
</span>
|
||||
|
||||
{% if status.data.comment %}
|
||||
{{ status.data.comment | markdownify | safe }}<br />
|
||||
|
||||
<span class="status-metadata">
|
||||
{{ status.date | niceDate }}
|
||||
</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<a href="/prior-thoughts/">
|
||||
<button type="button">Previous Entries »</button>
|
||||
<button type="button">Previous Entries</button>
|
||||
</a>
|
||||
|
||||
@@ -10,6 +10,7 @@ pagination:
|
||||
- galleryImages
|
||||
- post
|
||||
- posts
|
||||
- profilePic
|
||||
- tagList
|
||||
- tags
|
||||
- feed
|
||||
@@ -40,17 +41,25 @@ eleventyComputed:
|
||||
</h1>
|
||||
<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>
|
||||
<span class="buttonContainer">
|
||||
<a class="link-button" href="/tags/">
|
||||
<button type="button">
|
||||
More topics »
|
||||
More topics
|
||||
</button>
|
||||
</a>
|
||||
<a class="link-button" href="/feeds/{{ tag | slugify }}.xml">
|
||||
<button type="button">
|
||||
<img src="/img/RSS.svg">
|
||||
Subscribe »
|
||||
<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
|
||||
</button>
|
||||
</a>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
{% set postslist = collections[ tag ] | reverse %}
|
||||
|
||||
12
package.json
12
package.json
@@ -29,14 +29,14 @@
|
||||
},
|
||||
"homepage": "https://upchur.ch/gitea/n_u/nathanupchurch.com",
|
||||
"devDependencies": {
|
||||
"@11ty/eleventy": "^3.1.2",
|
||||
"@11ty/eleventy-navigation": "^0.3.5",
|
||||
"@11ty/eleventy-plugin-bundle": "^1.0.4",
|
||||
"@11ty/eleventy-plugin-rss": "^1.2.0",
|
||||
"@11ty/eleventy": "^3.1.5",
|
||||
"@11ty/eleventy-navigation": "^1.0.5",
|
||||
"@11ty/eleventy-plugin-bundle": "^3.0.0",
|
||||
"@11ty/eleventy-plugin-rss": "^3.0.0",
|
||||
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
|
||||
"luxon": "^3.3.0",
|
||||
"markdown-it-anchor": "^8.6.7",
|
||||
"markdown-it-footnote": "^3.0.3",
|
||||
"markdown-it-anchor": "^9.2.0",
|
||||
"markdown-it-footnote": "^4.0.0",
|
||||
"mdfigcaption": "^0.1.1",
|
||||
"pagefind": "^1.4.0"
|
||||
},
|
||||
|
||||
BIN
public/audio/site_tunes/ABBA.Gimme gimme gimme L.mid.ogg
Normal file
BIN
public/audio/site_tunes/ABBA.Gimme gimme gimme L.mid.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/audio/site_tunes/Auld-Lang-Syne.mid.ogg
Normal file
BIN
public/audio/site_tunes/Auld-Lang-Syne.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Ave-Maria-in-C.mid.ogg
Normal file
BIN
public/audio/site_tunes/Ave-Maria-in-C.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/B52s - Loveshack.mid.ogg
Normal file
BIN
public/audio/site_tunes/B52s - Loveshack.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/B52s - Rock Lobster.mid.ogg
Normal file
BIN
public/audio/site_tunes/B52s - Rock Lobster.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/BOLERO-3.MID.ogg
Normal file
BIN
public/audio/site_tunes/BOLERO-3.MID.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/audio/site_tunes/Cher - Believe.mid.ogg
Normal file
BIN
public/audio/site_tunes/Cher - Believe.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Death Note - L's Theme.mid.ogg
Normal file
BIN
public/audio/site_tunes/Death Note - L's Theme.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Death Note - Light's Theme.mid.ogg
Normal file
BIN
public/audio/site_tunes/Death Note - Light's Theme.mid.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/audio/site_tunes/Dr Mario - Fever.mid.ogg
Normal file
BIN
public/audio/site_tunes/Dr Mario - Fever.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Dr Mario - Title Screen.mid.ogg
Normal file
BIN
public/audio/site_tunes/Dr Mario - Title Screen.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Feliz-Navidad.mid.ogg
Normal file
BIN
public/audio/site_tunes/Feliz-Navidad.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Flying Toasters Anthem.mid.ogg
Normal file
BIN
public/audio/site_tunes/Flying Toasters Anthem.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Fur Elise.mid.ogg
Normal file
BIN
public/audio/site_tunes/Fur Elise.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/GERSHWIN.Rhapsody in blue.mid.ogg
Normal file
BIN
public/audio/site_tunes/GERSHWIN.Rhapsody in blue.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Gangsta's-Paradise-2.mid.ogg
Normal file
BIN
public/audio/site_tunes/Gangsta's-Paradise-2.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Gymnopedie-Nr-1.mid.ogg
Normal file
BIN
public/audio/site_tunes/Gymnopedie-Nr-1.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Holding-Out-For-A-Hero-1.mid.ogg
Normal file
BIN
public/audio/site_tunes/Holding-Out-For-A-Hero-1.mid.ogg
Normal file
Binary file not shown.
BIN
public/audio/site_tunes/Ich_Will.mid.ogg
Normal file
BIN
public/audio/site_tunes/Ich_Will.mid.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user