简介
wintersmith-nunjucks 是一个基于 Node.js 平台的模板引擎,支持模板继承,过滤器,自定义标签等功能。wintersmith 是一个静态网站生成器,它使用 wintersmith-nunjucks 作为默认的模板引擎。wintersmith-nunjucks 使用 Nunjucks 作为底层模板引擎。
安装
使用 npm 安装 wintersmith-nunjucks:
npm install wintersmith-nunjucks
使用
首先,在 wintersmith 的配置文件中添加以下内容来配置 wintersmith-nunjucks:
"plugins": [ "wintersmith-nunjucks" ], "nunjucks": { // nunjucks 配置项 }
其中,"nunjucks" 是 wintersmith-nunjucks 的配置项,可以设置一些 Nunjucks 相关的配置,比如模板路径:
"nunjucks": { "path": "./templates" }
这样就将 "./templates" 目录设置成了模板路径。接下来,就可以在 wintersmith 的页面或文章中使用 Nunjucks 模板了。
以下是一个简单的示例,假设在 "./contents/index.md" 文件中使用了以下内容:
--- title: "Hello World!" template: "default.html" --- # {{ title }} Hello, world!
这个文件中使用了模板 "default.html"。可以在 "./templates/default.html" 中创建该模板,内容如下:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- --------- ---------- ---------- ------- ------ -- --------- -- ------- -------
注意到了吗?在模板中使用了 {{ __content }},这是 wintersmith 自动添加的特殊变量,它存储了从 markdown 中解析出的 HTML 内容。这样,当 wintersmith-nunjucks 渲染该模板时,{{ __content }} 会被替换成解析出的 HTML 内容。
通过以上配置和示例,就可以使用 wintersmith-nunjucks 渲染 Nunjucks 模板了。
过滤器和标签
除了基本的模板语法,Nunjucks 还提供了强大的过滤器和自定义标签功能。在 wintersmith 中,可以使用以下方式来自定义过滤器和标签:
-- -------------------- ---- ------- -- - ----------- -------- ----------- - ---------- - -- ------ -- ----------- -------- -- ------- - -- ----- -- -------- -------- --- - -
其中,"filters" 属性存放了自定义的过滤器,"tags" 属性存放了自定义的标签。
以下是一个示例,定义了一个过滤器 "reverse" 和一个标签 "uppercase":
-- -------------------- ---- ------- ---------- - ---------- ------------- - ------ --------------------------------- - -- ------- - ------------ ------------- - ----------- - ------------------ - ------ ---------- -- - ------ -------------------------------------------------- ------ -- - -
在模板中使用自定义的过滤器和标签:
<p>{{ "Hello World!"|reverse }}</p> <p>{% uppercase "hello world!" %}</p>
上述代码输出结果为:
<p>!dlroW olleH</p> <p>HELLO WORLD!</p>
深入学习
以上只是 wintersmith-nunjucks 的基本使用方法,如果想深入学习 Nunjucks 的更多特性和高级用法,可以参考以下资料:
- Nunjucks 文档 https://mozilla.github.io/nunjucks/
- 官方示例 https://mozilla.github.io/nunjucks/try.html
- Nunjucks 学习笔记 https://github.com/chyingp/nunjucks-learning
推荐阅读
- 「前端必读」之 Node.js 模块系统详解 https://juejin.cn/post/6893616266276058632
- 「前端必读」之 Node.js 构建工具详解 https://juejin.cn/post/6895801078980969992
总结
wintersmith-nunjucks 是一个基于 Node.js 平台的模板引擎,可以为静态网站生成器 wintersmith 提供模板渲染功能。使用 wintersmith-nunjucks,可以轻松地使用 Nunjucks 强大的模板语法、过滤器、自定义标签等特性,为静态网站开发提供便利。如果想深入学习 Nunjucks 更多的特性和高级用法,可以参考上面推荐的资料。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710f8dd3466f61ffe28a