diff options
Diffstat (limited to 'lib/generators/html.js')
| -rw-r--r-- | lib/generators/html.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/generators/html.js b/lib/generators/html.js new file mode 100644 index 0000000..ba2676c --- /dev/null +++ b/lib/generators/html.js @@ -0,0 +1,35 @@ +'use strict'; + +const { template } = require('dot'); +const { readFile, writeFile } = require('fs/promises'); +const { join } = require('path'); +const { debuglog } = require('util'); + +const internals = { + debuglog: debuglog('blog'), + + kIndexName: 'index.html' +}; + +/** + * Generates the blog index page + * + * @name HTMLGenerator + * @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 HTMLGenerator(source, target, posts) { + + internals.debuglog('Generating HTML'); + const indexTarget = join(target, internals.kIndexName); + const indexLocation = join(source, internals.kIndexName); + + internals.debuglog(`Reading ${indexLocation}`); + const indexTemplate = await readFile(indexLocation, { encoding: 'utf8' }); + + internals.debuglog('Writing HTML'); + const indexHtml = template(indexTemplate)({ posts }); + await writeFile(indexTarget, indexHtml); +}; + |