78 lines
2.4 KiB
Markdown
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 和规则。
|