Solitude 的特色页面使用 Hugo 分支包与数据文件协作:_index.md 决定页面地址和类型,data/ 中的 YAML 保存可重复维护的内容。调整数据即可更新页面,无需复制模板。

创建页面入口

以装备页为例,创建 content/equipment/_index.md

yaml
---
title: 我的装备
type: kit
data: kit
aliases:
  - /kit/
---

type 用于选择 Solitude 的专用模板;data 可以把默认的 data/kit.yaml 改成其他文件名。关于、友链和即刻短文分别使用 aboutlinksbrevity 类型。

关于页的模块顺序

data/about.yaml 必须使用模块化的 sections 数组,列表顺序就是最终展示顺序:

yaml
title: 关于 Solitude
sections:
  - type: intro
    greeting: 你好,欢迎了解 Solitude
    name_prefix: 这是
    name: Solitude
    description: 一款专注内容体验的 Hugo 主题

  - type: values
    motto:
      label: 设计原则
      prefix: 内容优先
      content: 克制表达
    expertise:
      label: 主题能力
      prefix: 专注于
      specialist: 阅读体验
      content: 长期维护
      level: 原生

主题只接受已经定义的模块类型,未知类型会让构建明确失败。项目示例使用项目历程和技术能力,不使用个人履历作为默认数据。

友链数据与展示类型

友链页读取 data/links.yaml。每个分组可以使用 carditemdiscn

yaml
links:
  - class_name: 官方资源
    class_desc: Solitude 文档与代码仓库
    type: card
    link_list:
      - name: Solitude Docs
        link: https://solitude.js.org/
        avatar: /img/logo.png
        topimg: /img/demo/cover-getting-started-v2.webp
        descr: Solitude 的安装、配置与迁移文档

当条目数量达到 params.solitude.page.links.async_threshold 时,主题会从首页生成的 links.json 异步读取数据;少量数据则直接输出,二者共享同一份 YAML。

装备清单

data/kit.yaml 使用分组和条目组织内容:

yaml
groups:
  - name: 生产力
    description: 提升自己生产效率的硬件设备
    items:
      - name: 群晖 DS920+
        specification: 性价比超高
        description: 很棒的网络存储解决方案以及流媒体传输服务器
        image: https://example.com/synology.png

条目中的名称可以点击复制,链接会显示为详情入口。图片建议使用本地资源,保证离线预览和生产构建结果一致。

即刻短文

data/brevity.yaml 适合记录项目进展或轻量动态:

yaml
items:
  - date: 2026-08-25T10:00:00+08:00
    content: Solitude Hugo 官方示例站完成内容重写。
    location: 项目仓库
    image:
      - /img/demo/cover-getting-started-v2.webp

每条动态可以包含图片、位置、链接、音乐或视频。页面只读取配置允许的最近条数,因此数据文件可以持续追加而无需修改模板。