mirror of
https://github.com/svemagie/blog-eleventy-indiekit.git
synced 2026-05-15 06:58:50 +02:00
feat: add sitemap.xml generation with URL pattern exclusions
Wire up @quasibit/eleventy-plugin-sitemap (already installed) with a sitemap.njk template and excludeFromSitemap filter. Excludes replies, feeds, categories, digest, debug pages, admin pages, and 404.
This commit is contained in:
@@ -674,6 +674,29 @@ export default function (eleventyConfig) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Exclude pages from sitemap by URL pattern
|
||||||
|
// Usage: collections.all | excludeFromSitemap
|
||||||
|
eleventyConfig.addFilter("excludeFromSitemap", (items) => {
|
||||||
|
const excludePatterns = [
|
||||||
|
/^\/replies\//,
|
||||||
|
/^\/feed\.(xml|json)$/,
|
||||||
|
/\/feed\.(xml|json)$/,
|
||||||
|
/^\/categories\//,
|
||||||
|
/^\/digest/,
|
||||||
|
/^\/webmention-debug\//,
|
||||||
|
/^\/404\.html$/,
|
||||||
|
/^\/sitemap\.xml$/,
|
||||||
|
/^\/dashboard/,
|
||||||
|
/^\/homepage/,
|
||||||
|
/^\/search\//,
|
||||||
|
/^\/graph\//,
|
||||||
|
];
|
||||||
|
return items.filter((item) => {
|
||||||
|
const url = item.url || "";
|
||||||
|
return !excludePatterns.some((pattern) => pattern.test(url));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Slugify filter
|
// Slugify filter
|
||||||
eleventyConfig.addFilter("slugify", (str) => {
|
eleventyConfig.addFilter("slugify", (str) => {
|
||||||
if (!str) return "";
|
if (!str) return "";
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
permalink: /sitemap.xml
|
||||||
|
layout: null
|
||||||
|
eleventyExcludeFromCollections: true
|
||||||
|
---
|
||||||
|
{% set sitemapItems = collections.all | excludeFromSitemap %}
|
||||||
|
{% sitemap sitemapItems %}
|
||||||
Reference in New Issue
Block a user