33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
var _ = require('lodash');
|
|
|
|
module.exports = function(options){
|
|
var override = (('boolean' === typeof options) && options) || ('object' === typeof options && options.override) || false;
|
|
return function drafts(files, metalsmith, done){
|
|
_.forEach(files, function (fileMeta, fileName) {
|
|
if (!override && fileMeta.date) {
|
|
return;
|
|
}
|
|
var m;
|
|
if (m = fileName.match(/(\d{4}-\d{2}-\d{2})/)) {
|
|
fileMeta.date = new Date(m[1]);
|
|
} else if (m = fileName.match(/(\d{8})/)) {
|
|
fileMeta.date = new Date(
|
|
m[1].substr(0, 4) +'-'+
|
|
m[1].substr(4, 2) +'-'+
|
|
m[1].substr(6, 2)
|
|
);
|
|
}
|
|
});
|
|
var filesWithoutContents = _.zipObject(_.map(files, function (fileMeta, fileName) {
|
|
var filteredFileMeta = _.reduce(fileMeta, function (acc, metaValue, metaName) {
|
|
if ('contents' !== metaName) {
|
|
acc[metaName] = metaValue;
|
|
}
|
|
return acc;
|
|
}, {});
|
|
return [fileName, filteredFileMeta];
|
|
}));
|
|
done();
|
|
};
|
|
};
|