From cc492e543861a9a60d0831dd77e1446f43c36976 Mon Sep 17 00:00:00 2001 From: Tom Raithel Date: Tue, 24 Jan 2017 22:30:11 +0100 Subject: [PATCH] Improve quadrant pages --- scripts/build.js | 4 ++-- scripts/clean.js | 3 +-- scripts/radar.js | 30 +++++++++++++++++++++++++----- scripts/static.js | 7 +++++-- scripts/template.js | 16 ++++++++++++++++ static-pages/index.pug | 2 +- templates/item.pug | 2 +- templates/layout.pug | 5 +++-- templates/quadrant.pug | 12 ++++++++++++ 9 files changed, 66 insertions(+), 15 deletions(-) create mode 100644 templates/quadrant.pug diff --git a/scripts/build.js b/scripts/build.js index 44b400b..3e24c7a 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -13,8 +13,8 @@ import { outputRadar(radar); createStatic(radar); - console.log('Radar build!'); - console.log(JSON.stringify(radar, null, 2)); + console.log('Built radar'); + // console.log(JSON.stringify(radar, null, 2)); } catch(e) { console.error('error:', e); } diff --git a/scripts/clean.js b/scripts/clean.js index ebf8fff..db3105e 100644 --- a/scripts/clean.js +++ b/scripts/clean.js @@ -3,11 +3,10 @@ import { distPath } from './file'; var distDir = distPath(); -console.log('<<< start cleaning dist dir: ', distDir); emptyDir(distDir, (err) => { if (!err) { - console.log('done cleaning dist dir >>>'); + console.log('Cleaned dist dir', distDir); } else { console.error(err); } diff --git a/scripts/radar.js b/scripts/radar.js index e121cf1..9d500e9 100644 --- a/scripts/radar.js +++ b/scripts/radar.js @@ -7,7 +7,11 @@ import { distPath, getAllMarkdownFiles, } from './file'; -import { item as itemTemplate } from './template'; +import { + item as itemTemplate, + quadrant as quadrantTemplate, + vars, +} from './template'; export const createRadar = async (tree) => { const fileNames = (await getAllMarkdownFiles(radarPath())).reverse(); @@ -85,13 +89,14 @@ const addRevisionToItem = (item = { export const outputRadar = (radar) => { 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]) => ( new Promise((resolve, reject) => { - outputFile(distPath(quadrantName, `${itemName}.html`), itemTemplate({ + outputFile(distPath(quadrantName, `${itemName}.html`), itemTemplate(vars({ quadrantName, item, - }), (err, data) => { + })), (err, data) => { if (err) { reject(err); } 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); + } + }) + }) +) diff --git a/scripts/static.js b/scripts/static.js index 82a620f..b59b9d2 100644 --- a/scripts/static.js +++ b/scripts/static.js @@ -7,6 +7,9 @@ import { distPath, getAllPugFiles, } from './file'; +import { + vars, +} from './template'; export const createStatic = async (radar) => { const paths = await getAllPugFiles(staticPath()); @@ -25,9 +28,9 @@ const getPlainFileNames = (paths) => ( const renderStaticPages = (radar, fileNames) => ( Promise.all(fileNames.map((name) => ( new Promise((resolve, reject) => ( - outputFile(distPath(`${name}.html`), pug.renderFile(staticPath(`${name}.pug`), { + outputFile(distPath(`${name}.html`), pug.renderFile(staticPath(`${name}.pug`), vars({ radar, - }), (err, data) => { + })), (err, data) => { if (err) { reject(err); } else { diff --git a/scripts/template.js b/scripts/template.js index 4f7a3ae..44626a3 100644 --- a/scripts/template.js +++ b/scripts/template.js @@ -3,4 +3,20 @@ import { relativePath } from './file'; 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 quadrant = pug.compileFile(relativePath(templateFolder, 'quadrant.pug')); diff --git a/static-pages/index.pug b/static-pages/index.pug index cdb2ac1..6ca0239 100644 --- a/static-pages/index.pug +++ b/static-pages/index.pug @@ -7,7 +7,7 @@ block content ul each quadrant, quadrantName in radar li - h4= quadrantName + h4= translate(quadrantName) ul each radarItem, itemName in quadrant li diff --git a/templates/item.pug b/templates/item.pug index 0651d0f..d060392 100644 --- a/templates/item.pug +++ b/templates/item.pug @@ -4,7 +4,7 @@ block vars - var title=item.attributes.title block content - a(href='/' + quadrantName + '.html') #{quadrantName} + a(href='/' + quadrantName + '.html')= translate(quadrantName) h1 #{item.attributes.title} = ' ' small #{item.attributes.ring} diff --git a/templates/layout.pug b/templates/layout.pug index 77b6962..c79281d 100644 --- a/templates/layout.pug +++ b/templates/layout.pug @@ -5,8 +5,9 @@ html block scripts script(src='/jquery.js') - h3 AOE Tech Radar - + h3 + a(href='/') AOE Tech Radar + hr body diff --git a/templates/quadrant.pug b/templates/quadrant.pug new file mode 100644 index 0000000..b4574d3 --- /dev/null +++ b/templates/quadrant.pug @@ -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