问题标签 [nunjucks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2640 浏览

javascript - 使用 nunjucks 或其他方法的嵌套变量的模板解决方案

我刚刚开始使用 gulp & nunjucks 进行模板(在这种情况下是电子邮件)。

我想解决调用模块/部分并在每次处理时为属性分配不同值的问题。

它最初似乎是 for 循环的工作,但不一定会在模板中按顺序调用该模块

在模块中有分配给变量的属性。我想根据模块用于的部分以不同的方式解决这些变量。

一个非常基本的例子是 - 在一个索引文件中我有:

而在 genericMod 本身-:

我想利用的功能是定义一个“modKey”,即模块中每个变量中的一个变量,例如

然后能够以某种方式在每次调用模块时将该键分配给模块:

所以上面产生:

和:

产生:

因此,当通过 json 文件传输时,将为每个属性变量呈现相应的数据:

显然这只是一个假设的解决方案,但有没有办法实际实现类似的东西?

0 投票
1 回答
9780 浏览

javascript - 检查 Nunjucks 中的对象是否为空

所以我在我的 Node.js 应用程序中使用 Nunjucks 作为模板引擎。

我有一个我们会调用的对象var,它可能是空的,也可能不是空的。

当它为空时,如果我正确地做 {{ var | dump }}Nunjucks 显示它是一个空对象,显示{}.

问题是,我找不到任何方法来使用 Nunjuck 的{% if condition %}语句检查对象是否为空。我已经尝试过var.length, var | length, var | first, 并且只是简单var的条件,但它们都不起作用,它们都只是评估为真(或假),无论是否var为空。有谁知道如何解决这个问题?

编辑: using{% if var | dump != '{}' %}确实有效,但似乎是一个非常hacky的解决方案......

编辑2:我最终只是empty为满足我需要的对象创建了一个自定义过滤器:

0 投票
1 回答
43 浏览

html - 包括行之间的不同间距css

我是使用 css 的新手,我正在尝试创建一个带有标题、日期和描述的页面。我想不出在不同部分之间包含不同填充量的最佳方法。我希望日期直接出现在标题下方,然后在日期和描述之间留出一些空格,但是现在标题和日期之间出现了更大的空间,而日期和描述之间的空间更少了。我使用 nunjucks 作为模板。任何帮助,将不胜感激!

来自 Mainpage.nunjucks:

来自 common.scss:

0 投票
0 回答
626 浏览

json - 如何将外部 json 数据传递给 nunjucks 中的宏?

我有一个用于呈现 HTML 输入组件的 nunjucks 宏。像这样调用它可以正常工作,在宏调用中使用 JSON 内联:

但我希望从另一个文件中调用 json 数据。我试过这个:

并传入 index.json 的内容,但它只能作为宏中的字符串使用,而不是 JSON 对象。我觉得我错过了一些非常明显的东西,非常感谢任何帮助!

0 投票
0 回答
108 浏览

twig - 具有类似树枝嵌入功能的 Javascript 模板引擎,它存在吗?

过去一天我一直在研究 javascript 模板框架,但除非我错过了什么,否则我似乎无法找到一个具有我需要的功能的框架。

我需要的是twig所谓的“嵌入”。基本上它就像一个常规的模板包含(接受变量并返回一个 html 的 blob),只有定义自定义“块”的可能性。一个块通常是为模板继承(或“扩展”)保留的,这有点限制。

到目前为止,Nunjucks 是最接近的。它具有导入、包含和扩展功能,但没有嵌入。用一个简单的例子来澄清:

模板(grid.html)

嵌入其他模板的模板用法(树枝语法):

有人知道可以做到这一点的javascript模板框架吗?也许 Nunjucks 可以但我错过了?非常感谢您的帮助,因为我们正在做一个 node.js 项目,而 twig 根本不是一个选择:)

0 投票
0 回答
629 浏览

html - 如何使用 html 模板系统传递“css 属性”

我正在用 nunjucks 构建一个组件库,有时我需要传递变量来更改例如背景图像,nunjucks 不解析 css 文件,我最终设置了这样的内联样式:

包含组件并传递背景图片

组件.njk 文件

我可以把它放在组件内的 <style> 标记中,但它不是 html 标准

这是无效的 html :S

为了解决这个问题,我试图在标题标签内附加组件样式标签。

有gulp插件什么的吗?有没有更好的解决方案?

为 nunjucks 找到了一个很酷的“插件”,可以从子视图中附加代码,但它似乎已经过时了:S

非常感谢!

0 投票
1 回答
69 浏览

node.js - 用于循环和 kebob-case 的 nunjucks

在节点上使用 nunjucks

如果我使用snake_case,则有一个循环遍历数组而没有任何问题

{% for item in items.micro_release %} <li>{{ item.id }}</li> {% else %} <li>No items found...</li> {% endfor %}

一旦我尝试使用 kebob-case (仅用于内部命名约定清晰)。它失败。

{% for item in items.micro-release %} <li>{{ item.id }}</li> {% else %} <li>No items found...</li> {% endfor %}

我假设它将“-”视为算术运算符。试过了

set micro_release = "micro-release"

强制它表现得像一个字符串。那没有用。

鉴于它的 python 起源,是 nunjucks kebob-insensitive :)?jk。thnx 提前了解这方面的任何智慧之言。

0 投票
1 回答
1738 浏览

node.js - Nunjucks 渲染文件路径相对于被调用的路由并覆盖 express.static 设置

将 Nunjucks 与 Node 一起使用

试图找出以下问题的优雅解决方案。使用这样的目录树: app_dir --app.js --public ----stylesheets ------mystyles.css --views ----page.html ----templates ------page_template.html

  1. 在我的公共目录中有 CSS 之类的静态文件 app.use(express.static(path.join(__dirname, 'public')));
  2. 将 Nunjucks 的根目录配置为视图 nunjucks.configure('views', { autoescape: true, express : app, watch: true });

  3. 当我从 page_template.html 中引用 css 文件时,nunjucks(我认为)会自动根据路由创建相对路径并覆盖静态行为。

例如,当我/stylesheets/mystyles.css在 page_template.html 上使用路径但使用路径调用扩展它的文件时, /:publication/:page呈现的 html 是 /:publication/:page/stylesheets/mystyle.css

我总是可以写一个快速的 hack,根据路由创建 CSS 和其他资源的相对路径,但这感觉不是一个特别优雅的解决方案 :( 非常感谢任何帮助。

0 投票
1 回答
92 浏览

javascript - pg-generator nunjucks 插入了不必要的空格并且 html 被破坏

我正在尝试生成一些反应 html,但插入了奇怪的空格来破坏 html。

请帮忙!!!!

使用基本模板

用命令运行 pgen exec pg-generator-templates/react-crud-template/ -d convectorFeathersServer -u postgres -p postgres -t src/react-crud-build

我的模板文件:

结果

0 投票
4 回答
5439 浏览

node.js - 错误:需要回调函数

我正在尝试使用 node、express 和 mongodb 将对象呈现为 html。当我尝试下面的代码时

我收到如下回调函数错误

有人可以帮我如何使用 nunjucks 渲染 html 吗?提前致谢