diff --git a/packages/pug-load/index.js b/packages/pug-load/index.js index 9b12d3472..1fb206cd9 100644 --- a/packages/pug-load/index.js +++ b/packages/pug-load/index.js @@ -66,7 +66,12 @@ load.resolve = function resolve(filename, source, options) { return filename; }; load.read = function read(filename, options) { - return fs.readFileSync(filename, 'utf8'); + if (options && options.skipEncoding && options.skipEncoding(filename, options)) { + return fs.readFileSync(filename); + } + else { + return fs.readFileSync(filename, 'utf8'); + } }; load.validateOptions = function validateOptions(options) { diff --git a/packages/pug/lib/index.js b/packages/pug/lib/index.js index e76487d2c..878b4b610 100644 --- a/packages/pug/lib/index.js +++ b/packages/pug/lib/index.js @@ -86,6 +86,7 @@ function compileBody(str, options){ var ast = load.string(str, { filename: options.filename, basedir: options.basedir, + skipEncoding: options.skipEncoding, lex: function (str, options) { var lexOptions = {}; Object.keys(options).forEach(function (key) { @@ -243,6 +244,7 @@ exports.compile = function(str, options){ compileDebug: options.compileDebug !== false, filename: options.filename, basedir: options.basedir, + skipEncoding: options.skipEncoding, pretty: options.pretty, doctype: options.doctype, inlineRuntimeFunctions: options.inlineRuntimeFunctions,