配置文件

Halo 的主题模块使用 yaml 来对主题进行配置,theme.yaml 里面主要描述主题的名称,开发者的信息,开源地址等等。settings.yaml 包含了主题所有的配置选项,需要注意的是,这些选项仅仅是用于构建配置表单,并不起到对主题的配置作用。

theme.yaml

id: 主题id,唯一,不能与其他主题一样。我们建议设置为 `作者名_主题名称`
name: 主题名称
author:
  name: 作者名称
  website: 作者网址
description: 主题描述
logo: 主题 Logo 地址
website: 主题地址
repo: 主题开源地址
version: 版本号
theme.yaml 实例
id: caicai_anatole
name: Anatole
author:
  name: Caicai
  website: https://www.caicai.me
description: A other Halo theme
logo: https://avatars1.githubusercontent.com/u/1811819?s=460&v=4
website: https://github.com/halo-dev/halo-theme-anatole
repo: https://github.com/halo-dev/halo-theme-anatole
version: 1.0

settings.yaml

# Tab 节点
group1:
  label: 第一个 Tab 名称
  # 表单项
  items:
    # 省略
group2:
  label: 第二个 Tab 名称
  # 表单项
  items:
    # 省略

settings.yaml#items

settings.yaml 的 items 下即为所有表单元素,所支持的表单元素如下

items:
    # 普通文本框
    - name: item1               // (形式一)表单项的 name 属性,将存于数据库中,对应该表单元素的键。
      label: item1_label        // 表单项的 label
      type: text                // 表单项类型:普通文本框
      default: ''               // 默认值
      placeholder: ''           // 表单项的 placeholder,一般给用户提示

    # 多行文本框
    item2:                      // (形式二)表单的 name 属性,将存储于数据库中,对应该表单元素的键。
      label: item2_label        // 同上
      type: textarea            // 表单项类型:多行文本框
      default: ''               // 同上
      placeholder: ''           // 同上

    # 单选框
    - name: item3               // 同上
      label: item3_label        // 同上
      type: radio               // 表单项类型:单选框
      data-type: bool           // 数据类型:bool,string,long,double
      default: value1           // 同上
      options:                  // 选项
        - value: value1         // 值
          label: label1         // 说明
        - value: value2
          label: label2

    # 下拉框
    - name: item4               // 同上
      label: item4_label        // 同上
      type: select              // 表单项类型:下拉框
      data-type: bool           // 数据类型:bool,string,long,double
      default: value1           // 同上
      options:                  // 选项
        - value: value1         // 值
          label: label1         // 说明
        - value: value2
          label: label2

settings.yaml 实例:参考 https://github.com/halo-dev/halo-theme-material/blob/master/settings.yaml