diff --git a/js/filter.js b/js/filter.js index b55b293..d52c81f 100644 --- a/js/filter.js +++ b/js/filter.js @@ -22,7 +22,7 @@ const initFilter = (element) => { }, isGroupVisible(letter) { const itemsInLetter = this.index[letter] || []; - const visibleItems = itemsInLetter.filter((item) => this.isRingVisible(item.attributes.ring)); + const visibleItems = itemsInLetter.filter((item) => this.isRingVisible(item.ring)); return visibleItems.length > 0; }, }, diff --git a/radar/2016-02-01/platforms-and-aoe-services/bar.md b/radar/2016-02-01/bar.md similarity index 56% rename from radar/2016-02-01/platforms-and-aoe-services/bar.md rename to radar/2016-02-01/bar.md index 9ce9cab..50c5b38 100644 --- a/radar/2016-02-01/platforms-and-aoe-services/bar.md +++ b/radar/2016-02-01/bar.md @@ -1,6 +1,7 @@ --- title: "Bar" ring: assess +quadrant: platforms-and-aoe-services --- Bar diff --git a/radar/2016-02-01/foo.md b/radar/2016-02-01/foo.md new file mode 100644 index 0000000..c5d80da --- /dev/null +++ b/radar/2016-02-01/foo.md @@ -0,0 +1,5 @@ +--- +quadrant: methods-and-patterns +--- + +Foo diff --git a/radar/2016-02-01/tools/grunt.md b/radar/2016-02-01/grunt.md similarity index 88% rename from radar/2016-02-01/tools/grunt.md rename to radar/2016-02-01/grunt.md index d620832..fb98034 100644 --- a/radar/2016-02-01/tools/grunt.md +++ b/radar/2016-02-01/grunt.md @@ -1,6 +1,7 @@ --- title: "Grunt" ring: adopt +quadrant: tools --- Hier steht was altes über *Grunt* diff --git a/radar/2016-02-01/methods-and-patterns/foo.md b/radar/2016-02-01/methods-and-patterns/foo.md deleted file mode 100644 index 5e11bcf..0000000 --- a/radar/2016-02-01/methods-and-patterns/foo.md +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -Foo diff --git a/radar/2016-02-01/languages-and-frameworks/react.md b/radar/2016-02-01/react.md similarity index 83% rename from radar/2016-02-01/languages-and-frameworks/react.md rename to radar/2016-02-01/react.md index 74b0fa0..5141248 100644 --- a/radar/2016-02-01/languages-and-frameworks/react.md +++ b/radar/2016-02-01/react.md @@ -1,6 +1,7 @@ --- title: "React 123" ring: adopt +quadrant: languages-and-frameworks --- Hier steht eine Einleitung über *React* - super "cool" diff --git a/radar/2016-02-02/methods-and-patterns/foo.md b/radar/2016-02-02/foo.md similarity index 59% rename from radar/2016-02-02/methods-and-patterns/foo.md rename to radar/2016-02-02/foo.md index a66fe2b..3dee2ac 100644 --- a/radar/2016-02-02/methods-and-patterns/foo.md +++ b/radar/2016-02-02/foo.md @@ -1,6 +1,7 @@ --- title: "Foo" ring: trial +quadrant: methods-and-patterns --- Foo diff --git a/radar/2016-02-02/tools/grunt.md b/radar/2016-02-02/grunt.md similarity index 82% rename from radar/2016-02-02/tools/grunt.md rename to radar/2016-02-02/grunt.md index 9527b04..193d032 100644 --- a/radar/2016-02-02/tools/grunt.md +++ b/radar/2016-02-02/grunt.md @@ -1,6 +1,7 @@ --- title: "Grunt 2" ring: hold +quadrant: tools --- Hier steht was neueres über *Grunt* diff --git a/radar/2016-02-02/languages-and-frameworks/react.md b/radar/2016-02-02/react.md similarity index 76% rename from radar/2016-02-02/languages-and-frameworks/react.md rename to radar/2016-02-02/react.md index e23b98d..dbddfd7 100644 --- a/radar/2016-02-02/languages-and-frameworks/react.md +++ b/radar/2016-02-02/react.md @@ -1,6 +1,8 @@ --- title: "React" ring: trial +quadrant: languages-and-frameworks + --- React blablab *React* - super "cool" diff --git a/radar/2016-02-02/languages-and-frameworks/react123.md b/radar/2016-02-02/react123.md similarity index 88% rename from radar/2016-02-02/languages-and-frameworks/react123.md rename to radar/2016-02-02/react123.md index a520b06..69a9ed7 100644 --- a/radar/2016-02-02/languages-and-frameworks/react123.md +++ b/radar/2016-02-02/react123.md @@ -2,6 +2,8 @@ title: "This is a long title" ring: assess info: React is a view library +quadrant: languages-and-frameworks + --- React blablab *React* - super **"cool"** diff --git a/radar/2016-02-02/languages-and-frameworks/vue.md b/radar/2016-02-02/vue.md similarity index 84% rename from radar/2016-02-02/languages-and-frameworks/vue.md rename to radar/2016-02-02/vue.md index e4241ee..b477516 100644 --- a/radar/2016-02-02/languages-and-frameworks/vue.md +++ b/radar/2016-02-02/vue.md @@ -1,6 +1,8 @@ --- title: "Vue" ring: adopt +quadrant: languages-and-frameworks + --- Hier steht eine Einleitung über *React* - super "cool" diff --git a/radar/2016-02-02/languages-and-frameworks/vue123.md b/radar/2016-02-02/vue123.md similarity index 84% rename from radar/2016-02-02/languages-and-frameworks/vue123.md rename to radar/2016-02-02/vue123.md index f44bb16..10f0a24 100644 --- a/radar/2016-02-02/languages-and-frameworks/vue123.md +++ b/radar/2016-02-02/vue123.md @@ -1,6 +1,8 @@ --- title: "Vue 123" ring: assess +quadrant: languages-and-frameworks + --- Hier steht eine Einleitung über *React* - super "cool" diff --git a/radar/2016-02-02/languages-and-frameworks/vue1230.md b/radar/2016-02-02/vue1230.md similarity index 85% rename from radar/2016-02-02/languages-and-frameworks/vue1230.md rename to radar/2016-02-02/vue1230.md index f8b02cf..07fa610 100644 --- a/radar/2016-02-02/languages-and-frameworks/vue1230.md +++ b/radar/2016-02-02/vue1230.md @@ -1,6 +1,8 @@ --- title: "Something else" ring: hold +quadrant: languages-and-frameworks + --- Hier steht eine Einleitung über *React* - super "cool" diff --git a/radar/2016-02-03/languages-and-frameworks/react.md b/radar/2016-02-03/languages-and-frameworks/react.md deleted file mode 100644 index 0911b85..0000000 --- a/radar/2016-02-03/languages-and-frameworks/react.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -isFeatured: false ---- - -Foo! diff --git a/radar/2016-02-03/react.md b/radar/2016-02-03/react.md new file mode 100644 index 0000000..bffaca8 --- /dev/null +++ b/radar/2016-02-03/react.md @@ -0,0 +1,6 @@ +--- +isFeatured: false +quadrant: languages-and-frameworks +--- + +Foo! diff --git a/static-pages/index.pug b/static-pages/index.pug index c12b8d0..daab9a6 100644 --- a/static-pages/index.pug +++ b/static-pages/index.pug @@ -32,4 +32,4 @@ block content each item in items span.ring-list__item a.link(href='/' + quadrantName + '/' + item.name + '.html') - = item.attributes.title + = item.title diff --git a/static-pages/overview.pug b/static-pages/overview.pug index 5b30a66..c7128e7 100644 --- a/static-pages/overview.pug +++ b/static-pages/overview.pug @@ -39,21 +39,21 @@ block content each item in items a.item.item--big.item--no-leading-border.item--no-trailing-border( href=`/${item.quadrant}/${item.name}.html` - v-if=`isRingVisible('${item.attributes.ring}')` + v-if=`isRingVisible('${item.ring}')` ) .split.split--overview .split__left .item__title - = item.attributes.title + = item.title if item.isNew = ' ' span.is-new new - if item.attributes.info - .item__info= item.attributes.info + if item.info + .item__info= item.info .split__right .nav .nav__item = translate(item.quadrant) .nav__item - span(class=`badge badge--${item.attributes.ring}`) - = item.attributes.ring + span(class=`badge badge--${item.ring}`) + = item.ring diff --git a/tasks/radar.js b/tasks/radar.js index d306a39..9fd84bc 100644 --- a/tasks/radar.js +++ b/tasks/radar.js @@ -32,7 +32,7 @@ export const groupByQuadrants = (items) => ( const addItemToQuadrant = (quadrant = {}, item) => ({ ...quadrant, - [item.attributes.ring]: addItemToRing(quadrant[item.attributes.ring], item), + [item.ring]: addItemToRing(quadrant[item.ring], item), }); export const groupByFirstLetter = (items) => ( @@ -45,7 +45,7 @@ export const groupByFirstLetter = (items) => ( export const groupByRing = (items) => ( items.reduce((rings, item) => ({ ...rings, - [item.attributes.ring]: addItemToList(rings[item.attributes.ring], item), + [item.ring]: addItemToList(rings[item.ring], item), }), {}) ); @@ -54,9 +54,21 @@ const addItemToList = (list = [], item) => ([ item, ]); -export const getFirstLetter = (item) => item.attributes.title.substr(0,1).toUpperCase(); +export const getFirstLetter = (item) => item.title.substr(0,1).toUpperCase(); +const checkAttributes = (fileName, attributes) => { + const rings = ['trial', 'assess', 'adopt', 'hold']; + if (attributes.ring && !rings.includes(attributes.ring)) { + throw new Error(`Error: ${fileName} has an illegal value for 'ring' - must be one of ${rings}`); + } + + const quadrants = ['languages-and-frameworks', 'methods-and-patterns', 'platforms-and-aoe-services', 'tools']; + if (attributes.quadrant && !quadrants.includes(attributes.quadrant)) { + throw new Error(`Error: ${fileName} has an illegal value for 'quadrant' - must be one of ${quadrants}`); + } +} + const createRevisionsFromFiles = (fileNames) => ( Promise.all(fileNames.map((fileName) => { return new Promise((resolve, reject) => { @@ -65,10 +77,11 @@ const createRevisionsFromFiles = (fileNames) => ( reject(err); } else { const fm = frontmatter(data); + checkAttributes(fileName, fm.attributes); resolve({ ...itemInfoFromFilename(fileName), + ...fm.attributes, fileName, - attributes: fm.attributes, body: marked(fm.body), }); } @@ -80,13 +93,11 @@ const createRevisionsFromFiles = (fileNames) => ( const itemInfoFromFilename = (fileName) => { const [ release, - quadrant, nameWithSuffix, - ] = fileName.split('/').slice(-3); + ] = fileName.split('/').slice(-2); return { name: nameWithSuffix.substr(0, nameWithSuffix.length - 3), release, - quadrant, } }; @@ -115,7 +126,7 @@ const getAllReleases = (revisions) => ( const addRevisionToQuadrant = (quadrant = {}, revision) => ({ ...quadrant, - [revision.attributes.ring]: addRevisionToRing(quadrant[revision.attributes.ring], revision), + [revision.ring]: addRevisionToRing(quadrant[revision.ring], revision), }); const createItems = (revisions) => { @@ -165,7 +176,7 @@ const addRevisionToItem = (item = { const revisionCreatesNewHistoryEntry = (revision) => { return revision.body.trim() !== '' || - typeof revision.attributes.ring !== 'undefined'; + typeof revision.ring !== 'undefined'; }; export const outputRadar = (items) => { @@ -181,7 +192,7 @@ export const outputRadar = (items) => { // Object.entries(quadrant).map(([itemName, item]) => ( new Promise((resolve, reject) => { outputFile(distPath(item.quadrant, `${item.name}.html`), itemTemplate(vars({ - itemsInRing: quadrants[item.quadrant][item.attributes.ring], + itemsInRing: quadrants[item.quadrant][item.ring], item, })), (err, data) => { if (err) { diff --git a/templates/item-page.pug b/templates/item-page.pug index 775d6c2..2a65cea 100644 --- a/templates/item-page.pug +++ b/templates/item-page.pug @@ -3,7 +3,7 @@ extends default-page.pug block vars - var noLogo=true - var noFooter=true - - var title=item.attributes.title + - var title=item.title block content .item-page.js--details(data-items=JSON.stringify(itemsInRing)) @@ -16,8 +16,8 @@ block content .item-list__header(v-bind:style="navHeader.style") .split .split__left - span(class=`badge badge--big badge--${item.attributes.ring}`) - = item.attributes.ring + span(class=`badge badge--big badge--${item.ring}`) + = item.ring .split__right a.icon-link(href=`/${item.quadrant}.html`) span.icon.icon--pie.icon-link__icon @@ -29,33 +29,33 @@ block content href=`/${ringItem.quadrant}/${ringItem.name}.html` v-bind:style=`items[${i}].style` ) - .item__title= ringItem.attributes.title - if ringItem.attributes.info - .item__info= ringItem.attributes.info + .item__title= ringItem.title + if ringItem.info + .item__info= ringItem.info .item-page__content(v-bind:style="background.style") .item-page__content__inner(v-bind:style="text.style") .item-page__header .split .split__left h1.hero-headline.hero-headline--inverse - = item.attributes.title + = item.title .split__right - span(class=`badge badge--big badge--${item.attributes.ring}`) - = item.attributes.ring + span(class=`badge badge--big badge--${item.ring}`) + = item.ring .markdown != item.body //- a(href='/' + item.quadrant + '.html')= translate(item.quadrant) - h1 #{item.attributes.title} + h1 #{item.title} = ' ' - small #{item.attributes.ring} + small #{item.ring} hr h4= item.revisions[0].version h5 New: #{item.isNew ? 'YES' : 'NO'} - h5 Feature: #{item.attributes.isFeatured ? 'YES' : 'NO'} + h5 Feature: #{item.isFeatured ? 'YES' : 'NO'} section != item.revisions[0].body @@ -68,5 +68,5 @@ block content h3 = revision.version = ' ' - = revision.attributes.ring + = revision.ring != revision.body diff --git a/templates/quadrant-page.pug b/templates/quadrant-page.pug index 3920f6d..5e08106 100644 --- a/templates/quadrant-page.pug +++ b/templates/quadrant-page.pug @@ -19,6 +19,6 @@ block content .item-list__list each ringItem in items a.item.item--no-leading-border(href=`/${ringItem.quadrant}/${ringItem.name}.html`) - .item__title= ringItem.attributes.title - if ringItem.attributes.info - .item__info= ringItem.attributes.info + .item__title= ringItem.title + if ringItem.info + .item__info= ringItem.info