1
1
Fork 0

Moved index code to a build step

This commit is contained in:
Joe Wroten 2018-12-29 19:23:50 -06:00
parent 487a3c160c
commit 9068c422b3
2 changed files with 34 additions and 27 deletions

View file

@ -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'));

32
src/generateHTMLPages.js Normal file
View file

@ -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,
};