Output radar html files

This commit is contained in:
Tom Raithel
2017-01-22 21:13:44 +01:00
parent 99df358c50
commit bd6e4ebc1c
3 changed files with 32 additions and 10 deletions

View File

@@ -10,17 +10,16 @@ import {
distPath, distPath,
} from './file'; } from './file';
import { import {
getTree,
createRadar, createRadar,
outputRadar,
} from './radar'; } from './radar';
(async () => { (async () => {
try { try {
// const tree = await getTree();
// console.log(JSON.stringify(tree, null, 2));
const radar = await createRadar(); const radar = await createRadar();
console.log(JSON.stringify(radar, null, 2)); outputRadar(radar);
// console.log(JSON.stringify(radar, null, 2));
} catch(e) { } catch(e) {
console.error('error:', e); console.error('error:', e);
} }

View File

@@ -4,10 +4,10 @@ export const relativePath = (...relativePath) => (
path.resolve(__dirname, '..', ...relativePath) path.resolve(__dirname, '..', ...relativePath)
); );
export const srcPath = (pathInSrc = '') => ( export const srcPath = (...pathInSrc) => (
relativePath('radar', pathInSrc) relativePath('radar', ...pathInSrc)
); );
export const distPath = (pathInDist = '') => ( export const distPath = (...pathInDist) => (
relativePath('dist', pathInDist) relativePath('dist', ...pathInDist)
); );

View File

@@ -1,9 +1,9 @@
import { walk } from 'walk'; import { walk } from 'walk';
import fs, { readFile } from 'fs-extra'; import fs, { readFile, outputFile } from 'fs-extra';
import path from 'path'; import path from 'path';
import frontmatter from 'front-matter'; import frontmatter from 'front-matter';
import marked from 'marked'; import marked from 'marked';
import { srcPath } from './file'; import { srcPath, distPath } from './file';
export const createRadar = async (tree) => { export const createRadar = async (tree) => {
const fileNames = await getAllMarkdownFiles(); const fileNames = await getAllMarkdownFiles();
@@ -105,3 +105,26 @@ const addRevisionToItem = (item = {
revisions: item.revisions.concat(rest), 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) => (`
<h1>${item.attributes.title}</h1>
`)