朗读 (TTS) 后端
每个后端四个字段:id(机器标识,仅 A-Z a-z 0-9 _ -)、label(用户可见名)、url(OpenAI-compatible TTS API)、voice(声纹名)。改完保存立即生效,不入 .env、不重启。
import { THEME_CSS, escapeHtml, escapeAttr, tabNavHTML } from "../render/layout"; import type { TtsBackend } from "../config"; import type { UserRow } from "../store"; interface Flash { kind: "ok" | "err"; msg: string; } function backendCard(b: TtsBackend, defaultId: string): string { const isDefault = b.id === defaultId; const idAttr = escapeAttr(b.id); const action = `/admin/tts-backends/${encodeURIComponent(b.id)}/update`; const deleteForm = isDefault ? `默认后端不能删除(先在设置里改默认)` : `
`; return `${escapeHtml(b.id)}
${isDefault ? `默认` : ""}
每个后端四个字段:id(机器标识,仅 A-Z a-z 0-9 _ -)、label(用户可见名)、url(OpenAI-compatible TTS API)、voice(声纹名)。改完保存立即生效,不入 .env、不重启。