Moved index code to a build step
This commit is contained in:
parent
487a3c160c
commit
9068c422b3
2 changed files with 34 additions and 27 deletions
29
index.js
29
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'));
|
||||
|
||||
|
|
32
src/generateHTMLPages.js
Normal file
32
src/generateHTMLPages.js
Normal 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,
|
||||
};
|
Loading…
Add table
Reference in a new issue