'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); };