diff options
| author | Ben Beltran <ben@nsovocal.com> | 2020-06-03 07:40:42 +0200 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2020-06-03 07:40:42 +0200 |
| commit | 5f31ea34aea76b8357913abd003bddb0f47f4dab (patch) | |
| tree | 37efcdbc86caca0fbd4864926e7a6deb16952ed5 /lib/generators | |
| parent | db7b464d701c7d48777ddd38a10f69093cd5442c (diff) | |
Add TXT support
Diffstat (limited to 'lib/generators')
| -rw-r--r-- | lib/generators/txt.js | 38 |
1 files changed, 38 insertions, 0 deletions
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.<Blog.tPost>} 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); +}; + |