Skip to content

主题配置 Schema

This content is not available in your language yet.

config.json 是主题与 Gridea Pro 之间的契约文件。它定义主题元信息、声明模板引擎,并通过 customConfig 数组自动生成 GUI 设置面板。

{
"name": "my-theme",
"version": "1.0.0",
"author": "作者名",
"description": "主题简短描述",
"templateEngine": "jinja2",
"customConfig": []
}
字段类型必需说明
namestring主题唯一标识符,英文短横线命名
versionstring推荐语义化版本号
authorstring推荐作者名称
descriptionstring推荐显示在主题选择界面的描述
templateEnginestring推荐"jinja2" / "go" / "ejs",未声明默认 "ejs"
customConfigarray自定义配置项数组

每个配置项会在 GUI 设置面板中渲染为对应的表单控件:

{
"name": "primaryColor",
"label": "主题色",
"group": "外观设置",
"type": "color",
"value": "#6366f1",
"note": "链接、按钮等元素的主要颜色"
}
字段类型必需说明
namestring字段标识符,模板中通过 theme_config.<name> 访问,使用 camelCase
labelstringGUI 面板中显示的标签文字
groupstring分组名称,相同 group 的项归入同一折叠面板
typestring配置类型,决定渲染的 GUI 控件
valuevaries默认值
notestring帮助说明文字
optionsarray条件select 类型必需
typeGUI 控件值类型适用场景
input单行输入框string标题、链接、短文本
textarea多行文本域string长文本、自定义 CSS
color颜色选择器string十六进制颜色码
boolean开关boolean功能开关
number数字输入框number每页文章数等数值
select下拉选择string布局风格、字体选择
image图片上传string横幅图、背景图
code代码编辑器string自定义 JS/CSS 注入
array可增删列表array社交链接等重复项
{
"name": "headerStyle",
"label": "顶栏样式",
"group": "布局设置",
"type": "select",
"value": "fixed",
"options": [
{ "label": "固定顶部", "value": "fixed" },
{ "label": "跟随滚动", "value": "static" },
{ "label": "透明悬浮", "value": "transparent" }
]
}

使用 group 字段将配置项组织成逻辑分组:

推荐分组包含内容
基础设置副标题、每页文章数、日期格式
外观设置主题色、强调色、横幅图
布局设置侧边栏开关、顶栏样式、内容宽度
社交设置社交链接、GitHub 用户名
高级设置自定义 CSS、代码注入
{# Jinja2 #}
{{ theme_config.primaryColor }}
{% if theme_config.showSidebar %}...{% endif %}
{{ theme_config.headerScript|safe }}
{{/* Go Templates */}}
{{ .ThemeConfig.primaryColor }}
{{ if .ThemeConfig.showSidebar }}...{{ end }}
<!-- EJS -->
<%= theme_config.primaryColor %>
<% if (theme_config.showSidebar) { %>...<% } %>
  1. 提供合理默认值 — 用户安装后应开箱即用
  2. name 使用 camelCaseprimaryColor 而非 primary-color
  3. 不与内置变量冲突 — 不要用 siteNamedomain 等已被 config 占用的名称
  4. 5 个以上配置项必须分组 — 保持 GUI 面板的可读性
  5. 高级设置放最后 — 普通用户很少需要修改