feat(themes): 添加可编辑的站点外观和皮肤主题(#408)
This commit is contained in:
@@ -40,7 +40,7 @@ func renderBuiltinDocumentation(info Metadata, document string) string {
|
||||
|
||||
func renderOperations(info Metadata) string {
|
||||
var b strings.Builder
|
||||
b.WriteString("| 阶段 | 方法与相对路径 | 请求类型 | 影策行为 |\n| --- | --- | --- | --- |\n")
|
||||
b.WriteString("| 阶段 | 方法与相对路径 | 请求类型 | 宿主行为 |\n| --- | --- | --- | --- |\n")
|
||||
writeOperation(&b, "创建", info.Create, firstNonEmpty(info.ContentType, "application/json"), "提交请求;同步协议直接解析结果,异步协议读取任务 ID")
|
||||
if strings.TrimSpace(info.Poll) != "" {
|
||||
writeOperation(&b, "轮询", info.Poll, "application/json", "查询状态,成功后提取媒体地址")
|
||||
@@ -53,10 +53,10 @@ func renderOperations(info Metadata) string {
|
||||
|
||||
func renderParameters(parameters []Parameter) string {
|
||||
if len(parameters) == 0 {
|
||||
return "> 当前适配器没有声明可配置参数;这不表示上游没有参数,只表示影策尚未建立稳定映射。"
|
||||
return "> 当前适配器没有声明可配置参数;这不表示上游没有参数,只表示宿主尚未建立稳定映射。"
|
||||
}
|
||||
var b strings.Builder
|
||||
b.WriteString("| 影策字段 | 类型 | 必填 | 实际上游映射 | 说明 |\n| --- | --- | --- | --- | --- |\n")
|
||||
b.WriteString("| 宿主字段 | 类型 | 必填 | 实际上游映射 | 说明 |\n| --- | --- | --- | --- | --- |\n")
|
||||
for _, parameter := range parameters {
|
||||
description := strings.TrimSpace(parameter.Description)
|
||||
if len(parameter.Values) > 0 {
|
||||
@@ -69,17 +69,17 @@ func renderParameters(parameters []Parameter) string {
|
||||
|
||||
func renderRuntimeContract(info Metadata) string {
|
||||
var b strings.Builder
|
||||
b.WriteString("## 影策运行时合同\n\n")
|
||||
b.WriteString("## 宿主运行时合同\n\n")
|
||||
b.WriteString("- Base URL 只填写协议服务根地址,表中的相对路径由适配器拼接;不要把同一路径重复写进 Base URL。\n")
|
||||
b.WriteString("- 密钥由后端渠道中转读取,插件详情和浏览器请求不保存密钥。Bearer、供应商签名或专用版本头以本文鉴权章节为准。\n")
|
||||
b.WriteString("- 模型名来自渠道模型配置并原样发送。此插件不暗改模型名,也不根据名称猜测价格、额度或能力。\n")
|
||||
b.WriteString("- HTTP 非 2xx、非 JSON 响应、缺少任务 ID、成功状态却没有可识别结果都会作为真实错误向上返回。\n")
|
||||
if strings.TrimSpace(info.Poll) != "" {
|
||||
b.WriteString("- 异步状态统一为:`queued/pending/created/submitted` -> 等待,`running/processing/in_progress` -> 处理中,`succeeded/completed/done` -> 成功,`failed/error/expired/cancelled` -> 失败。\n")
|
||||
b.WriteString("- 轮询频率应遵守上游速率限制;媒体 URL 通常有有效期,成功后应立即进入影策资源保存流程。\n")
|
||||
b.WriteString("- 轮询频率应遵守上游速率限制;媒体 URL 通常有有效期,成功后应立即进入宿主资源保存流程。\n")
|
||||
}
|
||||
b.WriteString("- 参考素材只接受上游可访问的 HTTP(S) URL 或带 MIME 前缀的 data URL;裸 Base64、登录后才能访问的链接和 Cookie 保护地址不可用。\n")
|
||||
b.WriteString("- 插件只保证下方“当前实现”明确列出的字段。上游新增能力不会自动获得影策支持,必须补适配、解析和测试。\n")
|
||||
b.WriteString("- 插件只保证下方“当前实现”明确列出的字段。上游新增能力不会自动获得宿主支持,必须补适配、解析和测试。\n")
|
||||
return strings.TrimSpace(b.String())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user