2023-10-03 11:14:36 +08:00
|
|
|
/**
|
|
|
|
* Raw tag objects.
|
|
|
|
* @type {object}
|
|
|
|
*/
|
|
|
|
exports.tags = require('./lib/tags');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Raw filter methods.
|
|
|
|
* @type {object}
|
|
|
|
*/
|
|
|
|
exports.filters = require('./lib/filters');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add an Extras filter to your swig instance.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* var swig = require('swig'),
|
|
|
|
* extras = require('swig-extras');
|
|
|
|
* extras.useFilter(swig, 'markdown');
|
|
|
|
*
|
|
|
|
* @param {object} swig Swig instance.
|
|
|
|
* @param {string} filter Extras filter name.
|
|
|
|
* @return {undefined}
|
|
|
|
* @throws {Error} If Extras does not have a filter with the given name.
|
|
|
|
*/
|
|
|
|
exports.useFilter = function (swig, filter) {
|
|
|
|
var f = exports.filters[filter];
|
|
|
|
if (!f) {
|
|
|
|
throw new Error('Filter "' + filter + '" does not exist.');
|
|
|
|
}
|
|
|
|
swig.setFilter(filter, f);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add an Extras tag to your swig instance.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* var swig = require('swig'),
|
|
|
|
* extras = require('swig-extras'),
|
|
|
|
* mySwig = new swig.Swig();
|
|
|
|
* extras.useTag(mySwig, 'markdown');
|
|
|
|
*
|
|
|
|
* @param {object} swig Swig instance.
|
|
|
|
* @param {string} tag Extras tag name.
|
|
|
|
* @return {undefined}
|
|
|
|
* @throws {Error} If Extras does not have a tag with the given name.
|
|
|
|
*/
|
|
|
|
exports.useTag = function (swig, tag) {
|
|
|
|
var t = exports.tags[tag];
|
|
|
|
if (!t) {
|
|
|
|
throw new Error('Tag "' + tag + '" does not exist.');
|
|
|
|
}
|
|
|
|
swig.setTag(tag, t.parse, t.compile, t.ends, t.blockLevel);
|
|
|
|
if (t.ext) {
|
|
|
|
swig.setExtension(t.ext.name, t.ext.obj);
|
|
|
|
}
|
|
|
|
};
|