包含

包含 Include ~~ Includes

包含(include)功能允许您把另外的文件内容插入进来。

\\\\\\\\\\ index.pug
//- index.pug
doctype html
html
  include includes/head.pug
  body
    h1 我的网站
    p 欢迎来到我这简陋得不能再简陋的网站。
    include includes/foot.pug
\\\\\\\\\\ includes/head.pug
//- includes/head.pug
head
  title 我的网站
  script(src='/javascripts/jquery.js')
  script(src='/javascripts/app.js')
\\\\\\\\\\ includes/foot.pug
//- includes/foot.pug
footer#footer
  p Copyright (c) foobar

被包含的文件的路径,如果是一个绝对路径(如 include /root.pug),那么前面会加上 options.basedir 选项属性来进行解析。否则,路径应该相对于正在被编译的当前文件。

在 Pug v1 里,如果没有给出文件扩展名,会自动加上 .pug。但是这个特性在 Pug v2 中 这是不赞成使用的 。

包含纯文本 ~~ Including Plain Text

被包含的如果不是 Pug 文件,那么就只会当作文本内容来引入。

\\\\\\\\\\ index.pug
//- index.pug
doctype html
html
  head
    style
      include style.css
  body
    h1 我的网站
    p 欢迎来到我这简陋得不能再简陋的网站。
    script
      include script.js
\\\\\\\\\\ style.css
/* style.css */
h1 {
  color: red;
}
\\\\\\\\\\ script.js
// script.js
console.log('真了不起!');

使用过滤器包含文本 ~~ Including Filtered Text

您可以合并过滤器和包含语句,从而做到引入文件内容并直接用过滤器处理它们。

\\\\\\\\\\ index.pug <
//- index.pug
doctype html
html
  head
    title 一篇文章
  body
    include:markdown-it article.md
\\\\\\\\\\ article.md <
## article.md

这是一篇用 Markdown 写的文章。
\\\\\\\\\\ output.html >
<!DOCTYPE html>
<html>
  <head>
    <title>一篇文章</title>
  </head>
  <body>
    <h1>article.md</h1>
    <p>这是一篇用 Markdown 写的文章。</p>
  </body>
</html>