diff --git a/_includes/head-content.njk b/_includes/head-content.njk
deleted file mode 100644
index 6e10397..0000000
--- a/_includes/head-content.njk
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
{{ title or metadata.title }}
-
-{# #}
-
-
-
-
-
-
-
-
-{# Fonts #}
-
-
-
-
-{# Icons #}
-
-
-{# Styles #}
-
-
-
-
-
-
diff --git a/_includes/layouts/base-no-anchors.njk b/_includes/layouts/base-no-anchors.njk
deleted file mode 100644
index dd5d9d2..0000000
--- a/_includes/layouts/base-no-anchors.njk
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- {% include "head-content.njk" %}
-
-
- {% include "header.njk" %}
-
-
- {{ content | safe }}
-
-
- {% include "footer.njk" %}
-
diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk
index dd5d9d2..2bd9326 100644
--- a/_includes/layouts/base.njk
+++ b/_includes/layouts/base.njk
@@ -1,12 +1,47 @@
- {% include "head-content.njk" %}
+
+
+
+ {{ title or metadata.title }}
+
+ {# #}
+
+
+
+
+
+
+
+
+ {# Fonts #}
+
+
+
+
+ {# Icons #}
+
+
+ {# Styles #}
+
+
+
+
+
+
+
+ {# Heading anchors #}
+
{% include "header.njk" %}
- {{ content | safe }}
+
+ {{ content | safe }}
+
+
+
{% include "footer.njk" %}
diff --git a/_includes/pagination.njk b/_includes/pagination.njk
new file mode 100644
index 0000000..702aec8
--- /dev/null
+++ b/_includes/pagination.njk
@@ -0,0 +1,20 @@
+{% if olderHref or newerHref %}
+
+{% endif %}
diff --git a/_includes/postlist.njk b/_includes/postlist.njk
index 4d542a9..b9e04bc 100644
--- a/_includes/postlist.njk
+++ b/_includes/postlist.njk
@@ -14,4 +14,4 @@
{% endfor %}
-
+
diff --git a/css/nav.css b/css/nav.css
index aa3f869..d2a548b 100644
--- a/css/nav.css
+++ b/css/nav.css
@@ -8,8 +8,9 @@ header {
z-index: 10;
}
-/* Header links */
-header a {
+/* Header links, pagination links */
+header a,
+.pagination a {
border-radius: 1rem;
border: .125rem solid var(--color-pink);
color: var(--color-pink);
@@ -17,7 +18,6 @@ header a {
padding: 0 .25rem;
box-shadow: .15rem .15rem var(--color-shadow);
font-size: 1.2rem;
- padding-right: .35rem;
/* Click animation handling */
position: relative;
top: 0;
@@ -25,7 +25,17 @@ header a {
transition: top .05s ease-in, left .05s ease-in;
}
-header a:focus-visible {
+header a,
+.pagination .older a {
+ padding-right: .35rem;
+}
+
+.pagination .newer a {
+ padding-left: .35rem;
+}
+
+header a:focus-visible,
+.pagination a:focus-visible {
color: var(--color-bg);
border-color: var(--color-pink);
background-color: var(--color-pink);
@@ -33,7 +43,8 @@ header a:focus-visible {
}
@media (any-hover: hover) {
- header a:hover {
+ header a:hover,
+ .pagination a:hover {
color: var(--color-bg);
border-color: var(--color-pink);
background-color: var(--color-pink);
@@ -41,13 +52,15 @@ header a:focus-visible {
}
@media (forced-colors: active) {
- .site-header a:focus-visible {
+ header a:focus-visible,
+ .pagination a:focus-visible {
outline-offset: .125rem;
outline: .125rem solid;
}
@media (any-hover: hover) {
- .site-header a:hover {
+ header a:hover,
+ .pagination a:hover {
outline-offset: .125rem;
outline: .125rem solid;
}
@@ -55,7 +68,8 @@ header a:focus-visible {
}
/* Click animation */
-header a:active {
+header a:active,
+.pagination a:active {
top: .1rem;
left: .1rem;
box-shadow: .05rem .05rem var(--color-shadow);
@@ -81,9 +95,13 @@ header a[aria-current="page"]:focus-visible {
}
}
-/* Header link icons */
-header i {
+/* Header link icons, pagination icons */
+header i,
+.pagination i {
color: var(--color-teal);
+}
+
+header i {
padding-left: .25rem;
}
@@ -92,13 +110,15 @@ header a[aria-current="page"] i {
}
header a:focus-visible i,
-a[aria-current="page"] a:focus-visible i {
+a[aria-current="page"] a:focus-visible i,
+.pagination a:focus-visible :in-range {
color: var(--color-bg);
}
@media (any-hover: hover) {
header a:hover i,
- header a[aria-current="page"]:hover i {
+ header a[aria-current="page"]:hover i,
+ .pagination a:hover i {
color: var(--color-bg);
}
}
@@ -194,3 +214,25 @@ footer a {
footer a:focus-visible {
outline-color: var(--color-pink);
}
+
+/* Pagination */
+.pagination {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ grid-template-areas: "older newer";
+ list-style: none;
+}
+
+.pagination,
+.pagination li {
+ margin: 0;
+}
+
+.pagination .older {
+ grid-area: older;
+}
+
+.pagination .newer {
+ grid-area: newer;
+ text-align: right;
+}
diff --git a/eleventy.config.js b/eleventy.config.js
index 4e3975e..135cae4 100644
--- a/eleventy.config.js
+++ b/eleventy.config.js
@@ -15,13 +15,16 @@ export default async function(eleventyConfig) {
/* Tag pagination */
eleventyConfig.addCollection("tagPagination", function(collection) {
let tagSet = new Set(collection.getAllSorted().flatMap((post) => post.data.tags || []));
+ tagSet = tagSet.difference(new Set(["posts", "gallery", "reference"]));
let paginationSize = 13;
let tagMap = [];
let tagArray = [...tagSet];
+
for( let tagName of tagArray) {
let tagItems = collection.getFilteredByTag(tagName);
let pagedItems = chunk(tagItems.reverse(), paginationSize); // console.log( tagName, tagItems.length, pagedItems.length );
+
for( let pageNumber = 0, max = pagedItems.length; pageNumber < max; pageNumber++) {
tagMap.push({
tagName: tagName,
@@ -32,7 +35,6 @@ export default async function(eleventyConfig) {
}
}
- //console.log( tagMap );
return tagMap;
});
diff --git a/package-lock.json b/package-lock.json
index b97177c..03149da 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,6 +15,7 @@
"@11ty/eleventy-plugin-rss": "^2.0.4",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
"@mdit/plugin-attrs": "^0.24.2",
+ "@zachleat/heading-anchors": "^1.0.5",
"lodash-es": "^4.17.23",
"luxon": "^3.7.2"
}
@@ -796,6 +797,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@zachleat/heading-anchors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@zachleat/heading-anchors/-/heading-anchors-1.0.5.tgz",
+ "integrity": "sha512-hsAljmm6py9VEf6ToKGyQJweemQJM4bI75TTTbwRYIrasCm66ajJDhWYpgZJM1B+8KSop371RDhDASYl3Q4y9g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/a-sync-waterfall": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
diff --git a/package.json b/package.json
index 7349b66..aade67e 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"@11ty/eleventy-plugin-rss": "^2.0.4",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
"@mdit/plugin-attrs": "^0.24.2",
+ "@zachleat/heading-anchors": "^1.0.5",
"lodash-es": "^4.17.23",
"luxon": "^3.7.2"
}
diff --git a/src/index.njk b/src/index.njk
index 1f45845..dfea458 100644
--- a/src/index.njk
+++ b/src/index.njk
@@ -12,3 +12,8 @@ title: home
layout: page.njk
---
{% include "postlist.njk" %}
+
+{# idk why these are backwards either #}
+{% set newerHref = pagination.href.previous %}
+{% set olderHref = pagination.href.next %}
+{% include "pagination.njk" %}
diff --git a/src/meta/feed.xml b/src/meta/feed.xml
deleted file mode 100644
index 8fc6af9..0000000
--- a/src/meta/feed.xml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-permalink: feed.xml
-eleventyExcludeFromCollections: true
----
-
-
- {{ metadata.title }}
- {{ metadata.description }}
-
-
- {{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}
- {{ metadata.base | addPathPrefixToFullUrl }}
-
- {{ metadata.author.name }}
-
- {%- for post in collections.posts | reverse %}
- {%- set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.base) }}{% endset %}
-
- {{ post.data.title }}
-
- {{ post.date | dateToRfc3339 }}
- {{ absolutePostUrl }}
- {{ post.content | renderTransforms(post.data.page, metadata.base) }}
-
- {%- endfor %}
-
diff --git a/src/meta/sitemap.xml b/src/meta/sitemap.xml.njk
similarity index 100%
rename from src/meta/sitemap.xml
rename to src/meta/sitemap.xml.njk
diff --git a/src/meta/tag-pages.njk b/src/meta/tag-pages.njk
new file mode 100644
index 0000000..835888d
--- /dev/null
+++ b/src/meta/tag-pages.njk
@@ -0,0 +1,22 @@
+---
+layout: page.njk
+pagination:
+ data: collections.tagPagination
+ size: 1
+ alias: tag
+eleventyComputed:
+ permalink: /tag/{{ tag.tagName | slugify }}/{% if tag.pageNumber %}{{ tag.pageNumber + 1 }}/{% endif %}
+ title: "tag: {{ tag.tagName }}"
+---
+
+{% set postlist = tag.pageData %}
+{% include "postlist.njk" %}
+
+{# idk why these are backwards either #}
+{% if tag.pageNumber > 0 %}
+ {% set newerHref = pagination.href.previous %}
+{% endif %}
+{% if tag.pageNumber < tag.pageSize - 1 %}
+ {% set olderHref = pagination.href.next %}
+{% endif %}
+{% include "pagination.njk" %}
diff --git a/src/pages/gallery.njk b/src/pages/gallery.njk
index b9dd769..2ee1e7e 100644
--- a/src/pages/gallery.njk
+++ b/src/pages/gallery.njk
@@ -14,3 +14,8 @@ label: view the gallery
the gallery page is for finished art
{% include "postlist.njk" %}
+
+{# idk why these are backwards either #}
+{% set newerHref = pagination.href.previous %}
+{% set olderHref = pagination.href.next %}
+{% include "pagination.njk" %}
diff --git a/src/pages/reference.njk b/src/pages/reference.njk
index 52da598..72cbf97 100644
--- a/src/pages/reference.njk
+++ b/src/pages/reference.njk
@@ -14,3 +14,8 @@ label: read reference posts
the reference page is for informational posts
{% include "postlist.njk" %}
+
+{# idk why these are backwards either #}
+{% set newerHref = pagination.href.previous %}
+{% set olderHref = pagination.href.next %}
+{% include "pagination.njk" %}
diff --git a/src/pages/tag-pages.njk b/src/pages/tag-pages.njk
deleted file mode 100644
index 34bd346..0000000
--- a/src/pages/tag-pages.njk
+++ /dev/null
@@ -1,24 +0,0 @@
----
-pagination:
- data: collections.doublePagination
- size: 1
- alias: tag
-eleventyComputed:
- permalink: /tag/{{ tag.tagName | slugify }}/{% if tag.pageNumber %}{{ tag.pageNumber + 1 }}/{% endif %}
- title: "Posts tagged {{ tag.tagName }}"
----
-{% set postlist = tag.pageData %}
-{% include "postlist.njk" %}
-
-{% if tag.pageNumber > 0 or tag.pageNumber < tag.pageSize - 1 %}
-
-{% endif %}
diff --git a/src/pages/tags.njk b/src/pages/tags.njk
new file mode 100644
index 0000000..e69de29
diff --git a/src/posts/2026/2026-02-17-sample.md b/src/posts/2026/2026-02-17-sample.md
index 6cd1ff2..06745b5 100644
--- a/src/posts/2026/2026-02-17-sample.md
+++ b/src/posts/2026/2026-02-17-sample.md
@@ -1,8 +1,9 @@
---
-title: Sample
+title: Sample 0
date: 2026-02-17
tags:
- gallery
+ - test
image:
src: 2026/sample-0.jpg
alt: filler
diff --git a/src/posts/2026/sample-1.md b/src/posts/2026/sample-1.md
new file mode 100644
index 0000000..93eb206
--- /dev/null
+++ b/src/posts/2026/sample-1.md
@@ -0,0 +1,12 @@
+---
+title: Sample 1
+date: 2026-02-18
+tags:
+ - gallery
+ - test
+image:
+ src: 2026/sample-0.jpg
+ alt: filler
+---
+
+
diff --git a/src/posts/2026/sample-2.md b/src/posts/2026/sample-2.md
new file mode 100644
index 0000000..0e1535c
--- /dev/null
+++ b/src/posts/2026/sample-2.md
@@ -0,0 +1,12 @@
+---
+title: Sample 2
+date: 2026-02-19
+tags:
+ - gallery
+ - test
+image:
+ src: 2026/sample-0.jpg
+ alt: filler
+---
+
+
diff --git a/src/posts/2026/sample-3.md b/src/posts/2026/sample-3.md
new file mode 100644
index 0000000..c91b7d7
--- /dev/null
+++ b/src/posts/2026/sample-3.md
@@ -0,0 +1,12 @@
+---
+title: Sample 3
+date: 2026-02-20
+tags:
+ - gallery
+ - test
+image:
+ src: 2026/sample-0.jpg
+ alt: filler
+---
+
+
diff --git a/src/posts/2026/sample-4.md b/src/posts/2026/sample-4.md
new file mode 100644
index 0000000..168dc11
--- /dev/null
+++ b/src/posts/2026/sample-4.md
@@ -0,0 +1,12 @@
+---
+title: Sample 4
+date: 2026-02-21
+tags:
+ - gallery
+ - test
+image:
+ src: 2026/sample-0.jpg
+ alt: filler
+---
+
+