Now: Life updates.
+Now: Life updates
{% set now = collections.now | last %}{{ now.data.title }} • {{ now.date | niceDate }}
{{ now.content | safe }} diff --git a/content/now/now.11tydata.js b/content/now/now.11tydata.js index 7075922..ca52f3c 100644 --- a/content/now/now.11tydata.js +++ b/content/now/now.11tydata.js @@ -1,4 +1,4 @@ export default { - tags: ["now"], + tags: ["now", "metadata", "profilePic", "tags"], layout: "layouts/post.njk", }; diff --git a/content/once-burned/index.njk b/content/once-burned/index.njk index c55c846..d062e9e 100644 --- a/content/once-burned/index.njk +++ b/content/once-burned/index.njk @@ -1,5 +1,8 @@ --- layout: layouts/base.njk +tags: + - nowBurning + - metadata title: "Nathan Upchurch | Once Burned: Incense I've burning in the past." structuredData: none pagination: diff --git a/content/prior-thoughts/index.njk b/content/prior-thoughts/index.njk index 61127b5..0db2fcc 100644 --- a/content/prior-thoughts/index.njk +++ b/content/prior-thoughts/index.njk @@ -1,6 +1,8 @@ --- layout: layouts/base.njk title: "Nathan Upchurch | Prior Thoughts" +tags: + - status pagination: data: collections.priorThoughts generatePageOnEmptyData: true diff --git a/content/quizzes/index.njk b/content/quizzes/index.njk index af72b63..5db0dfa 100644 --- a/content/quizzes/index.njk +++ b/content/quizzes/index.njk @@ -2,6 +2,8 @@ eleventyExcludeFromCollections: true layout: layouts/base.njk title: Nathan Upchurch | Quizzes +tags: + - metadata structuredData: none description: "Bored? Take a fun quiz to while away the time!" --- diff --git a/content/quizzes/quizzes.11tydata.js b/content/quizzes/quizzes.11tydata.js index d1b7b5d..f2816ca 100644 --- a/content/quizzes/quizzes.11tydata.js +++ b/content/quizzes/quizzes.11tydata.js @@ -1,4 +1,4 @@ export default { - tags: ["quiz"], + tags: ["quiz", "metadata", "profilePic", "postList"], layout: "layouts/quizzes.njk", }; diff --git a/content/referrals/index.md b/content/referrals/index.md index 6ec2735..6587c4f 100644 --- a/content/referrals/index.md +++ b/content/referrals/index.md @@ -5,7 +5,7 @@ structuredData: none ---Referrals / Affiliate Links
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. diff --git a/content/sitemap/index.md b/content/sitemap/index.md index 0507820..ba3ae17 100644 --- a/content/sitemap/index.md +++ b/content/sitemap/index.md @@ -4,8 +4,8 @@ title: Nathan Upchurch | Sitemap structuredData: none ---Sitemap
-# Sitemap * [Home](/) * [About](/about) * [AI](/ai) diff --git a/content/slashes/index.md b/content/slashes/index.md index ae8eb07..91b4c51 100644 --- a/content/slashes/index.md +++ b/content/slashes/index.md @@ -5,7 +5,7 @@ structuredData: none ---Slashes
This is an index of all my [slash pages](https://slashpages.net/). These are pages you can add to your website, usually with a standard slugs like [/now](/now), [/about](/about), or [/sitemap](/sitemap). They tend to describe the individual behind the site and are [common on the IndieWeb](https://indieweb.org/page). diff --git a/content/tags/index.njk b/content/tags/index.njk index 8c51308..92ab058 100644 --- a/content/tags/index.njk +++ b/content/tags/index.njk @@ -3,6 +3,8 @@ permalink: /tags/ layout: layouts/base.njk title: Nathan Upchurch | Tags structuredData: none +tags: + - tagList ---My Wishlist
+ ## What is this? This page is a list of wishes, a la [taylor.town/wish-manifesto](https://taylor.town/wish-manifesto), both tangible and intangible. diff --git a/eleventy.config.js b/eleventy.config.js index eac7e86..7826c3e 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -12,6 +12,7 @@ import pluginNavigation from "@11ty/eleventy-navigation"; import prettier from "prettier"; import { EleventyHtmlBasePlugin } from "@11ty/eleventy"; import { dateSuffixAdder, monthMap } from "./public/js/modules/dateTools.js"; +import tocPlugin from "eleventy-plugin-nesting-toc"; // For PageFind import childProcess from "child_process"; @@ -127,6 +128,7 @@ export default async function (eleventyConfig) { eleventyConfig.addPlugin(emojiReadTime, { label: "minute read time", }); + eleventyConfig.addPlugin(tocPlugin); // Filters eleventyConfig.addFilter("niceDate", (date) => { @@ -146,14 +148,21 @@ export default async function (eleventyConfig) { return arr.slice(0, arr.length - 1); }); + // Add abbreviation eleventyConfig.addFilter("abbr", (abbr, def) => { return `${abbr}`; }); + // Parse as markdown eleventyConfig.addFilter("markdownify", (markdownString) => { return mdLib.renderInline(markdownString); }); + // Remove trailing "#" from links + eleventyConfig.addFilter("removeHash", (str) => { + return str.replace(/#<\/a>/g, ""); + }); + // Shortcodes // Audio player eleventyConfig.addShortcode( @@ -211,12 +220,24 @@ export default async function (eleventyConfig) { (tag) => [ "all", - "nav", - "post", - "posts", + "blogroll", + "feed", "gallery", - "quiz", + "galleryImage", + "guestbook", + "metadata", + "nav", + "navigator", "nowBurning", + "onceBurned", + "post", + "postList", + "posts", + "profilePic", + "status", + "tagList", + "tags", + "quiz", ].indexOf(tag) === -1, ); }); diff --git a/package.json b/package.json index 7a27fa7..81d414d 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ }, "dependencies": { "@11tyrocks/eleventy-plugin-emoji-readtime": "^1.0.1", + "eleventy-plugin-nesting-toc": "^1.3.0", "markdown-it-container": "^4.0.0", "markdown-it-footnote": "^3.0.3", "markdown-it-image-figures": "^2.1.1", diff --git a/public/css/code.css b/public/css/code.css index 2444e66..f3fc38d 100644 --- a/public/css/code.css +++ b/public/css/code.css @@ -1,4 +1,17 @@ -code[class*="language-"], pre[class*="language-"] { +code { + background-color: var(--color-gray-20); + border-radius: 0.3em; + font-size: var(--step--1); + padding: 0 var(--space-3xs); +} +@media (prefers-color-scheme: dark) { + code { + background-color: var(--card-color); + } +} + +code[class*="language-"], +pre[class*="language-"] { color: #f8f8f2; background: none; text-shadow: 0 1px rgba(0, 0, 0, 0.3); @@ -21,10 +34,30 @@ code[class*="language-"], pre[class*="language-"] { hyphens: none; } +/* Code Fences */ +pre, +code { + font-family: var(--font-family-monospace); +} +pre:not([class*="language-"]) { + margin: 0.5em 0; + -moz-tab-size: var(--syntax-tab-size); + -o-tab-size: var(--syntax-tab-size); + tab-size: var(--syntax-tab-size); + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; +} + /* Code blocks */ pre[class*="language-"] { padding: var(--space-2xs); - margin: .5em 0; + margin: 0.5em 0; overflow: auto; border-radius: 0.3em; } @@ -36,8 +69,8 @@ pre[class*="language-"] { /* Inline code */ :not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; + padding: 0.1em; + border-radius: 0.3em; white-space: normal; } @@ -53,7 +86,7 @@ pre[class*="language-"] { } .token.namespace { - opacity: .7; + opacity: 0.7; } .token.property, @@ -146,7 +179,7 @@ pre[class*="language-diff-"] { .token.prefix.inserted, .token.prefix.deleted { width: var(--eleventy-code-padding); - background-color: rgba(0,0,0,.2); + background-color: rgba(0, 0, 0, 0.2); } /* Optional: full-width background color */ diff --git a/public/css/index.css b/public/css/index.css index 5eefbc5..8076a33 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -153,9 +153,6 @@ html { font-size: 13px; overflow-y: scroll; } -input.answer { - display: inline; -} input:not(.answer, .siteSettingsToggle input), textarea { background-color: var(--background-color); @@ -179,12 +176,10 @@ label { display: block; margin-bottom: var(--space-3xs); } -.answerBox > label { - display: inline; -} -article:not(.postlist-item) h3 { - margin-bottom: var(--space-s); - margin-top: var(--space-m); +article:not(.postlist-item) { + & h2 { + padding-top: var(--space-m); + } } blockquote p { font-style: italic; @@ -231,20 +226,6 @@ button, .nav-item { font-family: var(--font-family-ui); } -code { - background-color: var(--color-gray-20); - border-radius: 0.3em; - font-size: var(--step--1); - padding: 0 var(--space-3xs); -} -@media (prefers-color-scheme: dark) { - code { - background-color: var(--card-color); - } -} -.links-nextprev > .postlist-item-container { - grid-column: var(--span-grid); -} header, footer, main { @@ -273,12 +254,6 @@ section { p { grid-column: var(--span-grid); } - /* Add fleuron to lastin section */ - > p:not(blockquote > p, p.isso-post-action):last-child:after { - content: "\2766"; - display: inline; - font-size: var(--step-1); - } } ::selection { background: var(--contrast-color); @@ -405,7 +380,6 @@ figure > div > iframe { border-top-left-radius: 0; padding: 0; width: 100%; - /* box-shadow: var(--space-2xs) var(--space-2xs) 0 0 var(--contrast-color); */ } html.barebones, @@ -479,85 +453,6 @@ table th { padding-right: 1em; } -/* Audio Player */ -.albumCover { - object-fit: cover; -} - -.albumCover, -.coverContainer { - width: var(--space-4xl); - height: var(--space-4xl); - border-radius: var(--border-radius); -} - -.artist { - font-size: var(--meta-font-size); - margin-bottom: var(--space-s); -} - -.captionAndPlayer { - display: flex; - flex-flow: column nowrap; - justify-content: space-between; - width: 100%; -} - -.mplayer { - background-color: var(--card-color); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow); - display: flex; - gap: var(--space-s); - margin: 0 0 var(--space-s) 0; - padding: var(--space-m); - width: 100%; -} - -.player { - align-self: flex-end; - border-radius: var(--border-radius); - width: 100%; -} - -.songTitle { - font-size: var(--step-1); - font-variation-settings: - "opsz" 50, - "wght" 350, - "SOFT" 20, - "WONK" 1; -} - -/* Mastodon */ -.continue-discussion { - grid-column: var(--span-grid); -} -.continue-discussion button { - margin-top: calc(var(--space-s) * -1); - margin-bottom: var(--space-m); -} - -/* Code Fences */ -pre, -code { - font-family: var(--font-family-monospace); -} -pre:not([class*="language-"]) { - margin: 0.5em 0; - -moz-tab-size: var(--syntax-tab-size); - -o-tab-size: var(--syntax-tab-size); - tab-size: var(--syntax-tab-size); - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; -} - /* Footnotes */ .footnotes-list { font-style: italic; @@ -585,24 +480,6 @@ hr { width: 100%; } -/* Dropcap */ -main > section > article.post > p:not(.nodropcap):first-of-type:first-letter { - float: left; - font-size: var(--step-5); - padding: var(--space-2xs); - color: var(--contrast-color); - border: solid 2px var(--contrast-color); - font-family: var(--font-family-headline); - font-variation-settings: - "opsz" 144, - "wght" 500, - "SOFT" 10, - "WONK" 0; - margin: 0.5rem 0.7rem 0 0; - border-radius: 0.2em; - border-top-left-radius: 0; -} - /* Header */ header .home-link { display: grid; @@ -613,63 +490,6 @@ header .home-link { width: var(--space-l-xl); } -/* Microblog */ -.microblog-comment { - p { - font-style: italic; - margin: 0; - padding: var(--space-s) 0 0 0; - } -} - -.microblog-emoji { - font-size: var(--step-6); - margin-right: var(--space-s); -} - -.microblog-icon { - filter: var(--logo-filter); - height: var(--space-4xl); - padding-right: var(--space-s); - width: var(--space-2xl); -} -.microblog-list { - .post-metadata { - padding: 0; - } -} -.microblog-post { - display: flex; - .microblog-comment { - p { - padding-top: 0; - padding-bottom: var(--space-2xs); - } - } -} - -.microblog-status { - &.card { - align-items: center; - padding: var(--space-s); - } - .microblog-status-copy { - align-items: center; - display: flex; - flex-flow: column nowrap; - p { - margin: 0; - } - .status-metadata { - font-family: var(--meta-font-family); - font-size: var(--meta-font-size); - font-style: var(--meta-font-style); - font-variation-settings: var(--meta-font-variation-settings); - line-height: calc(var(--meta-font-size) * 0.5 + var(--meta-font-size)); - } - } -} - /* Info Box */ .info { @@ -751,120 +571,6 @@ nav ul { ); /* Compensate for border thickness */ } -/* Navigator */ -.navigator { - display: grid; - gap: var(--space-2xs) var(--space-2xs); - grid-template-columns: repeat(auto-fill, minmax(var(--space-6xl), 1fr)); - width: 100%; - .navigatorItem { - background-color: var(--background-color); - border: 1.5px solid var(--color-gray-20); - border-radius: var(--border-radius); - color: var(--text-color); - display: flex; - flex-flow: column wrap; - height: var(--space-3xl); - text-align: center; - a { - height: 100%; - padding: var(--space-s) var(--space-xs); - text-decoration: none; - width: 100%; - img { - aspect-ratio: 1 / 1; - filter: var(--logo-filter); - width: var(--space-m); - } - } - &:hover { - background-color: var(--text-color); - border: 1.25px solid var(--text-color); - transition: var(--transition-normal); - a { - color: var(--background-color); - transition: var(--transition-normal); - img { - filter: none; - transition: var(--transition-normal); - } - @media (prefers-color-scheme: dark) { - img { - filter: brightness(0) saturate(100%) invert(16%) sepia(0%) - saturate(1024%) hue-rotate(177deg) brightness(99%) contrast(88%); - } - } - } - } - } -} - -/* Posts list */ -.postlist, -.links-nextprev { - container: postlist / inline-size; -} -.postlist-item { - align-items: flex-start; - display: flex; - flex-flow: row nowrap; - justify-content: flex-start; - width: 100%; -} -.postlist-item-container { - display: flex; - flex-flow: column nowrap; - gap: var(--space-s); -} -.post-image { - width: var(--space-4xl); - height: var(--space-4xl); - object-fit: cover; - object-position: 50% 50%; -} -.post-image-container { - border-radius: var(--border-radius); - box-shadow: var(--box-shadow); - height: var(--space-4xl); - max-height: var(--space-4xl); - overflow: hidden; - width: var(--space-4xl); -} - -.postlist-date, -.postlist-item:before { - color: var(--color-gray-90); - font-size: var(--meta-font-size); - /*margin: var(--space-2xs) 0;*/ -} -.postlist-date { - word-spacing: -0.5px; -} -.postlist-link { - font-size: var(--step-5); - padding-right: 0.5em; - text-decoration: none; -} - -.postlist-link p { - background-color: var(--color-gray-90); - border-radius: 100px; - color: var(--background-color); - font-family: var(--font-family-ui); - font-size: var(--step--2); - font-variation-settings: var(--font-variation-ui); - letter-spacing: var(--ui-letter-spacing); - margin-top: calc(var(--space-3xs) * -1); - padding-left: var(--space-xs); - padding-right: var(--space-xs); - text-transform: uppercase; - width: max-content; -} -.post-copy { - display: flex; - flex-flow: column wrap; -} - sup { line-height: 0; } @@ -899,121 +605,6 @@ sup { } } -/* Tags */ -a.post-tag { - background-color: var(--color-gray-20); - border-radius: 1rem; - color: var(--text-color); - font-family: var(--meta-font-family); - font-variation-settings: "wght" 300; - margin-top: var(--space-3xs); - margin-right: var(--space-3xs); - padding: 0 var(--space-3xs); - text-decoration: none; -} -a.post-tag:before { - content: "#"; -} -a.post-tag:visited { - color: var(--text-color); -} -a.post-tag:hover { - color: var(--text-color); -} -.tag-feed-icon { - fill: var(--rss-orange); - height: var(--space-m); - transition: var(--transition-normal); - width: var(--space-m); - &.small { - height: var(--space-s); - width: var(--space-s); - } -} -.taglist { - display: flex; - flex-flow: row wrap; - list-style-type: none; - padding-left: 0; -} -.taglist li a { - display: inline-block; - font-size: var(--step--1); - margin: 0 var(--space-2xs) var(--space-2xs) 0; -} - -.postlist-item > .post-tag { - align-self: center; -} - -/* Post Metadata */ -.post-metadata { - display: flex; - flex-flow: row nowrap; - padding: 0 0 var(--space-l) 0; -} - -.post-metadata-copy { - display: flex; - flex-flow: column nowrap; - justify-content: center; -} - -.post-metadata p, -.post-metadata ul, -.post-metadata ul li, -time, -.metadata { - display: flex; - flex-flow: row wrap; - font-family: var(--meta-font-family); - font-size: var(--meta-font-size); - font-style: var(--meta-font-style); - font-variation-settings: var(--meta-font-variation-settings); - line-height: calc(var(--meta-font-size) * 0.5 + var(--meta-font-size)); - list-style: none; - margin: 0; - padding-left: 0em; -} - -.post-metadata { - padding-left: 0.15rem; -} - -@container postlist (max-width: 500px) { - .postlist-item { - flex-flow: column wrap; - } - .post-image-container { - margin-left: 0; - min-height: var(--space-10xl); - width: 100%; - } - .post-image-container img.post-image { - width: 100cqw; - height: var(--space-10xl); - } - .postlist-link { - padding: 0; - } - .postlist-link h3 { - padding-top: var(--space-m); - } - .postlist-link p { - margin-top: var(--space-xs); - } - .post-metadata { - padding-bottom: 0; - } -} - -.profilePic:not(.links-container > img.profilePic) { - border-radius: 100%; - height: var(--space-xl); - margin-right: var(--space-s); - width: var(--space-xl); -} - /* Direct Links / Markdown Headers */ a.header-anchor { font-style: normal; @@ -1037,30 +628,8 @@ h2 + .header-anchor { } /* Components */ -article.post { - grid-column: var(--span-grid); - container: article / inline-size; - /* Add fleuron after last
in article */ - > p:not(blockquote > p):last-child:after { - content: "\2766"; - display: inline; - font-size: var(--step-1); - } -} -.blogroll { - display: inline; -} -.blogroll-category-group { - margin-bottom: var(--space-l); - margin-left: var(--space-m); - h3 { - display: inline; - } - p { - margin: var(--space-2xs) auto; - } -} #buttonsAndStuffContainer { + /* This lives in the footer*/ display: flex; grid-column: var(--span-grid); width: 100%; @@ -1084,152 +653,7 @@ article.post { padding: var(--single-gap) 1.1rem var(--single-gap) 1.1rem; width: 100%; } -.gallery-images { - display: flex; - flex-flow: row wrap; - row-gap: var(--space-xs-s); - column-gap: var(--space-m-l); - .gallery-image-container { - width: var(--space-7xl-8xl); - height: var(--space-7xl-8xl); - .gallery-image { - border-radius: var(--border-radius); - width: var(--space-7xl-8xl); - height: var(--space-7xl-8xl); - object-fit: cover; - } - } -} -/* Guestbook */ -.guestbook-message blockquote { - margin-bottom: var(--space-m); - margin-top: var(--space-3xs); -} -.guestbook-message p { - margin-block: 0 0; - position: relative; - z-index: 1; -} -.guestbook-message p b, -.guestbook-message p small { - font-family: var(--meta-font-family); - font-size: var(--meta-font-size); - font-variation-settings: var(--meta-font-variation-settings); -} -#guestbooks___challenge-answer-container br, -.guestbooks___input-container br { - display: none; -} -.guestbook-message-reply { - border-left: var(--border-details); - margin-left: var(--space-l); - margin-top: calc(var(--space-s) * -1); - opacity: 0.9; - padding-left: var(--space-s); - font-style: italic; - & blockquote { - margin-left: 0; - } - & blockquote::before { - content: ""; - } - & p::before { - content: "Reply from "; - font-family: var(--meta-font-family); - font-size: var(--meta-font-size); - font-variation-settings: var(--meta-font-variation-settings); - } -} - -/* Add fleuron after
in article when footnotes are present */ -p:has(+ hr.footnotes-sep):after { - content: "\2766"; - display: inline; - font-size: var(--step-1); -} - -/* Quiz */ -.answerBox { - margin-bottom: var(--space-3xs); -} -.answersBox > input { - display: block; -} -details { - background-color: var(--card-color); - border: var(--border-details); - border-radius: var(--border-radius); - color: var(--text-color); - margin-top: var(--space-s); - padding: var(--space-xs); - width: 100%; - font-size: var(--step--2); - font-variation-settings: var(--font-variation-ui); - text-transform: uppercase; - letter-spacing: var(--ui-letter-spacing); - font-family: var(--font-family-ui); - - ::marker { - content: "+ "; - } - &[open] p { - font-size: var(--step--2); - line-height: calc(var(--step--2) * 0.25 + var(--step--2)); - } - &[open] summary::marker { - content: "- "; - } - &[open] summary { - border-bottom: var(--border-details); - margin-bottom: var(--space-xs); - padding-bottom: var(--space-xs); - } - summary { - font-size: var(--step--2); - font-variation-settings: var(--font-variation-ui); - text-transform: uppercase; - letter-spacing: var(--ui-letter-spacing); - font-family: var(--font-family-ui); - } -} -dialog { - background-color: var(--card-color); - border: none; - border-radius: var(--border-radius); - box-shadow: var(--box-shadow); - width: var(--grid-max-width); - h2 { - padding-top: 0; - } - p { - color: var(--text-color); - } - &::backdrop { - background-color: var(--contrast-color); - opacity: 0.5; - } - img { - max-width: 100%; - padding-top: var(--space-s); - } -} -.questionBox { - margin: var(--space-s) 0; - figure { - padding-top: 0; - padding-bottom: 0; - } -} -.quizQuestion { - font-size: var(--step-2); - font-variation-settings: - "opsz" 50, - "wght" 350, - "SOFT" 20, - "WONK" 1; - line-height: calc(var(--step-2) * 0.25 + var(--step-2)); -} /* Utilities */ .grid-container { max-width: var(--grid-max-width); diff --git a/public/xsl/basic.xsl b/public/xsl/basic.xsl index 297f53f..1b95702 100644 --- a/public/xsl/basic.xsl +++ b/public/xsl/basic.xsl @@ -11,12 +11,14 @@ + +
RSS Feed Preview
This is an RSS feed. Subscribe by copying the URL from the address bar into your newsreader. Don’t have a newsreader? Learn more and get started. It’s free. Below is a preview of what you’ll see in your newsreader when you subscribe. Done here? Go back to nathanupchurch.com
-