有没有一种方法可以直接在jade中包含HTML文件或片段?

36

我有一组HTML文件,大多是静态的,我想移动到我的node.js/express/jade项目中。如何在jade中直接包含HTML文件或片段?我不想将现有的HTML文件转换为jade。

3个回答

49

你应该能够在Jade模板中简单地include

如前所述,include可用于包含其他内容,例如HTML或CSS。通过提供扩展名,Jade将读取该文件,应用与文件扩展名匹配的任何筛选器,并将该内容插入输出中。

html
  // ...
  body
    // ...
    //- html files have no filter and are included verbatim
    include content.html

这是否意味着您可以以这种方式将原始SVG导入Jade标记? - j0e
1
我仍然发现包含的HTML文件中的缩进需要正确格式化。奇怪但却是事实。 - Michael Giovanni Pumo
1
如何在变量中使用文件名与include - Old Geezer

7

在jade中,将精确的html代码或片段放在:verbatim标签之间。

doctype html
html(lang="en")
  :verbatim
    {% include head.html %}
  body
    :verbatim
    {{ content }}

  :verbatim
    {% include footer.html %}

输出

<!DOCTYPE html>
<html lang="en">{% include head.html %}
  <body>{{ content }}
  </body>{% include footer.html %}
</html>

1
你了解:verbatim真是太棒了。我在jade-lang.com文档中找不到它,但它肯定可行。这是我发现的唯一合理易于维护的方式,以包含多行代码片段和其他预格式化文本在Jade中。 - matty
1
请问 :verbatim 适用于哪个版本?Jade 1.11.0 不理解该声明。 - Owen Beresford
2
Jade的新版本已更名为Pug,不再支持:verbatim。 - nomad

4

在我的.jade文件中,我需要做这样的事情:

:verbatim
   !{editorBody}

..其中editorBody是通过res.render()调用提供的:

var editorBody = '<p>Hello</p>';

return res.render('user/user_profile', {editorBody : editorBody});

3
请问 ":verbatim" 应该适用于哪个版本?Jade 1.11.0 无法理解这个声明。 - Owen Beresford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接