Files
QieKan-3.0/docs/dev/discovery-url.md
T

78 lines
2.4 KiB
Markdown

# 发现 URL (Discovery URL) 配置规范
[[toc]]
源的「发现 URL」字段支持通过 JSON 数组定义多个发现页入口,每个入口包含标题、URL
和可选的布局样式。这使得一个源可以提供多个分类或榜单的快捷入口。
## 1. 字段位置
在源编辑器的 **发现** 选项卡中:
```
发现 → 发现 URL
```
## 2. 数据结构
发现 URL 是一个包含多个入口对象的 JSON 数组。
### 入口字段
| 字段 | 类型 | 必须 | 说明 |
|:--------|:---------|:---|:--------------------------|
| `title` | `String` | 是 | 入口标题,显示在发现页列表中 |
| `url` | `String` | 是 | 目标 URL,支持 `{{page}}` 分页变量 |
| `style` | `Object` | 否 | Flexbox 布局配置 |
### style 布局属性
| 属性 | 类型 | 说明 |
|:--------------------------|:----------|:---------------|
| `layout_flexGrow` | `Int` | 弹性增长比例 |
| `layout_flexShrink` | `Int` | 弹性收缩比例 |
| `layout_alignSelf` | `String` | 交叉轴对齐方式 |
| `layout_flexBasisPercent` | `Int` | 基础尺寸百分比,-1 为自动 |
| `layout_wrapBefore` | `Boolean` | 是否强制换行 |
## 3. 完整 JSON 示例
```json
[
{
"title": "热门榜",
"url": "https://example.com/rank/hot?page={{page}}"
},
{
"title": "新书榜",
"url": "https://example.com/rank/new?page={{page}}"
},
{
"title": "完本榜",
"url": "https://example.com/rank/finish?page={{page}}"
}
]
```
## 4. 两种格式
发现 URL 支持两种填写格式:
| 格式 | 说明 | 适用场景 |
|:--------|:-----------------------------------------|:----------|
| 字符串 | 直接填写 URL,如 `https://example.com/explore` | 单个发现页 |
| JSON 数组 | 定义多个入口 | 多个分类/榜单入口 |
## 5. 分页变量
URL 中可使用 `{{page}}` 变量实现分页,Legado 会自动递增页码:
```
https://example.com/rank?page={{page}}
```
## 6. 与首页模块的关系
发现 URL 定义的入口可被 [首页模块](../spec/homepage-modules) 的 `kindTitle` 字段引用。当首页模块的
`kindTitle` 与某个发现入口的 `title` 完全匹配时,模块会自动使用该入口的 URL 和规则。