const fs = require('fs'); // const path = require('path'); const readline = require('readline') const files = ["src/index.html", "src/projects/2016-XXXX.html", "src/projects/2023-Pepperstone.html"]; // this list should be generated. files.forEach( file => { var file_buffer = ""; const rl = readline.createInterface({ input: fs.createReadStream(file), output: process.stdout, terminal: false }); const re = new RegExp('{% include \'*(.*)\' %}'); rl.on('line', line => { const match = line.match(re); if (match) { file_buffer += fs.readFileSync(match[1], 'utf8'); } else { file_buffer += line + "\n"; } }); rl.on('close', () => { ensureDirectoryExists('build/' + file.split('/').slice(1).join('/')); // all this quatch is to remove the /src/. fs.writeFileSync('build/' + file.split('/').slice(1).join('/'), file_buffer, 'utf8'); }); }); fs.cp('./src/styles','./build/styles', { recursive: true }, (err) => { if (err) throw err; }); function ensureDirectoryExists(filePath) { var dirname = filePath.split('/').slice(0,-1).join('/'); if (fs.existsSync(dirname)) { return true; } ensureDirectoryExists(dirname); fs.mkdirSync(dirname); }