Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 18 additions & 14 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
const rssPlugin = require("./src/rssPlugin.js");
const dateRfc3339 = require("./src/dateRfc3339.js");
const dateRfc822 = require("./src/dateRfc822.js");
const getNewestCollectionItemDate = require("./src/getNewestCollectionItemDate.js");
const virtualTemplate = require("./src/virtualTemplate.js");
import rssPlugin from "./src/rssPlugin.js";
import dateRfc3339 from "./src/dateRfc3339.js";
import dateRfc822 from "./src/dateRfc822.js";
import getNewestCollectionItemDate from "./src/getNewestCollectionItemDate.js";
import virtualTemplate from "./src/virtualTemplate.js";

const absoluteUrl = require("./src/absoluteUrl.js");
const convertHtmlToAbsoluteUrls = require("./src/htmlToAbsoluteUrls.js");
import absoluteUrl from "./src/absoluteUrl.js";
import convertHtmlToAbsoluteUrls from "./src/htmlToAbsoluteUrls.js";

module.exports = rssPlugin;
module.exports.feedPlugin = virtualTemplate;
module.exports.dateToRfc3339 = dateRfc3339;
module.exports.dateToRfc822 = dateRfc822;
module.exports.getNewestCollectionItemDate = getNewestCollectionItemDate;
module.exports.absoluteUrl = absoluteUrl;
module.exports.convertHtmlToAbsoluteUrls = convertHtmlToAbsoluteUrls;
export default rssPlugin;

export {
rssPlugin,
virtualTemplate as feedPlugin,
dateRfc3339 as dateToRfc3339,
dateRfc822 as dateToRfc822,
getNewestCollectionItemDate as getNewestCollectionItemDate,
absoluteUrl as absoluteUrl,
convertHtmlToAbsoluteUrls as convertHtmlToAbsoluteUrls
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "@11ty/eleventy-plugin-rss",
"version": "2.0.4",
"version": "3.0.0-alpha.1",
"type": "module",
"description": "Generate an Atom, RSS, or JSON feed with Eleventy.",
"publishConfig": {
"access": "public"
Expand Down
4 changes: 2 additions & 2 deletions sample/config-sample.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const rssPlugin = require("../");
import rssPlugin from "../.eleventy.js";

module.exports = function(eleventyConfig) {
export default function(eleventyConfig) {
// eleventyConfig.ignores.add("json.njk");
// eleventyConfig.ignores.add("atom.njk");
// eleventyConfig.ignores.add("rss.njk");
Expand Down
5 changes: 3 additions & 2 deletions src/absoluteUrl.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const debug = require("debug")("Eleventy:Rss");
import debugUtil from "debug";
const debug = debugUtil("Eleventy:Rss");

// This is deprecated! Use the Eleventy HTML <base> plugin instead (2.0+)
module.exports = function(url, base) {
export default function(url, base) {
try {
return (new URL(url, base)).toString()
} catch(e) {
Expand Down
2 changes: 1 addition & 1 deletion src/dateRfc3339.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Atom uses RFC 3339 dates
// https://tools.ietf.org/html/rfc3339#section-5.8
module.exports = function(dateObj) {
export default function(dateObj) {
let s = dateObj.toISOString();

// remove milliseconds
Expand Down
2 changes: 1 addition & 1 deletion src/dateRfc822.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = function pubDateRFC822(value) {
export default function pubDateRFC822(value) {
const date = new Date(value);
const options = {
weekday: 'short',
Expand Down
2 changes: 1 addition & 1 deletion src/getNewestCollectionItemDate.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = function(collection, emptyFallbackDate) {
export default function(collection, emptyFallbackDate) {
if( !collection || !collection.length ) {
return emptyFallbackDate || new Date();
}
Expand Down
8 changes: 4 additions & 4 deletions src/htmlToAbsoluteUrls.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const posthtml = require('posthtml');
const urls = require('@11ty/posthtml-urls')
const absoluteUrl = require("./absoluteUrl");
import posthtml from 'posthtml';
import urls from '@11ty/posthtml-urls';
import absoluteUrl from "./absoluteUrl.js";

// This is deprecated! Use the Eleventy HTML <base> plugin instead (2.0+)
module.exports = async function(htmlContent, base, processOptions = {}) {
export default async function(htmlContent, base, processOptions = {}) {
if( !base ) {
throw new Error( "eleventy-plugin-rss: htmlToAbsoluteUrls(absolutePostUrl) was missing the full URL base `absolutePostUrl` argument.")
}
Expand Down
16 changes: 7 additions & 9 deletions src/rssPlugin.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
const pkg = require("../package.json");
import pkg from "../package.json" with {type: "json"};

const dateRfc3339 = require("./dateRfc3339.js");
const dateRfc822 = require("./dateRfc822.js");
const getNewestCollectionItemDate = require("./getNewestCollectionItemDate.js");
import dateRfc3339 from "./dateRfc3339.js";
import dateRfc822 from "./dateRfc822.js";
import getNewestCollectionItemDate from "./getNewestCollectionItemDate.js";

const absoluteUrl = require("./absoluteUrl.js");
const convertHtmlToAbsoluteUrls = require("./htmlToAbsoluteUrls.js");
import absoluteUrl from "./absoluteUrl.js";
import convertHtmlToAbsoluteUrls from "./htmlToAbsoluteUrls.js";


function eleventyRssPlugin(eleventyConfig, options = {}) {
export default function eleventyRssPlugin(eleventyConfig, options = {}) {
eleventyConfig.versionCheck(pkg["11ty"].compatibility);

// Guaranteed unique, first add wins
Expand Down Expand Up @@ -58,5 +58,3 @@ Object.defineProperty(eleventyRssPlugin, "eleventyPluginOptions", {
unique: true
}
});

module.exports = eleventyRssPlugin;
14 changes: 7 additions & 7 deletions src/virtualTemplate.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
const pkg = require("../package.json");
const { DeepCopy } = require("@11ty/eleventy-utils");
import debugUtil from "debug";
import pkg from "../package.json" with {type: "json"};

const rssPlugin = require("./rssPlugin.js");
import { DeepCopy } from "@11ty/eleventy-utils";

const debug = require("debug")("Eleventy:Rss:Feed");
import rssPlugin from "./rssPlugin.js";

const debug = debugUtil("Eleventy:Rss:Feed");

function getFeedContent({ type, stylesheet, collection }) {
// Note: page.lang comes from the i18n plugin: https://www.11ty.dev/docs/plugins/i18n/#page.lang
Expand Down Expand Up @@ -96,7 +98,7 @@ ${stylesheet ? `<?xml-stylesheet href="${stylesheet}" type="text/xsl"?>\n` : ""}
throw new Error("Missing or invalid feed type. Received: " + type);
}

function eleventyFeedPlugin(eleventyConfig, options = {}) {
export default function eleventyFeedPlugin(eleventyConfig, options = {}) {
eleventyConfig.versionCheck(pkg["11ty"].compatibility);

// Guaranteed unique, first add wins
Expand Down Expand Up @@ -183,5 +185,3 @@ Object.defineProperty(eleventyFeedPlugin, "eleventyPluginOptions", {
unique: false
}
});

module.exports = eleventyFeedPlugin;
4 changes: 2 additions & 2 deletions test/dateToRfc3339Test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const test = require("ava");
const dateRfc3339 = require("../src/dateRfc3339.js");
import test from "ava";
import dateRfc3339 from "../src/dateRfc3339.js";

test("Test to ISO without millseconds", t => {
let d = new Date('05 October 2011 14:48 UTC');
Expand Down
4 changes: 2 additions & 2 deletions test/dateToRfc822.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const test = require("ava");
const dateRfc822 = require("../src/dateRfc822.js");
import test from "ava";
import dateRfc822 from "../src/dateRfc822.js";

// RFC-822 date format
// <pubDate>Wed, 02 Oct 2002 08:00:00 EST</pubDate>
Expand Down
4 changes: 2 additions & 2 deletions test/getNewestCollectionItemDateTest.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const test = require("ava");
const getNewestCollectionItemDate = require("../src/getNewestCollectionItemDate");
import test from "ava";
import getNewestCollectionItemDate from "../src/getNewestCollectionItemDate.js";

test("getNewestCollectionItemDate", t => {
let first = new Date(2018, 1, 1);
Expand Down
4 changes: 2 additions & 2 deletions test/htmlToAbsoluteUrlsTest.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const test = require("ava");
const htmlToAbsUrls = require("../src/htmlToAbsoluteUrls.js");
import test from "ava";
import htmlToAbsUrls from "../src/htmlToAbsoluteUrls.js";

test("Changes a link href", async t => {
t.is(await htmlToAbsUrls(`<a href="#testanchor">Hello</a>`, "http://example.com/"), `<a href="http://example.com/#testanchor">Hello</a>`);
Expand Down
4 changes: 2 additions & 2 deletions test/virtualTemplatesTest.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const test = require("ava");
const { feedPlugin } = require("../");
import test from "ava";
import { feedPlugin } from "../.eleventy.js";

// https://github.com/11ty/eleventy-plugin-rss/issues/50
test("RSS virtual templates plugin", async (t) => {
Expand Down