diff --git a/build.js b/build.js index c6c7dcc..acfc8df 100644 --- a/build.js +++ b/build.js @@ -6,6 +6,7 @@ var pagination = require('metalsmith-pagination') var paths = require('metalsmith-paths') var filemetadata = require('metalsmith-filemetadata') var matters = require('metalsmith-matters') +var tags = require('metalsmith-tags') var fs = require('fs'); var moment = require('moment'); @@ -15,6 +16,7 @@ var hlayouts = require('handlebars-layouts'); handlebars.registerHelper(hlayouts(handlebars)); handlebars.registerPartial('base', fs.readFileSync('templates/base.hbs', 'utf8')); +handlebars.registerPartial('index', fs.readFileSync('templates/index.hbs', 'utf8')); handlebars.registerHelper('formatDate', function(date) { return moment(new Date(date)).format('MMMM D, YYYY HH:mm:ss'); @@ -81,10 +83,12 @@ metalsmith(__dirname) .frontmatter(false) .use(matters(require('./config/matters'))) .use(filemetadata(require('./config/filemetadata'))) + .use(addCategory()) .use(collections(require('./config/collections'))) .use(markdown(require('./config/markdown'))) .use(pagination(require('./config/pagination'))) .use(paths(require('./config/paths'))) + .use(tags(require('./config/tags'))) .use(layouts(require('./config/layouts'))) .use(copyVendor()) .destination('build') @@ -94,6 +98,23 @@ metalsmith(__dirname) } }) +function addCategory() { + + return function(files, metalsmith, done) { + + for (var f in files) { + if (f.indexOf('.md') > 0) { + var idx = f.indexOf('/'); + var cat = f.substring(0, idx); + + files[f].category = cat; + } + } + + return done(); + } +} + function debugCollection() { return function(files, metalsmith, done) { console.log(files); @@ -116,21 +137,6 @@ function debugMeta(metaname) { } } -function debugPagination() { - return function(files, metalsmith, done) { - - for (var i in files) { - var f = files[i]; - if (f !== undefined && f.path != undefined) { - console.log(f.path); - } - } - - return done(); - } -} - - function copyVendor() { return function(files, metalsmith, done){ diff --git a/config/tags.js b/config/tags.js new file mode 100644 index 0000000..0cb99a9 --- /dev/null +++ b/config/tags.js @@ -0,0 +1,4 @@ +module.exports = { + handle: 'category', + layout: 'tag.hbs' +} diff --git a/package.json b/package.json index bcd8b5c..466aac8 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,9 @@ "metalsmith-layouts": "^1.6.5", "metalsmith-markdown": "^0.2.1", "metalsmith-matters": "^1.2.0", - "metalsmith-paginate": "^0.3.0", "metalsmith-pagination": "^1.0.0", "metalsmith-paths": "^2.1.2", - "metalsmith-permalinks": "^0.4.0", + "metalsmith-tags": "^1.2.1", "moment": "^2.6.0", "serve": "^1.4.0" }, diff --git a/templates/base.hbs b/templates/base.hbs index 76fdf2a..cdfa34d 100644 --- a/templates/base.hbs +++ b/templates/base.hbs @@ -16,7 +16,7 @@