From bd6e4ebc1cb4e8350983f7387b85026e03ac87a6 Mon Sep 17 00:00:00 2001 From: Tom Raithel Date: Sun, 22 Jan 2017 21:13:44 +0100 Subject: [PATCH] Output radar html files --- scripts/create.js | 7 +++---- scripts/file.js | 8 ++++---- scripts/radar.js | 27 +++++++++++++++++++++++++-- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/scripts/create.js b/scripts/create.js index e99b05b..4cae09c 100644 --- a/scripts/create.js +++ b/scripts/create.js @@ -10,17 +10,16 @@ import { distPath, } from './file'; import { - getTree, createRadar, + outputRadar, } from './radar'; (async () => { try { - // const tree = await getTree(); - // console.log(JSON.stringify(tree, null, 2)); const radar = await createRadar(); - console.log(JSON.stringify(radar, null, 2)); + outputRadar(radar); + // console.log(JSON.stringify(radar, null, 2)); } catch(e) { console.error('error:', e); } diff --git a/scripts/file.js b/scripts/file.js index c132c6d..132a973 100644 --- a/scripts/file.js +++ b/scripts/file.js @@ -4,10 +4,10 @@ export const relativePath = (...relativePath) => ( path.resolve(__dirname, '..', ...relativePath) ); -export const srcPath = (pathInSrc = '') => ( - relativePath('radar', pathInSrc) +export const srcPath = (...pathInSrc) => ( + relativePath('radar', ...pathInSrc) ); -export const distPath = (pathInDist = '') => ( - relativePath('dist', pathInDist) +export const distPath = (...pathInDist) => ( + relativePath('dist', ...pathInDist) ); diff --git a/scripts/radar.js b/scripts/radar.js index a43bff8..129f19d 100644 --- a/scripts/radar.js +++ b/scripts/radar.js @@ -1,9 +1,9 @@ import { walk } from 'walk'; -import fs, { readFile } from 'fs-extra'; +import fs, { readFile, outputFile } from 'fs-extra'; import path from 'path'; import frontmatter from 'front-matter'; import marked from 'marked'; -import { srcPath } from './file'; +import { srcPath, distPath } from './file'; export const createRadar = async (tree) => { const fileNames = await getAllMarkdownFiles(); @@ -105,3 +105,26 @@ const addRevisionToItem = (item = { revisions: item.revisions.concat(rest), }; }; + + +export const outputRadar = (radar) => { + return Promise.all( + Object.entries(radar).map(([quadrantName, quadrant]) => ( + Object.entries(quadrant).map(([itemName, item]) => ( + new Promise((resolve, reject) => ( + outputFile(distPath(quadrantName, `${itemName}.html`), getItemHtml(item), (err, data) => { + if (err) { + reject(err); + } else { + resolve(data); + } + }) + )) + )) + )) + ); +}; + +const getItemHtml = (item) => (` +

${item.attributes.title}

+`)