用 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

青苔發佈