前置元数据
页面的元数据是一组键,两种格式中相同。Markdown 页面
把它们写成 YAML 前置元数据;HTML 页面写在
<head> 中:title 写作
<title>,其他键写作
<meta name="键" content="…">。页面可以是完整文档,也可以是片段,htmlpress
以相同方式读取两者。每个键都是可选的;缺少某个键时,htmlpress
会根据文件推导出合理的默认值。
<title>Getting started</title>
<meta name="description" content="Install and run it.">
<meta name="order" content="1">
<h1>Getting started</h1>
<p>Plain HTML, styled by the theme.</p>
---
title: Getting started
description: Install and run it.
order: 1
---
# Getting started
Plain Markdown, styled by the theme.
body 会成为布局内的页面内容。每个页面应有一个 title 和一个一级标题。
文章元数据
页面的标识与呈现。
| 键 | 默认值 | 用途 |
|---|---|---|
title |
第一个 <h1>,否则为文件名 |
在导航和浏览器标签页中显示的页面名称。 |
description |
htmlpress.yaml 中的 description |
供搜索引擎和社交预览使用的页面描述。 |
image |
无 |
页面被分享时显示的图片,即 og:image。相对 URL
从页面的源文件解析;本地图片需要 site 才能转为绝对 URL,否则省略。
|
head |
无 |
仅限 Markdown:添加到布局 head 中的原始 HTML,位于主题之后。HTML 页面把自己的
<link>、<style> 或
<script> 写在
<head> 中,或写在第一段内容之前,并以同样方式添加。
|
date |
无 |
页面的发布日期,格式为
YYYY-MM-DD(时间戳会被截取为日期;其他格式会报错)。显示在标题下方,并用于博客排序。
|
author |
无 | 显示在标题下方的作者;有多位作者时写成列表,或重复该标签。 |
keywords |
无 | 标签,写成列表或用逗号分隔;在博客中每个标签都有一个列出其文章的页面。 |
当项目位于 git 仓库中时,页面 <h1> 下方的那一行还会根据
git log 显示文件最后修改的时间;同一日期也会作为页面在
sitemap.xml 中的 <lastmod>。
侧边栏设置
页面在导航中的显示方式。
| 键 | 默认值 | 用途 |
|---|---|---|
order |
无(按路径排序) | 整数排序位置;见下文“排序规则”。 |
layout |
站点布局 |
改用
.htmlpress/layouts/<name>.html
包裹页面,适用于需要不同外观框架的页面,例如不带侧边栏的落地页。布局不存在会导致构建失败;见
覆盖/弹出。
|
label |
标题 | 页面导航条目的简短名称。 |
icon |
无 | 显示在顶层导航条目前的内置图标,或用于索引页所在文件夹的分组;文件夹内的页面不显示图标。未知的名称会导致构建失败。 |
sidebar |
true |
false
将页面排除在导航以及上一页和下一页链接之外;页面仍会被构建,并可通过其 URL 访问。
|
toc |
true |
false 关闭页面的目录。 |
breadcrumbs |
配置中的 breadcrumbs |
false 隐藏内容上方的文件夹路径;true
即使配置关闭也会显示。
|
source-url |
edit 加上页面路径 |
页面源码链接的目标地址,适用于源码存放在别处的页面; 值为 view 的
source-action
会把链接文字从“编辑此页”改为“查看源码”。
|
排序规则
- 根目录的
index.html始终排在最前。 - 其次是
order为 0 或更大的页面,按升序排列。 - 然后是没有 order 的页面,按路径排列。
-
order为负数的页面排在最后,因此-1会把页面固定在最末尾,-2紧挨在它之前。
order 决定页面在同级页面中的位置:页面嵌套在其文件夹的
index.html 之下;文件夹位于该页面的 order
所指定的位置,未设置时则位于其第一个页面应在的位置。
非整数的 order 会导致构建失败。根目录下的 404.html
是托管服务在 URL
不存在时显示的页面;它不会出现在导航中,没有该页面的项目会获得一个内置的“页面未找到”页面。
URL
页面在以其文件命名的文件夹处提供服务,guides/build.html 对应
/guides/build/,index.html 则在其自身所在文件夹提供:
guides/index.html 对应 /guides/,每个名称都会转换为 slug。见
链接。
path: /start/ 让页面在另一个 URL 提供服务,与其文件路径无关:以
/ 结尾的路径指向该文件夹,以
.html 结尾的路径则指向该文件所对应的页面,因此
/start.html 同样会在 /start/ 提供该页面。两个页面使用同一个
URL 会导致构建失败。
在设置了 languages 的站点上,名为 guide.es.html 的文件,或带有
language: es 的文件,就是 guide.html 的西班牙语翻译,在
/es/guide/ 提供服务;见
翻译。
无需编辑即可覆盖
这里的每个字段也可以在 htmlpress.yaml 中设置,无需改动文件本身;见
文章补丁。
另请参阅
用 ❤ 和 Htmlpress 构建