section splitter

This commit is contained in:
Nycki 2024-12-13 20:45:59 -08:00
parent a6a086aa32
commit b94e627a0a
5 changed files with 43 additions and 15 deletions

6
_includes/updates.njk Normal file
View file

@ -0,0 +1,6 @@
{% for section in content | sections %}
START SECTION
{{ section | safe }}
END SECTION
{% endfor %}

View file

@ -1,14 +0,0 @@
---
permalink: /sitemap.xml
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
{%- for page in collections.all %}
{% set absoluteUrl %}{{ page.url | htmlBaseUrl(metadata.url) }}{% endset %}
<url>
<loc>{{ absoluteUrl }}</loc>
<lastmod>{{ page.date | htmlDateString }}</lastmod>
</url>
{%- endfor %}
</urlset>

11
content/updates.md Normal file
View file

@ -0,0 +1,11 @@
---
layout: updates.njk
---
# first update
content
# second update
more content

View file

@ -1,7 +1,8 @@
import { DateTime } from "luxon";
import pluginSyntaxHighlight from "@11ty/eleventy-plugin-syntaxhighlight";
import { EleventyHtmlBasePlugin } from "@11ty/eleventy";
import pluginRss from '@11ty/eleventy-plugin-rss';
import { JSDOM } from 'jsdom';
import { DateTime } from "luxon";
/** @param {import('@11ty/eleventy').UserConfig} eleventyConfig */
export default function(eleventyConfig) {
@ -92,6 +93,29 @@ export default function(eleventyConfig) {
}
});
// https://stackoverflow.com/a/74005383
eleventyConfig.addFilter('sections', (html) => {
const dom = new JSDOM(html);
const document = dom.window.document;
const chunks = [];
for (const h1 of document.querySelectorAll('h1')) {
let chunk = '';
let elem = h1;
while (true) {
chunk += elem.outerHTML;
elem = document.evaluate(
"following-sibling::*[1]",
elem,
function() {},
dom.window.XPathResult.FIRST_ORDERED_NODE_TYPE
).singleNodeValue;
if (!elem || elem.nodeName === 'H1') break;
}
chunks.push(chunk);
}
return chunks;
});
eleventyConfig.addShortcode("currentBuildDate", () => {
return (new Date()).toISOString();
})

View file

@ -38,6 +38,7 @@
"@11ty/eleventy-plugin-rss": "^2.0.2",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"cross-env": "^7.0.3",
"jsdom": "^25.0.1",
"luxon": "^3.3.0",
"markdown-it-anchor": "^8.6.7"
}