mirror of
https://github.com/svemagie/blog-eleventy-indiekit.git
synced 2026-04-02 16:44:56 +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
|
||||
eleventyConfig.addFilter("slugify", (str) => {
|
||||
if (!str) return "";
|
||||
|
||||
7
sitemap.njk
Normal file
7
sitemap.njk
Normal file
@@ -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