From f1fb698fca2779f87d6e16dd646f56395b307b03 Mon Sep 17 00:00:00 2001 From: Helen Chong Date: Wed, 7 May 2025 16:07:11 +0800 Subject: [PATCH] Reorganise configurations for blog post categories --- eleventy.config.js | 4 ++-- src/_config/categories.js | 26 ++++++++++++++++++++++++++ src/_config/collections.js | 12 ------------ src/_config/filters.js | 10 ---------- 4 files changed, 28 insertions(+), 24 deletions(-) create mode 100644 src/_config/categories.js delete mode 100644 src/_config/collections.js diff --git a/eleventy.config.js b/eleventy.config.js index ed4facc..0b12bec 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -10,7 +10,7 @@ import { VentoPlugin } from 'eleventy-plugin-vento'; import markdownItConfig from "./src/_config/markdown-it.js"; import feedsConfig from "./src/_config/feeds.js"; import filesConfig from "./src/_config/files.js"; -import collectionsConfig from "./src/_config/collections.js"; +import categoriesConfig from "./src/_config/categories.js"; import filtersConfig from "./src/_config/filters.js"; import shortCodesConfig from "./src/_config/shortcodes.js"; @@ -34,7 +34,7 @@ export default function(eleventyConfig) { eleventyConfig.addPlugin(markdownItConfig); eleventyConfig.addPlugin(feedsConfig); eleventyConfig.addPlugin(filesConfig); - eleventyConfig.addPlugin(collectionsConfig); + eleventyConfig.addPlugin(categoriesConfig); eleventyConfig.addPlugin(filtersConfig); eleventyConfig.addPlugin(shortCodesConfig); diff --git a/src/_config/categories.js b/src/_config/categories.js new file mode 100644 index 0000000..db7f442 --- /dev/null +++ b/src/_config/categories.js @@ -0,0 +1,26 @@ +export default function(eleventyConfig) { + // Add blog post categories to collections + eleventyConfig.addCollection("categories", (collectionApi) => { + let categories = new Set(); + let posts = collectionApi.getFilteredByTag('posts'); + posts.forEach(p => { + let cats = p.data.categories; + if (cats) { + cats.forEach(c => categories.add(c)); + } + }); + return Array.from(categories).sort(); + }); + + // Filter: Filter blog posts by category + eleventyConfig.addFilter("filterByCategory", (posts, cat) => { + cat = cat.toLowerCase(); + let result = posts.filter(p => { + let cats = p.data.categories.map(s => s.toLowerCase()); + if (cats) { + return cats.includes(cat); + } + }); + return result; + }); +} diff --git a/src/_config/collections.js b/src/_config/collections.js deleted file mode 100644 index 79d4848..0000000 --- a/src/_config/collections.js +++ /dev/null @@ -1,12 +0,0 @@ -export default function(eleventyConfig) { - // Add blog post categories to collections - eleventyConfig.addCollection("categories", (collectionApi) => { - let categories = new Set(); - let posts = collectionApi.getFilteredByTag('posts'); - posts.forEach(p => { - let cats = p.data.categories; - cats.forEach(c => categories.add(c)); - }); - return Array.from(categories).sort(); - }); -} \ No newline at end of file diff --git a/src/_config/filters.js b/src/_config/filters.js index 368885f..c80346a 100644 --- a/src/_config/filters.js +++ b/src/_config/filters.js @@ -22,14 +22,4 @@ export default function(eleventyConfig) { eleventyConfig.addFilter("thousands", (num) => { return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }); - - // Filter: Filter blog posts by category - eleventyConfig.addFilter("filterByCategory", (posts, cat) => { - cat = cat.toLowerCase(); - let result = posts.filter(p => { - let cats = p.data.categories.map(s => s.toLowerCase()); - return cats.includes(cat); - }); - return result; - }); }