Improve quadrant pages

This commit is contained in:
Tom Raithel
2017-01-24 22:30:11 +01:00
parent 0252c9e112
commit cc492e5438
9 changed files with 66 additions and 15 deletions

View File

@@ -13,8 +13,8 @@ import {
outputRadar(radar); outputRadar(radar);
createStatic(radar); createStatic(radar);
console.log('Radar build!'); console.log('Built radar');
console.log(JSON.stringify(radar, null, 2)); // console.log(JSON.stringify(radar, null, 2));
} catch(e) { } catch(e) {
console.error('error:', e); console.error('error:', e);
} }

View File

@@ -3,11 +3,10 @@ import { distPath } from './file';
var distDir = distPath(); var distDir = distPath();
console.log('<<< start cleaning dist dir: ', distDir);
emptyDir(distDir, (err) => { emptyDir(distDir, (err) => {
if (!err) { if (!err) {
console.log('done cleaning dist dir >>>'); console.log('Cleaned dist dir', distDir);
} else { } else {
console.error(err); console.error(err);
} }

View File

@@ -7,7 +7,11 @@ import {
distPath, distPath,
getAllMarkdownFiles, getAllMarkdownFiles,
} from './file'; } from './file';
import { item as itemTemplate } from './template'; import {
item as itemTemplate,
quadrant as quadrantTemplate,
vars,
} from './template';
export const createRadar = async (tree) => { export const createRadar = async (tree) => {
const fileNames = (await getAllMarkdownFiles(radarPath())).reverse(); const fileNames = (await getAllMarkdownFiles(radarPath())).reverse();
@@ -85,13 +89,14 @@ const addRevisionToItem = (item = {
export const outputRadar = (radar) => { export const outputRadar = (radar) => {
return Promise.all( return Promise.all(
Object.entries(radar).map(([quadrantName, quadrant]) => ( Object.entries(radar).map(async ([quadrantName, quadrant]) => {
await outputQuadrantPage(quadrantName, quadrant);
Object.entries(quadrant).map(([itemName, item]) => ( Object.entries(quadrant).map(([itemName, item]) => (
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
outputFile(distPath(quadrantName, `${itemName}.html`), itemTemplate({ outputFile(distPath(quadrantName, `${itemName}.html`), itemTemplate(vars({
quadrantName, quadrantName,
item, item,
}), (err, data) => { })), (err, data) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -100,6 +105,21 @@ export const outputRadar = (radar) => {
}) })
}) })
)) ))
)) })
); );
}; };
const outputQuadrantPage = (quadrantName, quadrant) => (
new Promise((resolve, reject) => {
outputFile(distPath(`${quadrantName}.html`), quadrantTemplate(vars({
quadrantName,
quadrant,
})), (err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
})
})
)

View File

@@ -7,6 +7,9 @@ import {
distPath, distPath,
getAllPugFiles, getAllPugFiles,
} from './file'; } from './file';
import {
vars,
} from './template';
export const createStatic = async (radar) => { export const createStatic = async (radar) => {
const paths = await getAllPugFiles(staticPath()); const paths = await getAllPugFiles(staticPath());
@@ -25,9 +28,9 @@ const getPlainFileNames = (paths) => (
const renderStaticPages = (radar, fileNames) => ( const renderStaticPages = (radar, fileNames) => (
Promise.all(fileNames.map((name) => ( Promise.all(fileNames.map((name) => (
new Promise((resolve, reject) => ( new Promise((resolve, reject) => (
outputFile(distPath(`${name}.html`), pug.renderFile(staticPath(`${name}.pug`), { outputFile(distPath(`${name}.html`), pug.renderFile(staticPath(`${name}.pug`), vars({
radar, radar,
}), (err, data) => { })), (err, data) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {

View File

@@ -3,4 +3,20 @@ import { relativePath } from './file';
const templateFolder = 'templates'; const templateFolder = 'templates';
export const vars = (vars) => ({
translate: (text) => {
const mappings = {
'languages-and-frameworks': 'Languages & Frameworks',
'methods-and-patterns': 'Methods & Patterns',
'platforms-and-aoe-services': 'Platforms and AOE Services',
'tools': 'Tools',
};
return mappings[text.trim()] || '-';
},
...vars,
})
export const item = pug.compileFile(relativePath(templateFolder, 'item.pug')); export const item = pug.compileFile(relativePath(templateFolder, 'item.pug'));
export const quadrant = pug.compileFile(relativePath(templateFolder, 'quadrant.pug'));

View File

@@ -7,7 +7,7 @@ block content
ul ul
each quadrant, quadrantName in radar each quadrant, quadrantName in radar
li li
h4= quadrantName h4= translate(quadrantName)
ul ul
each radarItem, itemName in quadrant each radarItem, itemName in quadrant
li li

View File

@@ -4,7 +4,7 @@ block vars
- var title=item.attributes.title - var title=item.attributes.title
block content block content
a(href='/' + quadrantName + '.html') #{quadrantName} a(href='/' + quadrantName + '.html')= translate(quadrantName)
h1 #{item.attributes.title} h1 #{item.attributes.title}
= ' ' = ' '
small #{item.attributes.ring} small #{item.attributes.ring}

View File

@@ -5,7 +5,8 @@ html
block scripts block scripts
script(src='/jquery.js') script(src='/jquery.js')
h3 AOE Tech Radar h3
a(href='/') AOE Tech Radar
hr hr

12
templates/quadrant.pug Normal file
View File

@@ -0,0 +1,12 @@
extends layout.pug
block vars
- var title='Quadrant'
block content
h1
= translate(quadrantName)
ul
each radarItem, itemName in quadrant
li
a(href='/' + quadrantName + '/' + itemName + '.html')= radarItem.attributes.title