diff --git a/.eleventy.js b/.eleventy.js index 7d86008..45530f3 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -6,6 +6,7 @@ const faviconPlugin = require("eleventy-favicon"); const tocPlugin = require("eleventy-plugin-nesting-toc"); const { parse } = require("node-html-parser"); const htmlMinifier = require("html-minifier"); +const pluginRss = require("@11ty/eleventy-plugin-rss"); const { headerToId, namedHeadingsFilter } = require("./src/helpers/utils"); const { @@ -304,6 +305,7 @@ module.exports = function (eleventyConfig) { collapseWhitespace: true, minifyCSS: true, minifyJS: true, + keepClosingSlash: true, }); } return content; @@ -317,6 +319,12 @@ module.exports = function (eleventyConfig) { ul: true, tags: ["h1", "h2", "h3", "h4", "h5", "h6"], }); + eleventyConfig.addPlugin(pluginRss, { + posthtmlRenderOptions: { + closingSingleTag: "slash", + singleTags: ["link"] + } + }); eleventyConfig.addFilter("jsonify", function (variable) { return JSON.stringify(variable) || '""'; }); diff --git a/package-lock.json b/package-lock.json index 551f5bc..076818a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ }, "devDependencies": { "@11ty/eleventy": "^2.0.0", + "@11ty/eleventy-plugin-rss": "^1.2.0", "cross-env": "^7.0.3", "html-minifier": "^4.0.0", "node-html-parser": "^6.1.4", @@ -143,6 +144,21 @@ "node": ">=10.0.0" } }, + "node_modules/@11ty/eleventy-plugin-rss": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz", + "integrity": "sha512-YzFnSH/5pObcFnqZ2sAQ782WmpOZHj1+xB9ydY/0j7BZ2jUNahn53VmwCB/sBRwXA/Fbwwj90q1MLo01Ru0UaQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "posthtml": "^0.16.6", + "posthtml-urls": "1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", @@ -5569,6 +5585,17 @@ } } }, + "@11ty/eleventy-plugin-rss": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz", + "integrity": "sha512-YzFnSH/5pObcFnqZ2sAQ782WmpOZHj1+xB9ydY/0j7BZ2jUNahn53VmwCB/sBRwXA/Fbwwj90q1MLo01Ru0UaQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "posthtml": "^0.16.6", + "posthtml-urls": "1.0.0" + } + }, "@11ty/eleventy-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", diff --git a/package.json b/package.json index b76e41c..912d457 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "license": "ISC", "devDependencies": { "@11ty/eleventy": "^2.0.0", + "@11ty/eleventy-plugin-rss": "^1.2.0", "cross-env": "^7.0.3", "html-minifier": "^4.0.0", "node-html-parser": "^6.1.4", @@ -45,4 +46,4 @@ "markdown-it-plantuml": "^1.4.1", "markdown-it-task-checkbox": "^1.0.6" } -} \ No newline at end of file +} diff --git a/src/site/feed.njk b/src/site/feed.njk new file mode 100644 index 0000000..cfe346d --- /dev/null +++ b/src/site/feed.njk @@ -0,0 +1,30 @@ +---json +{ + "permalink": "/feed.xml", + "eleventyExcludeFromCollections": true +} +--- +{%if meta.siteBaseUrl %} + + {{ meta.siteName}} + + + {{ collections.notes | getNewestCollectionItemDate | dateToRfc3339 }} + {{ meta.siteBaseUrl }} + {%- for note in collections.note | reverse %} + + + {% if note.title %}{{ note.title }} + {% else %}{{ note.fileSlug }} + {% endif %} + + {{ (note.updated or note.date ) | dateToRfc3339 }} + {{ meta.siteBaseUrl }}{{note.url | url }} + + {{ note.templateContent | hideDataview | link | taggify | htmlToAbsoluteUrls(meta.siteBaseUrl) }} + + + + {%- endfor %} + +{% endif %} \ No newline at end of file