17、Harp 中文文档 - 内容

2019-07-10

目录

使用 Harp,你可以获取到你的编译文件的信息,除了源代码文件的元数据

为什么?

你有可能想要在你的应用中遍历编译好的数据以及媒体数据,他们有可能含也有可能不含元数据。_contents 对象提供了一个做这件事情的方法。

示例

也许你有一个全部是图片的目录,并且希望展示它们全部,你不需要为每一张图片维持一个特别的元数据。

myproject/
  ├ index.jade
  └ images/
      ├ hello-world.jpg     <-- hello world image
      ├ hello-saturn.jpg    <-- hello saturn image
      └ hello-jupiter.jpg   <-- hello jupiter image

使用 EJS

现在,在 index.ejs 文件中,你可以遍历 _contents 变量,引用每一个文件。

<% for(var i in public.images._contents){ %>
  <% var image = public.images._contents[i] %>
  <% if ( image.match(/\b.(jpg|bmp|jpeg|gif|png|tif)\b/gi) ) { %>
        <div>
            <img src="/project/harp-doc/images/<%= image %>" />
        </div>
  <% } %>
<% } %>

结果是如下的 HTML:

<img src="/project/harp-doc/images/hello-world.jpg" />
<img src="/project/harp-doc/images/hello-saturn.jpg" />
<img src="/project/harp-doc/images/hello-jupiter.jpg" />

使用 Jade

现在,在 index.jade 文件中,你可以遍历 _contents 变量,引用每个文件。

for image in public.images._contents
  img(src="/project/harp-doc/images/#{ image }")

结果是下面的 HTML:

<img src="/project/harp-doc/images/hello-world.jpg" />
<img src="/project/harp-doc/images/hello-saturn.jpg" />
<img src="/project/harp-doc/images/hello-jupiter.jpg" />