Improve quadrant pages
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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'));
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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
12
templates/quadrant.pug
Normal 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
|
||||||
Reference in New Issue
Block a user