How to use nunjucks - 10 common examples

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 Adezandee / cucumber-mink / test / site / server.js View on Github external
const app = express();
const config = {
  port: 3000,
};

// Middlewares
app.use(express.static(path.join(__dirname, 'public')));
app.use(morgan('dev'));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// View engine
app.set('view engine', 'html');
nunjucks.configure(path.join(__dirname, 'views'), {
  express: app,
});

app.get('/', routes.index);
app.get('/action', routes.action);
app.get('/responsive', routes.responsive);
app.get('/form', routes.form);
app.get('/keys', routes.keys);
app.post('/result', routes.result);
app.get('/post/:id', routes.post);
app.get('/generate/:number', routes.generate);

app.listen(config.port, () => {
  console.log(`App server running at http://localhost:${config.port}`);
});
github epinna / tplmap / tests / env_node_tests / connect-app.js View on Github external
app.use('/blind/nunjucks', function(req, res){
  if(req.url) {
    var url_parts = url.parse(req.url, true);

    var inj = url_parts.query.inj;
    var tpl = '';
    if('tpl' in url_parts.query && url_parts.query.tpl != '') {
      // Keep the formatting a-la-python
      tpl = url_parts.query.tpl.replace('%s', inj);
    }
    else {
      tpl = inj;
    }
    nunjucks.renderString(tpl);
    res.end(randomstring.generate());
  }
});
github hexojs / hexo-generator-feed / test / index.js View on Github external
const { encodeURL, full_url_for } = require('hexo-util');

env.addFilter('uriencode', str => {
  return encodeURI(str);
});

env.addFilter('noControlChars', str => {
  return str.replace(/[\x00-\x1F\x7F]/g, ''); // eslint-disable-line no-control-regex
});

const atomTmplSrc = join(__dirname, '../atom.xml');
const atomTmpl = nunjucks.compile(readFileSync(atomTmplSrc, 'utf8'), env);
const rss2TmplSrc = join(__dirname, '../rss2.xml');
const rss2Tmpl = nunjucks.compile(readFileSync(rss2TmplSrc, 'utf8'), env);
const customTmplSrc = join(__dirname, 'custom.xml');
const customTmlp = nunjucks.compile(readFileSync(customTmplSrc, 'utf8'), env);

const urlConfig = {
  url: 'http://localhost/',
  root: '/'
};

describe('Feed generator', () => {
  const hexo = new Hexo(__dirname, {
    silent: true
  });
  const Post = hexo.model('Post');
  const generator = require('../lib/generator').bind(hexo);

  require('../node_modules/hexo/lib/plugins/helper')(hexo);

  let posts = {};
github hexojs / hexo-generator-feed / test / index.js View on Github external
const { readFileSync } = require('fs');
const cheerio = require('cheerio');
const { encodeURL, full_url_for } = require('hexo-util');

env.addFilter('uriencode', str => {
  return encodeURI(str);
});

env.addFilter('noControlChars', str => {
  return str.replace(/[\x00-\x1F\x7F]/g, ''); // eslint-disable-line no-control-regex
});

const atomTmplSrc = join(__dirname, '../atom.xml');
const atomTmpl = nunjucks.compile(readFileSync(atomTmplSrc, 'utf8'), env);
const rss2TmplSrc = join(__dirname, '../rss2.xml');
const rss2Tmpl = nunjucks.compile(readFileSync(rss2TmplSrc, 'utf8'), env);
const customTmplSrc = join(__dirname, 'custom.xml');
const customTmlp = nunjucks.compile(readFileSync(customTmplSrc, 'utf8'), env);

const urlConfig = {
  url: 'http://localhost/',
  root: '/'
};

describe('Feed generator', () => {
  const hexo = new Hexo(__dirname, {
    silent: true
  });
  const Post = hexo.model('Post');
  const generator = require('../lib/generator').bind(hexo);

  require('../node_modules/hexo/lib/plugins/helper')(hexo);
github umrum / umrum / config / app.js View on Github external
var app = express(),
    oneDay = 86400000;

app.use(express.compress(), {
    maxAge: oneDay
});
app.locals.assetsURL = env.assetsURL;
app.set('views', env.views);
app.set('redis', redis);
app.engine('html', nunjucks.render);
app.use(app.locals.assetsURL, express.static(env.assetsPath));
app.use(express.logger());
app.use(app.router);

nunjucks.configure(env.views, {
    autoescape: true,
    express: app
});

app.listen(env.port, function(err) {
    if (err) {
        console.error(err);
        process.exit(-1);
    }

    // if run as root, downgrade to the owner of this file
    if (process.platform.toLowerCase().indexOf('win') === -1) {
        if ( process.getuid() === 0 ) {
            fs.stat(__filename, function(err, stats) {
                if (err) {
                    return console.error(err);
github lore / lore / packages / lore-generate / src / fileWriters / TemplateFileWriter.js View on Github external
write: function(source, target, options) {
    // console.log(source);
    // console.log(options);

    var dirname = path.dirname(source);
    var basename = path.basename(source);

    nunjucks.configure(dirname);

    var data = nunjucks.render(basename, _.merge({}, options, {
      _: _
    }));

    return writeFile(target, data, options);
  }
github pangolinjs / core / lib / html / render-nunjucks.js View on Github external
return new Promise((resolve, reject) => {
    // Create Nunjucks environment
    let env = new nunjucks.Environment(
      new nunjucks.FileSystemLoader(path.join(context, 'src'))
    )

    // Prefix URL to make it relative
    env.addFilter('relative', (url) => {
      if (file.split(path.sep)[0] === 'components') {
        return `../${url}`
      } else {
        return url
      }
    })

    // Add custom section tag
    env.addExtension('SectionExtension', new SectionExtension())

    // Add environment variables to Nunjucks
github patrickarlt / acetate / lib / Renderer.js View on Github external
reset() {
    this._prerenderers = [];

    this.loader = new Loader({
      sourceDir: this.sourceDir,
      logger: this.logger,
      errorHandler: error => {
        this.emitter.emit("renderer:error", {
          error
        });
        this.logger.error(error);
      }
    });

    this.nunjucks = new nunjucks.Environment(this.loader, {
      // dev: true
    });

    this.hljs = hljs;

    this.markdown = new MarkdownIt({
      html: true,
      linkify: true,
      langPrefix: "",
      highlight: (code, lang) => {
        if (lang === "text" || lang === "plain") {
          return code;
        }

        return lang
          ? this.hljs.highlight(lang, code).value
github philipwalton / blog / tasks / content.js View on Github external
// render the shell as a full page, minify it, and then split it up.
  const SHELL_SPLIT_POINT = 'SHELL_SPLIT_POINT';

  const data = {
    ENV,
    site: book.site,
    articles: book.articles,
    page: {
      path: '',
      private: true,
      content: SHELL_SPLIT_POINT,
    },
    layout: 'shell.html',
  };

  const html = nunjucks.render('shell.html', data);
  const processedHtml = processHtml(html);

  const [shellStart, shellEnd] = processedHtml.split(SHELL_SPLIT_POINT);

  await fs.outputFile(
      path.join(config.publicDir, 'shell-start.html'), shellStart);

  await fs.outputFile(
      path.join(config.publicDir, 'shell-end.html'), shellEnd);
};
github dereknex / vscode-openapi-viewer / render.js View on Github external
render(filename, text) {
        let content = "";
        let ext = path.extname(filename);
        if (ext == ".json") {
            content = JSON.parse(text);
        }else if (ext == ".yaml" || ext == ".yml") {
           content = jsyaml.safeLoad(text);
            // content = JSON.stringify(yaml);
        } else {
            return "";
        }
        let swaggerUIPath = this.context.extensionPath + "/swagger-ui";
        let destFile = this.context.extensionPath + "/swagger-ui/index.htm";
        try {
            nunjucks.configure(swaggerUIPath);
            let res = nunjucks.render("index.njk", {swaggerUIPath: swaggerUIPath, content: content});
            fs.writeFileSync(destFile, res);

            // Turn windows file paths into a URI path:
            destFile = destFile.replace(/\\/g, "/");
            if (destFile[0] !== "/") {
                destFile = "/" + destFile;
            }

            return vscode.Uri.parse('file://' + destFile);
        } catch (error) {
            console.error(error);
        }
        return "";
       
    }
}