From 5f31ea34aea76b8357913abd003bddb0f47f4dab Mon Sep 17 00:00:00 2001 From: Ben Beltran Date: Wed, 3 Jun 2020 07:40:42 +0200 Subject: Add TXT support --- lib/generators/txt.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/generators/txt.js (limited to 'lib/generators') diff --git a/lib/generators/txt.js b/lib/generators/txt.js new file mode 100644 index 0000000..af5ec9c --- /dev/null +++ b/lib/generators/txt.js @@ -0,0 +1,38 @@ +'use strict'; + +const { template, templateSettings } = require('dot'); +const { readFile, writeFile } = require('fs/promises'); +const { join } = require('path'); +const { debuglog } = require('util'); + +const internals = { + debuglog: debuglog('blog'), + + kTextName: 'index.txt' +}; + +/** + * Generates a TXT version of the blog + * + * @name TXTGenerator + * @param {string} source the source directory + * @param {string} target the target directory + * @param {Array.} posts the list of posts + */ +module.exports = async function TXTGenerator(source, target, posts) { + + internals.debuglog('Generating TXT'); + const textTarget = join(target, internals.kTextName); + const textLocation = join(source, internals.kTextName); + + internals.debuglog(`Reading ${textLocation}`); + const textTemplate = await readFile(textLocation, { encoding: 'utf8' }); + + internals.debuglog('Writing TXT'); + const text = template(textTemplate, { + ...templateSettings, + strip: false + })({ posts }); + await writeFile(textTarget, text); +}; + -- cgit