StepByStep教程

4. 网站布局

一般网站都包含多个网页,本站也不例外。

Jekyll 对 Markdown 页面的支持与 HTML 页面一样好。Markdown 适用于内容与结构简单(仅有段落,标题和图片)的页面,他比原始 HTML 页面更简洁。让我们在下一个页面中试一下。

在根目录下新建 about.md

你可能会复制 index.html 的结构到 “about” 页中并修改他。这么做的问题是代码会重复,假如你想在网站中添加一个样式表,你必须在每个网页的 <head> 中添加他。对于一个只有两个网页的站点来说,这听起来似乎没什么问题。但想象一下若对100个网页进行同样的操作,即便是简单的修改也会花费很长的时间。

创建布局

使用布局是个更好的建议。布局是包装内容的模板。他们放在一个叫 _layouts 的目录中。

创建你的第一个布局 _layouts/default.html` ,内容如下:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>{{ page.title }}</title>
  </head>
  <body>
    {{ content }}
  </body>
</html>

你会注意到这与 index.html 几乎一样,只是他没有 front matter 并且页面内容被一个 content 变量取代。content 是个特殊的变量,他的值是调用他的页面所呈现的内容。

要想让 index.html 使用这个布局,需要在 front matter 中放置一个 layout 变量。布局会包装页面内容,所以 index.html 只需要:

---
layout: default
title: 主页
---
<h1>{{ "Hello World!" | downcase }}</h1>

这样做后,输出还跟以前完全一样。请注意,你可以从布局中访问 page front matter。这种情况下 title 在当前页面的 front matter 中定义,但他可以在布局中输出。

About 页面

回到 about 页,你也可以使用布局,而不用从 index.html 中复制。

将以下内容添加到 about.md 中:

---
layout: default
title: 关于
---
# 关于 页
本页记录一些关于我的信息。

在浏览器中打开 http://localhost:4000/about.html 可以查看你的新网页。

恭喜,现在你已经有了一个包含两个页面的站点。但是怎么从一个页面链接到另一个页面呢?继续读下去可以找到答案。

  1. 环境配置
  2. Liquid 语言
  3. Front Matter
  4. 网站布局
  5. Includes
  6. 数据文件
  7. 资源
  8. 博客
  9. 集合 Collections
  10. 部署