mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-22 06:03:49 +08:00
c877f0551e
新增SidebarEntry类型定义与侧边栏配置加载逻辑,支持从服务器拉取sidebar-config.json动态配置侧边栏入口 替换原分类侧边栏为可配置样式,新增CategoryBar分类选择组件,更新品牌色为苹果风格蓝色 重构侧边栏状态管理,拆分activeTab与选中分类逻辑,新增侧边栏入口计数统计 添加SIDEBAR_CONFIG.md文档说明配置格式与使用方法,更新测试用例与组件props
2.4 KiB
2.4 KiB
侧边栏入口配置 (Sidebar Config)
星火应用商店支持通过服务器上的 JSON 文件动态配置左侧侧边栏的入口项。
配置文件位置
将 sidebar-config.json 放置在服务器应用仓库的架构目录下:
# Spark 仓库
{baseUrl}/{arch}-store/sidebar-config.json
# APM 仓库
{baseUrl}/{arch}-apm/sidebar-config.json
例如:
https://example.com/amd64-store/sidebar-config.jsonhttps://example.com/arm64-store/sidebar-config.json
JSON 格式
每个入口项为一个对象,包含以下字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | ✅ | 唯一标识符,对应分类名或自定义 ID |
name |
string | ✅ | 侧边栏显示的入口名称 |
icon |
string | ❌ | FontAwesome 图标类名,如 fas fa-gamepad |
type |
string | ❌ | 入口类型:category(分类筛选)、search(搜索关键词)、link(外部链接)。默认为 category |
value |
string | ❌ | 与 type 配合使用的值。category 类型为分类名,search 类型为搜索关键词。默认为 id 的值 |
示例配置
[
{
"id": "games",
"name": "游戏专区",
"icon": "fas fa-gamepad",
"type": "category",
"value": "games"
},
{
"id": "devtools",
"name": "开发工具",
"icon": "fas fa-code",
"type": "category",
"value": "development"
},
{
"id": "office",
"name": "办公学习",
"icon": "fas fa-book",
"type": "category",
"value": "office"
},
{
"id": "ai-search",
"name": "AI 应用",
"icon": "fas fa-robot",
"type": "search",
"value": "AI"
}
]
入口类型说明
category 类型
点击后在"全部应用"页面按指定分类筛选应用。value 字段对应 categories.json 中的分类键名。
search 类型
点击后自动使用 value 字段的值进行搜索。适用于快速入口,如"AI 应用"、"微信"等热门关键词。
link 类型(预留)
用于跳转到外部链接或内部页面。后续版本支持。
注意事项
- 如果两个仓库(Spark 和 APM)都存在
sidebar-config.json,相同的id会自动去重合并 - 配置文件不存在时,侧边栏不会显示额外的入口项,不影响正常使用
- 入口项显示在"首页推荐"和"全部应用"之间,以分隔线区分
- 每个入口项会显示对应分类或搜索下的应用数量