用 Frontmatter 定义页面

Frontmatter 是 markdown 文件最顶部、两行 --- 之间的一段 YAML,用来告诉青苔这个页面的标题、日期、可见性等信息。

---
title: 我的第一篇文章
date: 2024-06-15
description: 列表预览与搜索引擎用的简短摘要。
---

下面是正文。

Frontmatter 是可选的。没有它,文件照样成为页面,青苔用文件名当标题。青苔只认识下面列出的字段,其他自定义字段会被忽略。

用标题命名文件

每个文件名称默认成为页面标题:隐私.md 标题为「隐私」。 title: 隐私说明 则覆写原来的标题。

当文件名含中文或空格时,用 url: 钉一个简短、稳定的网址:隐私.mdurl: privacy,就发布在 /privacy。文件名给整理文件夹的你看,url: 才是读者看到的地址;钉住它,重命名文件也不会让链接失效。

常用字段

身份——描述页面本身。

字段作用
title页面标题(覆写取自文件名的标题)
description列表预览与 SEO 摘要
date发布日期(YYYY-MM-DD
tags内容标签

导航与可见性——控制页面出现在哪里。

字段作用
nav是否出现在顶部导航栏(根目录页面默认 true
weight导航和列表中的排序,数值越小越靠前
drafttrue 则完全不生成
unlisted生成,但不出现在列表和 sitemap 中

栏目与媒体——文件夹页面如何展示子页面。

字段作用
children是否列出子页面(默认 true,设 false 关闭)
children_stylelistcardsummary
sortdateweighttitle,或显式列出顺序
cover卡片和页头用的封面图

多数文件夹无需声明 sort:青苔会自动推断——有日期的按日期,有权重的按权重,其余按标题。

多语言站点

青苔支持英文(en)、简体中文(zh-hans)和繁体中文(zh-hant)。任意一种都可作为默认语言,其余会出现在页面顶部的语言切换按钮里。

每种语言一个文件夹:把译文放进以语言命名的子文件夹。

my-site/
├── index.md          ← 默认语言
├── zh-hans/
│   └── index.md      ← 简体中文
└── zh-hant/
    └── index.md      ← 繁体中文

当两个语言版本的文件名不同时,用 translationKey 把它们关联起来,语言切换按钮才知道彼此对应:

# posts/hello.md          # posts/你好.md
---                       ---
translationKey: hello     translationKey: hello
---                       lang: zh-hans
                          ---

完整字段

cascadeseriesalso_incontent_widthtypesettingsidebar 等进阶字段,以及每个字段的类型与默认值,见英文参考 Frontmatter

青苔发布