aboutsummaryrefslogtreecommitdiff
path: root/lib/generators
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2024-03-09 14:17:34 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2024-03-09 14:17:34 +0100
commit172f4c8807d44ebe38c7f227b7fdc2d6a9dbe323 (patch)
treeb880761cf254fbc668cea0d577d5331a28af67cc /lib/generators
parent36a4680d18de012e2e5c732f9db161dafa884344 (diff)
Allow sync up and down
Diffstat (limited to 'lib/generators')
-rw-r--r--lib/generators/html.js35
-rw-r--r--lib/generators/rss.js51
-rw-r--r--lib/generators/static.js48
-rw-r--r--lib/generators/txt.js35
4 files changed, 0 insertions, 169 deletions
diff --git a/lib/generators/html.js b/lib/generators/html.js
deleted file mode 100644
index 2004696..0000000
--- a/lib/generators/html.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import Dot from 'dot';
-import { readFile, writeFile } from 'fs/promises';
-import { join } from 'path';
-import { debuglog } from '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
- */
-export default 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 = Dot.template(indexTemplate, {
- ...Dot.templateSettings,
- strip: false
- })({ posts });
- await writeFile(indexTarget, indexHtml);
-}
diff --git a/lib/generators/rss.js b/lib/generators/rss.js
deleted file mode 100644
index c47ba03..0000000
--- a/lib/generators/rss.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import Dot from 'dot';
-import { encodeXML } from 'entities';
-import { readFile, writeFile } from 'fs/promises';
-import { join } from 'path';
-import { debuglog } from 'util';
-
-const internals = {
- debuglog: debuglog('blog'),
-
- kFeedName: 'feed.xml',
-
- extractTitle(postText) {
-
- return postText.trim()
- .split('\n')[0]
- .replace('#', '')
- .replace(/&/g, '&amp;')
- .trim();
- }
-};
-
-/**
- * Generates an RSS feed XML file
- *
- * @name RSSGenerator
- * @param {string} source the source directory
- * @param {string} target the target directory
- * @param {Array.<Blog.tPost>} posts the list of posts
- */
-export default async function RSSGenerator(source, target, posts) {
-
- internals.debuglog('Generating RSS');
- const feedTarget = join(target, internals.kFeedName);
- const feedLocation = join(source, internals.kFeedName);
-
- internals.debuglog(`Reading ${feedLocation}`);
- const feedTemplate = await readFile(feedLocation, { encoding: 'utf8' });
-
- internals.debuglog('Writing RSS');
- posts = posts.map((post) => ({
- ...post,
- createdOn: (new Date(post.createdOn)).toUTCString(),
- title: internals.extractTitle(post.raw),
- html: encodeXML(post.html)
- }));
- const feedXml = Dot.template(feedTemplate, {
- ...Dot.templateSettings,
- strip: false
- })({ posts });
- await writeFile(feedTarget, feedXml);
-}
diff --git a/lib/generators/static.js b/lib/generators/static.js
deleted file mode 100644
index 45f5a04..0000000
--- a/lib/generators/static.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import { access, cp, readdir } from 'fs/promises';
-import { constants } from 'fs';
-import { join } from 'path';
-import { debuglog } from 'util';
-import { kFileNotFoundError } from '../constants.js';
-
-const internals = {
- debuglog: debuglog('blog'),
- kAssetsDirectoryName: 'assets'
-};
-
-/**
- * Generates the static assets required for the blog
- *
- * @name StaticGenerator
- * @param {string} source the source directory
- * @param {string} target the target directory
- * @param {Array.<Blog.tPost>} posts the list of posts
- */
-export default async function StaticGenerator(source, target, _) {
-
- try {
- await access(source, constants.R_OK);
-
- const entries = await readdir(source, { withFileTypes: true });
- for (const entry of entries) {
- const sourceAsset = join(source, entry.name);
- const targetAsset = join(target, entry.name);
-
- internals.debuglog(`Copying ${sourceAsset} to ${targetAsset}`);
-
- if (entry.isDirectory()) {
- await cp(sourceAsset, targetAsset, { recursive: true });
- }
- else {
- await cp(sourceAsset, targetAsset);
- }
- }
- }
- catch (error) {
- if (error.code === kFileNotFoundError) {
- internals.debuglog(`No static directory found in ${source}`);
- return;
- }
-
- throw error;
- }
-}
diff --git a/lib/generators/txt.js b/lib/generators/txt.js
deleted file mode 100644
index c3d7778..0000000
--- a/lib/generators/txt.js
+++ /dev/null
@@ -1,35 +0,0 @@
-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.<Blog.tPost>} 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);
-}