diff --git a/src/discoverJSONData.js b/src/discoverJSONData.js index e67718c..d826357 100644 --- a/src/discoverJSONData.js +++ b/src/discoverJSONData.js @@ -1,5 +1,6 @@ const { join } = require('path'); const { readdir, readJson } = require('fs-extra'); +const marked = require('marked'); const requestGithub = require('./request'); const schema = require('./schema'); @@ -15,7 +16,12 @@ const getPinnedRepoJSONs = async () => { } } } = await requestGithub(schema); - return pinnedRepoData.map(data => data.node); + return pinnedRepoData.map(data => { + if (data.node.readme && data.node.readme.text) { + data.node.readme.html = marked(data.node.readme.text); + } + return data.node; + }); }; const getStaticPageJSONs = async () => { @@ -35,7 +41,13 @@ const getStaticPageJSONs = async () => { }); try { - return await Promise.all(readFilesPromises); + let allData = await Promise.all(readFilesPromises); + return allData.map(data => { + if (data.readme && data.readme.text) { + data.readme.html = marked(data.readme.text); + } + return data; + }); } catch (error) { console.error('Error while reading JSON', error); return; diff --git a/src/generateHTMLPages.js b/src/generateHTMLPages.js index c5eb95a..eb05cc7 100644 --- a/src/generateHTMLPages.js +++ b/src/generateHTMLPages.js @@ -1,22 +1,24 @@ const { join } = require('path'); const { outputFile } = require('fs-extra'); -const marked = require('marked'); const getTemplate = require('./template'); const distPath = './dist'; const generateIndexPage = async jsonData => { - console.log('Index page...TODO'); + const indexTemplate = await getTemplate('index'); + + try { + return outputFile(join(distPath, 'index') + '.html', indexTemplate(jsonData)); + } catch (error) { + console.error('Error while writing index html file', error); + return; + } }; const generateInteriorPages = async jsonData => { const interiorTemplate = await getTemplate('interior'); 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)); + return outputFile(join(distPath, json.name) + '.html', interiorTemplate(json)); } try { diff --git a/src/pages/example.json b/src/pages/example.json index 8b20df1..cfdcf2a 100644 --- a/src/pages/example.json +++ b/src/pages/example.json @@ -1,3 +1,6 @@ { - "name": "Example" + "name": "Example", + "readme": { + "text": "## Whats Up?" + } } diff --git a/src/templates/index.hbs b/src/templates/index.hbs new file mode 100644 index 0000000..72030e6 --- /dev/null +++ b/src/templates/index.hbs @@ -0,0 +1,22 @@ + + +
+