我正在修改Yeoman的"webapp"构建并自定义它以满足我的需求。
我想做简单的包括重复的模式在整个网站,如页眉和页脚。我涉猎了一下杰基尔,但我担心它对我的需求来说有点太复杂了。
我目前正在使用PHP include,但这与Grunt不兼容。
是否有一个简单的替代PHP包含或有Grunt运行PHP的方法?什么是最佳实践?
如果你真的对Jekyll感到困惑,只需花一个小时浏览一下网站,你就会获得超能力。这是用于模板的纯html +用于逻辑的少量液体,仅此而已。
我真的觉得这比那些自耕农、咕噜的东西简单多了。
我的两分钱
我既不知道Yeoman也不知道Grunt,但就像David Jacquel已经在他的回答中说的那样:使用Jekyll制作全局页眉和页脚是非常简单的。
您需要一个布局文件,它只是一个带有占位符的HTML文件,位于/_layouts
文件夹(参见目录结构):
我叫它default.html
,所以完整的路径是:/_layouts/default.html
<!DOCTYPE html>
<html>
<head>
<title>{{ page.title }}</title>
</head>
<body>
<div>
YOUR HEADER HERE
</div>
<div>
{{ content }}
</div>
<div>
YOUR FOOTER HERE
</div>
</body>
</html>
-
{{ content }}
是插入实际页面内容的地方。 -
{{ page.title }}
为页面标题(需要在每个页面中定义)。
然后,您需要创建一个实际的页面。您可以使用HTML或Markdown:
/index.html
:
---
layout: default
title: page title here
---
Some <strong>text</strong>
…or /index.md
:
---
layout: default
title: page title here
---
Some **text**
- 开头的
---
部分为YAML Front-matter。 -
layout: default
行指的是前面创建的/_layouts/default.html
文件。 -
title: ...
行将插入布局文件中的{{ page.title }}
占位符。
最终结果,无论你使用HTML还是Markdown,将创建为/index.html
,看起来像这样:
<!DOCTYPE html>
<html>
<head>
<title>page title here</title>
</head>
<body>
<div>
YOUR HEADER HERE
</div>
<div>
Some <strong>text</strong>
</div>
<div>
YOUR FOOTER HERE
</div>
</body>
</html>
如果你想让布局更模块化,你也可以将自定义页眉和页脚移动到单独的include文件中。
将布局文件更改为:
<!DOCTYPE html>
<html>
<head>
<title>{{ page.title }}</title>
</head>
<body>
{% include header.html %}
<div>
{{ content }}
</div>
{% include footer.html %}
</body>
</html>
两个{% include ...
行指向/_includes
文件夹中的文件,因此您可以创建/_includes/header.html
和/_includes/footer.html
,并将所需的HTML放入这些文件中。