tool/updateFrontMatter.js (31 lines of code) (raw):

const fs = require('fs'); const globby = require('globby'); const matter = require('gray-matter'); const path = require('path'); async function update(root) { const baseDir = __dirname + '/../public/' + root + '/'; const files = await globby([baseDir + '*.js']); for (let file of files) { const fileName = path.basename(file); const code = fs.readFileSync(file, 'utf-8'); if ( matter.test(code, { delimiters: ['/*', '*/'] }) ) { continue; } const mdContent = fs.readFileSync( baseDir + 'meta/' + fileName.replace(/.js$/, '.md'), 'utf-8' ); const res = matter(mdContent); const comment = matter.stringify('', res.data, { delimiters: ['/*', '*/'] }); fs.writeFileSync(file, comment + code, 'utf-8'); } } update('data').then(() => { update('data-gl'); });