index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * Raw tag objects.
  3. * @type {object}
  4. */
  5. exports.tags = require('./lib/tags');
  6. /**
  7. * Raw filter methods.
  8. * @type {object}
  9. */
  10. exports.filters = require('./lib/filters');
  11. /**
  12. * Add an Extras filter to your swig instance.
  13. *
  14. * @example
  15. * var swig = require('swig'),
  16. * extras = require('swig-extras');
  17. * extras.useFilter(swig, 'markdown');
  18. *
  19. * @param {object} swig Swig instance.
  20. * @param {string} filter Extras filter name.
  21. * @return {undefined}
  22. * @throws {Error} If Extras does not have a filter with the given name.
  23. */
  24. exports.useFilter = function (swig, filter) {
  25. var f = exports.filters[filter];
  26. if (!f) {
  27. throw new Error('Filter "' + filter + '" does not exist.');
  28. }
  29. swig.setFilter(filter, f);
  30. };
  31. /**
  32. * Add an Extras tag to your swig instance.
  33. *
  34. * @example
  35. * var swig = require('swig'),
  36. * extras = require('swig-extras'),
  37. * mySwig = new swig.Swig();
  38. * extras.useTag(mySwig, 'markdown');
  39. *
  40. * @param {object} swig Swig instance.
  41. * @param {string} tag Extras tag name.
  42. * @return {undefined}
  43. * @throws {Error} If Extras does not have a tag with the given name.
  44. */
  45. exports.useTag = function (swig, tag) {
  46. var t = exports.tags[tag];
  47. if (!t) {
  48. throw new Error('Tag "' + tag + '" does not exist.');
  49. }
  50. swig.setTag(tag, t.parse, t.compile, t.ends, t.blockLevel);
  51. if (t.ext) {
  52. swig.setExtension(t.ext.name, t.ext.obj);
  53. }
  54. };