]> git.r.bdr.sh - rbdr/blog/commitdiff
Add title to html/rss generators
authorRuben Beltran del Rio <redacted>
Sat, 20 Mar 2021 22:40:24 +0000 (23:40 +0100)
committerRuben Beltran del Rio <redacted>
Sat, 20 Mar 2021 22:40:24 +0000 (23:40 +0100)
lib/generators/html.js
lib/generators/rss.js

index ba2676cdb60c62ade486ce1b644dd2b7f37a3e10..9579cb265436b47504b13d30316c463a864d52cb 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
 
-const { template } = require('dot');
+const { template, templateSettings } = require('dot');
 const { readFile, writeFile } = require('fs/promises');
 const { join } = require('path');
 const { debuglog } = require('util');
@@ -29,7 +29,10 @@ module.exports = async function HTMLGenerator(source, target, posts) {
   const indexTemplate = await readFile(indexLocation, { encoding: 'utf8' });
 
   internals.debuglog('Writing HTML');
-  const indexHtml = template(indexTemplate)({ posts });
+  const indexHtml = template(indexTemplate, {
+    ...templateSettings,
+    strip: false
+  })({ posts });
   await writeFile(indexTarget, indexHtml);
 };
 
index a1fcb0801ed7c3a2db8551f62f6d9644889a1df9..ec45dc8f8e289363eeb8e5c9d27285aec1c4ba38 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
 
-const { template } = require('dot');
+const { template, templateSettings } = require('dot');
 const { encodeXML } = require('entities');
 const { readFile, writeFile } = require('fs/promises');
 const { join } = require('path');
@@ -9,7 +9,12 @@ const { debuglog } = require('util');
 const internals = {
   debuglog: debuglog('blog'),
 
-  kFeedName: 'feed.xml'
+  kFeedName: 'feed.xml',
+
+  extractTitle(postText) {
+
+    return postText.trim().split('\n')[0].replace('#', '').trim();
+  }
 };
 
 /**
@@ -33,10 +38,12 @@ module.exports = async function RSSGenerator(source, target, posts) {
   posts = posts.map((post) => ({
     ...post,
     createdOn: (new Date(post.createdOn)).toUTCString(),
+    title: internals.extractTitle(post.raw),
     html: encodeXML(post.html)
   }));
-  const feedXml = template(feedTemplate)({ posts });
+  const feedXml = template(feedTemplate, {
+    ...templateSettings,
+    strip: false
+  })({ posts });
   await writeFile(feedTarget, feedXml);
 };
-
-