How to use the nunjucks.parser function in nunjucks

To help you get started, we’ve selected a few nunjucks examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github mozilla / buddyup / tasks / get_localization.js View on Github external
/* eslint-env node */
var path = require('path');
var fs = require('fs');
var httpRequest = require('http-request');

var acorn = require('acorn');
var acornWalk = require('../node_modules/acorn/dist/walk');
var moment = require('moment');
var nunjucksParser = require('nunjucks').parser;
var nunjucksNodes = require('../node_modules/nunjucks/src/nodes');


module.exports = function(grunt) {
  grunt.registerTask('get_localization', 'Get strings from SUMO for localization', function() {
    var done = this.async();
    var urlTemplate = 'https://support.mozilla.org/{locale}/jsi18n-buddyup/';
    var baseDestination = path.join('.', 'app', 'translations');

    try {
      fs.mkdirSync(baseDestination);
    } catch(e) {
      // if the directory already exists, fine. Otherwise, re-throw.
      if (e.code !== 'EEXIST') {
        throw e;
      }
github alphagov / paas-admin / config / njk-loader.js View on Github external
async function getTemplatePaths(ctx, opts, templatePath, context) {
  const templates = {};
  const resolvedPath = await resolvePath(ctx, opts, templatePath, context);
  templates[context.concat(templatePath).join(':')] = resolvedPath;
  const source = fs.readFileSync(resolvedPath).toString();
  const ast = transform(nunjucks.parser.parse(source));
  const templateNodes = [];
  ast.findAll(nodes.Extends, templateNodes);
  ast.findAll(nodes.Include, templateNodes);
  ast.findAll(nodes.FromImport, templateNodes);
  ast.findAll(nodes.Import, templateNodes);
  for (let i = 0; i < templateNodes.length; i++) {
    const templateNode = templateNodes[i].template;
    /* istanbul ignore if */
    if (!templateNode || !templateNode.value) {
      throw new Error(`bad template path in ${ctx.resourcePath}: ${JSON.stringify(templateNodes[i])}`);
    }
    // eslint-disable-next-line no-await-in-loop
    const children = await getTemplatePaths(ctx, opts, templateNode.value, context.concat(templatePath));
    for (const k in children) {
      /* istanbul ignore next */
      if (templates[k] && templates[k] !== children[k]) {
github mozilla / buddyup / tasks / extract.js View on Github external
var path = require('path');
var fs = require('fs');

var acorn = require('acorn');
var acornWalk = require('../node_modules/acorn/dist/walk');
var moment = require('moment');
var nunjucksParser = require('nunjucks').parser;
var nunjucksNodes = require('../node_modules/nunjucks/src/nodes');

var PO_HEADER = [
  'msgid ""',
  'msgstr ""',
  '"Project-Id-Version: PACKAGE VERSION\\n"',
  '"Report-Msgid-Bugs-To: \\n"',
  '"POT-Creation-Date: ' + moment().format('YYYY-MM-DD HH:MMZZ') + '\\n"',
  '"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"',
  '"Last-Translator: Automatically generated\\n"',
  '"Language-Team: none\\n"',
  '"Language: \\n"',
  '"MIME-Version: 1.0\\n"',
  '"Content-Type: text/plain; charset=UTF-8\\n"',
  '"Content-Transfer-Encoding: 8bit\\n"',
  '"X-Generator: Translate Toolkit 1.6.0\\n"',