You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
import fs from 'fs'; |
|
import path from 'path'; |
|
|
|
import { readdirSync } from 'fs'; |
|
import handlebars from 'handlebars'; |
|
|
|
handlebars.registerHelper('capitalize', function (str) { |
|
return str.charAt(0).toUpperCase() + str.slice(1); |
|
}); |
|
|
|
function getDirectories(path) { |
|
return fs.readdirSync(path).filter(function (file) { |
|
return fs.statSync(path + '/' + file).isDirectory(); |
|
}); |
|
} |
|
|
|
const emojiDir = path.resolve('../../../static/img/emoji'); |
|
|
|
const emojiCollectionDirs = getDirectories(emojiDir).map(dir => { |
|
return dir; |
|
}); |
|
|
|
let emojiCollections = {}; |
|
|
|
emojiCollectionDirs.forEach(collection => { |
|
const emojiCollection = readdirSync(path.resolve(emojiDir, collection)) |
|
.filter(f => f.toLowerCase() !== 'license.md') |
|
.map(emoji => { |
|
return { name: emoji, src: `img/emoji/${collection}/${emoji}` }; |
|
}); |
|
emojiCollections[collection] = { name: collection, images: emojiCollection }; |
|
}); |
|
|
|
const template = fs.readFileSync('./Emoji.stories.mdx', 'utf8'); |
|
let t = handlebars.compile(template); |
|
let output = t({ emojiCollections }); |
|
console.log(output);
|
|
|