34 lines
972 B
JavaScript
34 lines
972 B
JavaScript
'use strict';
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const pug = require('pug');
|
|
const sh = require('shelljs');
|
|
const prettier = require('prettier');
|
|
|
|
module.exports = function renderPug(filePath) {
|
|
const destPath = filePath.replace(/src\/pug\//, 'dist/').replace(/\.pug$/, '.html');
|
|
const srcPath = path.resolve(path.dirname(__filename), '../src');
|
|
|
|
console.log(`### INFO: Rendering ${filePath} to ${destPath}`);
|
|
const html = pug.renderFile(filePath, {
|
|
doctype: 'html',
|
|
filename: filePath,
|
|
basedir: srcPath
|
|
});
|
|
|
|
const destPathDirname = path.dirname(destPath);
|
|
if (!sh.test('-e', destPathDirname)) {
|
|
sh.mkdir('-p', destPathDirname);
|
|
}
|
|
|
|
const prettified = prettier.format(html, {
|
|
printWidth: 1000,
|
|
tabWidth: 4,
|
|
singleQuote: true,
|
|
proseWrap: 'preserve',
|
|
endOfLine: 'lf',
|
|
parser: 'html'
|
|
});
|
|
|
|
fs.writeFileSync(destPath, prettified);
|
|
}; |