X-Git-Url: https://git.r.bdr.sh/rbdr/blog/blobdiff_plain/db7b464d701c7d48777ddd38a10f69093cd5442c..5f31ea34aea76b8357913abd003bddb0f47f4dab:/lib/generators/txt.js 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); +}; +