-'use strict';
-
-const { template, templateSettings } = require('dot');
-const { encodeXML } = require('entities');
-const { readFile, writeFile } = require('fs/promises');
-const { join } = require('path');
-const { debuglog } = require('util');
+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'),
extractTitle(postText) {
- return postText.trim().split('\n')[0].replace('#', '').trim();
+ return postText.trim()
+ .split('\n')[0]
+ .replace('#', '')
+ .replace(/&/g, '&')
+ .trim();
}
};
* @param {string} target the target directory
* @param {Array.<Blog.tPost>} posts the list of posts
*/
-module.exports = async function RSSGenerator(source, target, posts) {
+export default async function RSSGenerator(source, target, posts) {
internals.debuglog('Generating RSS');
const feedTarget = join(target, internals.kFeedName);
title: internals.extractTitle(post.raw),
html: encodeXML(post.html)
}));
- const feedXml = template(feedTemplate, {
- ...templateSettings,
+ const feedXml = Dot.template(feedTemplate, {
+ ...Dot.templateSettings,
strip: false
})({ posts });
await writeFile(feedTarget, feedXml);
-};
+}