@ghostline/countdown
Version:
A counter plugin for metalsmith to allow adding metadata for counters
33 lines (27 loc) • 801 B
JavaScript
const {parseDateTime, generateToday, count, zeroFill} = require('@dotmh/ctf');
module.exports = (handlebars, _options = {}) => {
const options = {
...{
countdowns: {
// Work: "yyyy/mm/dd hh:mm:ss"
}
}, ..._options
};
return (files, metalsmith, done) => {
metalsmith._metadata.countdowns = {};
Object.entries(options.countdowns).forEach(([key, value]) => {
metalsmith._metadata.countdowns[key] = {
...zeroFill(count(generateToday(), parseDateTime(value))),
time: parseDateTime(value).getTime()
};
});
handlebars.registerHelper('timer', (dateString, options) => {
const context = {
time: parseDateTime(dateString).getTime(),
...zeroFill(count(generateToday(), parseDateTime(dateString)))
};
return options.fn(context);
});
done();
};
};