说明目录
Garden 使用说明快速上手

站点与专栏配置

配置 site.config.yaml 中的站点信息、各页标题、自定义品牌图标与 content/columns.yaml 专栏。

站点的全局文字与外观信息集中在根目录的 site.config.yaml,专栏目录集中在 content/columns.yaml。修改后运行 npx garden sync(或直接 make dev)即可生效。

1.site.config.yaml 完整结构

下面是站点模板默认的 site.config.yaml 字段:

name: Garden
tagline: 写作 · 记录 · 保持好奇
description: 文章、随想和专栏。
locale: zh_CN
# 站点的公开地址。文章里指向这个地址的完整网址会按站内链接显示。
# url: https://blog.example.com
# 站点图标,不写时使用 Garden 自带的图标。
# brand:
#   logo: brand/logo.svg
#   favicon: /favicon.svg
#   appleTouchIcon: /apple-touch-icon.png

author:
  name: Your Name
  github: your-github-id
  githubBio: 一句自我介绍。
  githubPinned: []

pages:
  home:
    title: |-
      记一些正在做的事,
      和想清楚的问题。
    subtitle: 软件、笔记,和偶尔的工作记录。
  blog:
    title: 博文
    subtitle: 写完的长文。
  thoughts:
    title: 随想
    subtitle: 短笔记、图片和链接。
  columns:
    title: 专栏
    subtitle: 按顺序读的一组文章。
  about:
    title: 你好,我是 Your Name。
    subtitle: 文章和笔记都在这里。
    heading: 关于
    paragraphs:
      - 一名工程师。平时写代码,也把想清楚的问题记下来。
      - 这里放文章、随想和专栏。
    quote: ""
    focus:
      - 软件
      - 笔记
      - 日常
    cta:
      href: /blog
      label: 浏览博文
  garden:
    title: "用 Markdown 写。\n推送之后,网站自己更新。"
    subtitle: ""

footer: 持续记录。

顶层与作者字段

字段说明
name站点名称,显示在左上角导航栏、浏览器标题后缀与 RSS 订阅源标题
tagline站点副标题
description站点简介,用于首页 SEO 描述与 RSS 频道描述
locale语言与地区标识,默认写 zh_CN(下划线格式)
url站点的公开完整网址(如 https://blog.example.com)。配置后,文章里指向该地址的完整链接会自动按站内链接处理
author.name作者署名,显示在文章元信息栏、关于页和页脚
author.githubGitHub 用户名(不要写完整网址),用于拼接 GitHub 主页链接及拉取关于页的公开动态
author.githubBio当构建环境没有配置 GITHUB_TOKEN 时的个人简介降级文字
author.githubPinned本地无 GITHUB_TOKEN 时的置顶仓库降级列表
footer页脚签名文字

提醒

URL 末尾是否带斜杠(Trailing Slash)不由 site.config.yaml 控制:静态导出(STATIC_EXPORT=1)时始终开启,服务端构建可通过环境变量 TRAILING_SLASH=1 开启。

pages 一级页面文案

pages 下的每个键对应一个一级路由的页头文字:

  • pages.home、pages.blog、pages.thoughts、pages.columns、pages.garden:均使用 title 和 subtitle 两个字段。其中 /garden/ 页面会读取 pages.garden.title(支持用 丨 分成两行)和 pages.garden.subtitle。
  • pages.about:除 title 和 subtitle 外,还支持 heading(正文小标题)、paragraphs(段落数组)、quote(引言)、focus(关注方向标签数组)以及 cta({ href, label } 按钮)。

brand 自定义图标与路由重定向

  • brand.logo:左上角站点名左侧的 SVG 标志。文件相对于站点根目录解析(例如放在 brand/logo.svg),构建时会内联进页头并跟随当前文字颜色。设为 false 可隐藏左上角图标。
  • brand.favicon 与 brand.appleTouchIcon:放在 public/ 目录下的图标路径(如 /favicon.svg、/apple-touch-icon.png);appleTouchIcon 设为 false 可不输出。
  • redirects:旧文章改路径后,可在 site.config.yaml 顶层配置 redirects 映射(例如 "/2024/01/20/old-post/": "/blog/new-post/"),构建时会在旧路径生成跳转页,正文里的站内旧链接也会自动指向新地址。

2.配置主题专栏(content/columns.yaml)

专栏用于把 content/posts/ 里的多篇长文按阅读顺序编成一组。编辑 content/columns.yaml:

columns:
  - slug: building-in-public
    title: 一个人造产品
    status: 连载中
    description: 从最小闭环到验证发布的完整记录。
    cover: windowsill-herbs.svg
    posts:
      - building-in-public/smallest-closed-loop
      - building-in-public/ship-with-evidence
字段必填说明
slug是专栏标识,只能包含小写字母、数字和连字符,生成路由 /columns/<slug>/<post>
title是专栏名称(同时会显示在 /blog 文章列表对应文章的右侧)
description是专栏简介,显示在 /columns 列表卡片上
status否状态文字(如 连载中 或 已完结)
cover否专栏封面图路径(相对 content/covers/)
posts是按阅读顺序排列的文章路径列表(相对于 content/posts/,不带 .md 后缀)
目录