partial-nunjucks.js 710 B

123456789101112131415161718192021222324252627282930313233
  1. var nunjucks = require('nunjucks')
  2. /**
  3. * Partial tag for Nunjucks
  4. *
  5. * Usage: {% partial fileName="partial.md", arg1="Value", arg2="Value"%}
  6. */
  7. var util = require('util');
  8. function partialTag(locals) {
  9. this.tags = ['partial']
  10. this.parse = function(parser, nodes, lexer) {
  11. var tok = parser.nextToken()
  12. var args = parser.parseSignature(null, true)
  13. parser.advanceAfterBlockEnd(tok.value)
  14. return new nodes.CallExtension(this, 'run', args)
  15. }
  16. this.run = function(context, fileName, args) {
  17. for (var key in args) {
  18. locals[key] = args[key]
  19. }
  20. var output = new nunjucks.runtime.SafeString(locals.partial(fileName))
  21. return output
  22. }
  23. }
  24. module.exports = partialTag