1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- var glob = require('glob');
- function parsePlatform(pagefile) {
- return pagefile.split(/\//)[1];
- }
- function parsePagename(pagefile) {
- return pagefile.split(/\//)[2].replace(/\.md$/, '');
- }
- function buildShortPagesIndex(files) {
- var reducer = function (index, file) {
- var os = parsePlatform(file);
- var page = parsePagename(file);
- if (index[page]) {
- index[page].push(os);
- } else {
- index[page] = [os];
- }
- return index;
- };
- return files.reduce(reducer, {});
- }
- function buildPagesIndex(shortIndex) {
- return Object.keys(shortIndex)
- .sort()
- .map(function (page) {
- return {
- name: page,
- platform: shortIndex[page]
- };
- });
- }
- function saveIndex(index) {
- var indexFile = {
- commands: index
- };
- console.log(JSON.stringify(indexFile));
- }
- glob('pages/**/*.md', function (er, files) {
- var shortIndex = buildShortPagesIndex(files);
- var index = buildPagesIndex(shortIndex);
- saveIndex(index);
- });
|