import Dot from 'dot'; import { readFile, writeFile } from 'fs/promises'; import { join } from 'path'; import { debuglog } from '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 */ export default 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 = Dot.template(textTemplate, { ...Dot.templateSettings, strip: false })({ posts }); await writeFile(textTarget, text); }