0

我正在为我的 Metalsmith 网站使用 Underscore 的模板引擎,但我在访问footer部分网站时遇到了一些麻烦。我收到一条错误消息说:

ReferenceError: footer is not defined

我该怎么称呼它?我究竟做错了什么?

谢谢你。

这是我的 Metalsmith 构建文件的模板部分:

...
.use(layouts({
  engine: 'underscore',
  directory: 'templates',
  partials: 'templates/partials'
}))

这是我的文件夹结构:

posts/
src/
templates/
- base.tpl.html
- partials/
-- footer.tpl.html

这是一个帖子示例:

---
title: My First Post
date: 2012-08-20
layout: base.tpl.html
---

# This is my title

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sed magna vel eros malesuada fringilla.

这是我的html页面:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title><%- sitename %></title>
  </head>
  <body>
    <h1>Hello, world!</h1>

    <%= contents %>

    <% footer %>    <---- THIS IS UNDEFINED
  </body>
</html>
4

1 回答 1

1

我想您需要在构建文件中使用选项partialExtension :

...
.use(layouts({
  engine: 'underscore',
  directory: 'templates',
  partials: 'templates/partials',
  partialExtension: '.tpl.html'
}))

https://www.npmjs.com/package/metalsmith-layouts#partialextension

…因为当插件处理<% footer %>它实际上只是搜索一个名为footer而不是footer.tpl.html

(未测试)

于 2017-08-04T00:39:21.107 回答