diff options
Diffstat (limited to 'lib/generators/rss.js')
| -rw-r--r-- | lib/generators/rss.js | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/lib/generators/rss.js b/lib/generators/rss.js deleted file mode 100644 index c47ba03..0000000 --- a/lib/generators/rss.js +++ /dev/null @@ -1,51 +0,0 @@ -import Dot from 'dot'; -import { encodeXML } from 'entities'; -import { readFile, writeFile } from 'fs/promises'; -import { join } from 'path'; -import { debuglog } from 'util'; - -const internals = { - debuglog: debuglog('blog'), - - kFeedName: 'feed.xml', - - extractTitle(postText) { - - return postText.trim() - .split('\n')[0] - .replace('#', '') - .replace(/&/g, '&') - .trim(); - } -}; - -/** - * Generates an RSS feed XML file - * - * @name RSSGenerator - * @param {string} source the source directory - * @param {string} target the target directory - * @param {Array.<Blog.tPost>} posts the list of posts - */ -export default async function RSSGenerator(source, target, posts) { - - internals.debuglog('Generating RSS'); - const feedTarget = join(target, internals.kFeedName); - const feedLocation = join(source, internals.kFeedName); - - internals.debuglog(`Reading ${feedLocation}`); - const feedTemplate = await readFile(feedLocation, { encoding: 'utf8' }); - - internals.debuglog('Writing RSS'); - posts = posts.map((post) => ({ - ...post, - createdOn: (new Date(post.createdOn)).toUTCString(), - title: internals.extractTitle(post.raw), - html: encodeXML(post.html) - })); - const feedXml = Dot.template(feedTemplate, { - ...Dot.templateSettings, - strip: false - })({ posts }); - await writeFile(feedTarget, feedXml); -} |