From 9068c422b3292a1c8679eced9738df3585d64fe0 Mon Sep 17 00:00:00 2001 From: Joe Wroten Date: Sat, 29 Dec 2018 19:23:50 -0600 Subject: [PATCH] Moved index code to a build step --- index.js | 29 ++--------------------------- src/generateHTMLPages.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 src/generateHTMLPages.js diff --git a/index.js b/index.js index 8bc6582..438a30b 100644 --- a/index.js +++ b/index.js @@ -1,29 +1,4 @@ -const { join } = require('path'); -const { outputFile } = require('fs-extra'); -const marked = require('marked'); -const getTemplate = require('./src/template'); -const { getPinnedRepoJSONs, getStaticPageJSONs } = require('./src/discoverJSONData'); +const { generateStaticPages } = require('./src/generateHTMLPages'); -const distPath = './dist'; - -(async () => { - const interiorTemplate = await getTemplate('interior'); - let repoJSONs = await getPinnedRepoJSONs(); - let staticJSONs = await getStaticPageJSONs(); - let combinedJSONs = repoJSONs.concat(staticJSONs); - const saveAsInteriorHTML = async json => { - let fileName = json.name.replace(/[^a-zA-Z\d:]/g, '').toLowerCase(); - if (json.readme && json.readme.text) { - json.readme.html = marked(json.readme.text); - } - return outputFile(join(distPath, fileName) + '.html', interiorTemplate(json)); - } - - try { - await Promise.all(combinedJSONs.map(saveAsInteriorHTML)); - } catch (error) { - console.error('Error while writing html files', error); - return; - } -})(); +generateStaticPages().then(() => console.log('✓ Generated html pages')); diff --git a/src/generateHTMLPages.js b/src/generateHTMLPages.js new file mode 100644 index 0000000..ca52591 --- /dev/null +++ b/src/generateHTMLPages.js @@ -0,0 +1,32 @@ +const { join } = require('path'); +const { outputFile } = require('fs-extra'); +const marked = require('marked'); +const getTemplate = require('./template'); +const { getPinnedRepoJSONs, getStaticPageJSONs } = require('./discoverJSONData'); + +const distPath = './dist'; + +const generateStaticPages = async () => { + const interiorTemplate = await getTemplate('interior'); + let repoJSONs = await getPinnedRepoJSONs(); + let staticJSONs = await getStaticPageJSONs(); + let combinedJSONs = repoJSONs.concat(staticJSONs); + const saveAsInteriorHTML = async json => { + let fileName = json.name.replace(/[^a-zA-Z\d:]/g, '').toLowerCase(); + if (json.readme && json.readme.text) { + json.readme.html = marked(json.readme.text); + } + return outputFile(join(distPath, fileName) + '.html', interiorTemplate(json)); + } + + try { + return await Promise.all(combinedJSONs.map(saveAsInteriorHTML)); + } catch (error) { + console.error('Error while writing html files', error); + return; + } +}; + +module.exports = { + generateStaticPages, +};