渲染模式时需要两个参数,模板名 name 和数据 context。如果 callback 存在,当渲染完成后会被调用,第一个参数是错误,第二个为返回的结果;如果不存在,render 方法会直接返回结果,错误时会抛错。更多查看。

    nunjucks.renderString(str, context, [callback])

    nunjucks.compile(str, [env], [path]);

    将给定的字符串编译成可重复使用的nunjucks模板对象。

    nunjucks.configure([path], [opts]);

    • autoescape(默认值: true) 控制输出是否被转义,查看 Autoescaping
    • throwOnUndefined(default: false) 当输出为 null 或 undefined 会抛出异常
    • trimBlocks(default: false) 自动去除 block/tag 后面的换行符
    • lstripBlocks(default: false) 自动去除 block/tag 签名的空格
    • noCache(default: false) 不使用缓存,每次都重新编译
    • web 浏览器模块的配置项
      • useCache(default: false) 是否使用缓存,否则会重新请求下载模板
      • async(default: false) 是否使用 ajax 异步下载模板
    • tags:(默认值: see nunjucks syntax) 定义模板语法,查看
      返回一个 Environment 实例, 他提供了简单的 api 添加过滤器 (filters) 和扩展 (extensions),可在 Environment 查看更多的使用方法。

    注意: 简单的API (比如说上面的nunjucks.render) 通常会使用最近一次调用nunjucks.configure时的配置。由于这种做法是隐性的,它可能会渲染出意料之外的结果,所以在大多数情况下我们不推荐使用这类简单的API(特别是用到configure的情况);我们推荐使用创建一个独立的环境,并调用env.render(…)进行渲染。

    nunjucks.installJinjaCompat()

    这个方法为了与 Jinja 更好的兼容,增加了一些适配 Python 的 API。但是 nunjucks 不是为了完全兼容 Jinja/Pyhton,这只为了帮助使用者查看。

    就是这么简单,如果希望自己定义模板加载等更多的个性化设置,那么可以继续往下看。