UNPKG

empress-blog

Version:

Fully-functional, SEO friendly static site implementation of a blog system built on Ember.

41 lines (34 loc) 1.07 kB
/* eslint-disable prettier/prettier */ const BroccoliPlugin = require('broccoli-plugin'); const walkSync = require('walk-sync'); const { readFileSync, writeFileSync } = require('fs'); const { join } = require('path'); const yamlFront = require('yaml-front-matter'); const _ = require('lodash'); const Case = require('case'); module.exports = class TagGenerator extends BroccoliPlugin { constructor(folder, options) { super([folder], options); } build() { const tags = []; this.inputPaths.forEach((dir) => { const markdownFiles = walkSync(dir) .filter(path => path.endsWith('.md')); markdownFiles.forEach((file) => { const fileContents = readFileSync(join(dir, file)) const frontMatter = yamlFront.loadFront(fileContents); tags.push(frontMatter.tags); }); }); _.chain(tags).flatten().uniq().compact().value().forEach((tag) => { writeFileSync(join(this.outputPath, `${Case.kebab(tag)}.md`), `--- name: ${Case.title(tag)} id: ${Case.kebab(tag)} image: imageMeta: --- `); }) } }