我可以设置扩展名吗?例如:
.html or .htm
我可以为某些布局设置自定义扩展吗?像:
.xml
答案 0 :(得分:2)
Swig不关心/了解扩展。您可以尝试编写custom loader来为您执行此操作。只需复制文件系统加载器,并检查给定的路径是否包含扩展名,如果是,请使用默认值。
var fs = require('fs'),
path = require('path');
module.exports = function (basepath, encoding) {
var ret = {};
encoding = encoding || 'utf8';
basepath = (basepath) ? path.normalize(basepath) : null;
ret.resolve = function (to, from) {
if (basepath) {
from = basepath;
} else {
from = (from) ? path.dirname(from) : process.cwd();
}
return path.resolve(from, to);
};
ret.load = function (identifier, cb) {
if (!fs || (cb && !fs.readFile) || !fs.readFileSync) {
throw new Error('Unable to find file ' + identifier + ' because there is no filesystem to read from.');
}
// Start of added code...
var extension = path.extname(identifier);
if (!extension) {
// Set this to whatever you want as a default
// If the extension exists, like 'foo.xml', it won't add the '.html'
identifier += '.html';
}
// End of added code
identifier = ret.resolve(identifier);
if (cb) {
fs.readFile(identifier, encoding, cb);
return;
}
return fs.readFileSync(identifier, encoding);
};
return ret;
};