docs: convert wiki pages to markdown format
docs: rewrite wiki pages to remove filler and ensure factual accuracy
docs: sync wiki with 0.5.0 and the crates directory layout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
版本号改为 0.4.0:迁移页重命名为 Migration-0.4 本次的三处破坏性改动按 cargo 的 0.x semver 规则应当升 minor 位, 版本从原定的 0.3.2 改为 0.4.0。 - Migration-0.3.2 重命名为 Migration-0.4,标题改为「从 0.3 升级到 0.4」 - 新增「依赖写法」一节:升的是 minor 位,写作 "0.3" 的依赖不会被自动升上来, 需要显式改成 "0.4" - 侧边栏、首页、API-Reference、API-Data-Structures、Architecture、Migration-0.2 里的链接与版本号一并同步
重写 API 与架构页,统一中文标题,修正一批事实错误 README 精简后 Wiki 成了唯一的完整文档,把其中说法不准或缺失的部分重写了一遍。 所有 Rust 片段都抽出来实际编译过,非网络片段还实跑了一遍。 API-Enums(重写) - LyricsRawTypes / LyricsTypes / SyncTypes 都漏了 Unknown 变体 - QrcFull / YrcFull 原本写作「含额外元数据」,实际是 XML / JSON 信封, 且只能被检测、不能被 parse() - LyricsTypes 原本整体标为「输出格式」,但 Ttml / Spotify / Musixmatch 没有生成器,传进 generate_string() 只会得到 None;新增「可生成」一列 - 补上判别值、Default、repr(u8) 的序列化稳定性说明 - 补上 LyricsAlignment 实际只有 TTML 与 Lyricify Syllable 两个来源会填 Architecture(重写) - 原文称 lyrics-core「无外部依赖(仅 serde)」,实际还依赖 serde_json、 regex、quick-xml 与 ferrous-opencc(带 OpenCC 词典);补齐六个 crate 各自的外部依赖表 - 依赖关系图把 lyrics-search 画成了 lyrics-crypto 的子节点,重画 - 目录树漏了 helpers/optimization,且根目录 examples/ 已删除 - 删掉逐字抄录 lib.rs 的代码块(抄录必然与代码偏离),改为说明门面做了什么 - 补上「trait 只是预留接口,实际调度走自由函数」与三处有意偏离上游的清单 API-Data-Structures - LineInfo 的方法表只列了 13 个,漏掉构造函数、syllables()、sub_line_mut()、 take_sub_line()、translations_mut()、to_full_syllable() 等;按构造 / 文本 与时间 / 音节与子行 / 翻译与拼音重新分组补全 - 新增警告:LineInfo 的 PartialEq/Ord 只比开始时间,contains/dedup 会按时间 判定而不是内容 - 明确 text() 在音节行返回空串这个容易踩的点 API-Functions - parse() 返回 None 的条件原本写作「格式不匹配时」,实测只有 Unknown、三个 信封类型、以及 Spotify/Musixmatch 的 JSON 不匹配会返回 None;其余 7 种格式 永远返回 Some(lines 为空) - parse_auto() 的 None 补上「检测到信封类型」这一种含义 - decrypt_krc 的流程补上去 BOM 一步 API-Reference(重写) 原本只有一张五行的函数表。改为真正的索引:顶层函数、门面模块地图 (标注哪些需要 search feature)、按任务查页的对照表。 一致性 - 10 个页面的 H1 仍是英文,与侧边栏/首页的中文标签不一致,统一为中文; 正文里 50 处 link 标签同步更新 - 侧边栏把三个升级指南从「入门」里拆出来单成一组 - 全部 link 目标已校验存在
同步 0.3.2:新增升级指南与开发页,修正 KRC 与音节缓存的过时描述 README 精简为入口页,原先只在 README 里的内容搬到这里;同时修掉本次重构 造成的过时描述。 新增: - Migration-0.3.2:refresh_properties 移除、LRCLIB 结构合并、 soda_music 两个公开项删除、KRC 解密修复 - Development:构建/测试/lint、离线构建、运行示例、上游对照约定 修正: - API-Data-Structures:FullSyllableInfo 不再带 RefCell/Cell 缓存, 结构体定义与 refresh_properties 警告同步更新 - Migration-0.2:示例里的 refresh_properties 调用已不存在,改成当前可编译的 写法,并用 NOTE 保留这段历史 - Decryption / Supported-Formats:KRC 解压后去掉的是正文开头的 UTF-8 BOM, 不是「首字节」;补充与上游 C# 的差异说明 - Decryption / Examples:原先的 KRC 样本魔数是 enc\x01、正文前是一个 \0 字节, 并非真实 KRC 结构(它是按当时那版有 bug 的实现反推出来的)。换成 krc1 魔数 + 带 BOM 的正文,两处样本均已用当前实现实测解出预期歌词 导航:_Sidebar 与 Home 加入两个新页面,Home 单列「版本升级」分组
添加平台注意事项:网易云搜索的双接口与地区差异 Search 页补一节「平台注意事项」,记录已实测的行为:网易云搜索依次尝试 web 与 eapi 两个 接口,web 接口在海外 IP 返回加密结果、在风控环境返回 -460,两种情况自动改用 eapi 并记住 该选择;音乐平台结果受地区版权影响,示例不要对搜索结果做断言。 (对应 0.3.1 的修复:原来我们请求的 /api/search/get 地址上游从未使用过,带 Cookie 时会 拿到随机无关歌曲。)
docs: 片段全部可运行,并修正格式/加密/偏移的事实错误 用同一套校验(抽片段 → 生成临时 example → cargo build + cargo run)把 wiki 里 98 个 Rust 片段跑了一遍,原本 41 个是坏的:12 个读仓库相对路径的 fixture(复制 出去就跑不了)、6 个 LRC→QRC 必 panic、9 个引用未定义变量、14 个声明块与源码 不一致。现在 107 个片段全绿(含新增的可运行示例)。 顺带修掉的事实错误(都已对代码核实): - Supported-Formats:QRC 不是「LRC 加音节时间戳」,而是 `[开始ms,行时长ms]` + `文本(绝对开始ms,时长ms)`;YRC 不只是 JSON,而是 JSON 信息行与逐字行混排; Lyricify Syllable 的行头是对齐码(3/4/5,子行 +3),不是时间区间; KRC 不是「DES/ECB + zlib」,而是 Base64 → 跳 4 字节 → 异或 → zlib。 转换矩阵原写「所有格式可转任意格式」——实测不成立:逐字输入可生成全部 6 种, LRC / Spotify 逐行只能生成 LRC,Lyricify Lines 只能生成 LRC 与 Lyricify Lines。 - Decryption / Home:QRC 是十六进制密文 + Triple DES + zlib,KRC 是 Base64 + 跳魔数头 + 异或 + zlib,解密层没有 AES(AES 只用于网易云 eapi 参数加密)。 - Helpers / Examples:add_offset 的实现是 `start_time -= offset`,正值使歌词提前 (实测 12.000s → 11.500s),原文写反了。 - Architecture:门面 re-export 与 feature 列表改为与 lyrics-helper/src/lib.rs、 lyrics-search/Cargo.toml 逐字一致;trait 一节原称「每种格式都实现了 trait」, 实际只有 KrcDecrypter 实现 LyricsDecrypter;依赖列表补全;仓库链接 ChouChiu/Lyricify-Lyrics-Helper 是不存在的地址,改为 ChouChiu/Lyrics-Helper。 - API-Functions:顶层函数名是门面别名(parse/parse_auto),签名块改为与真实 源码一致的 `pub use ... as ...` 或底层函数签名。
新增 Migration-0.3 并同步搜索相关页面 0.3 有两处破坏性变更,wiki 需要跟着改: - 新增 Migration-0.3.asciidoc:SearchError 变体表、空结果与失败的区别、 trait/驱动函数/provider 的新签名、MusixmatchError 删除与 set_options 不再 panic、 base_api 收敛为 send/send_json/send_form + json/text(含 404 需自行判定的说明)、 SyllableItem 的 PartialEq 移除。 - Search-Reference.asciidoc / Search.asciidoc:trait 与高级函数签名改为 Result, 新增 SearchError 一节,示例改成 Ok(Some)/Ok(None)/Err 三分支。 - API-Data-Structures.asciidoc:写明 SyllableItem 没有 PartialEq/Eq 及显式比较写法。 - Architecture.asciidoc:门面 re-export 列表补 SearchError;顺带修正 feature 列表 (原先写的 dep: 前缀与 base64 缺失与 Cargo.toml 不符)。 - _Sidebar.asciidoc:加入 0.3 迁移入口。 代码片段均已落成临时 example 实际编译通过后才写入;signature-only 代码块与源码逐条比对。
更新至 0.2:音节模型、类型检测与辅助工具 - 新增「从 0.1 升级到 0.2」页并加入侧边栏 - API-Data-Structures:LineInfo 的 syllables 改为 Vec<SyllableItem>, 补充 SyllableItem / FullSyllableInfo 及模块级辅助函数说明 - Helpers:按实际 API 重写。此前记载的 chinese_helper::has_chinese_chars、 count_chinese_chars、string_helper::is_only_punctuation_or_symbols、 type_helper::has_lyricify_syllable_pattern / is_lyricify_lines_pattern 均不存在;补齐繁简转换、文本相似度、空白处理等实有函数, 并按模块列出优化器入口 - 类型检测章节改写:结构化格式现按解析 JSON/XML 判定,不再嗅探关键字, 补充 QrcFull / YrcFull / AppleJson 信封需先拆封的说明 - Examples / Getting-Started / Architecture / Home / API-Reference: 逐字歌词遍历改用方法调用,模型名同步 页面中的代码片段均已实测可编译运行。
Fix project name: Lyricify Lyrics Helper -> Lyrics Helper
Restructure wiki with sub-pages and sidebar - Split API-Reference into: API-Reference (overview), API-Functions, API-Data-Structures, API-Enums - Split Search into: Search (overview), Search-Reference (types + advanced functions) - Add _Sidebar.asciidoc for navigation - Update Home page with categorized page links
Optimize and enrich all wiki pages - Fix all API signatures (Option vs Result, enum vs struct, correct types) - Fix search API examples (Searcher trait, correct struct names) - Enrich all pages with more detailed content and examples - Add Helpers.asciidoc page documenting helper modules - Add format conversion matrix to Supported-Formats - Add data model hierarchy to Architecture - Add sub-line/translation/pronunciation examples to Getting-Started - Add search refinement and match type documentation to Search
Revert page headings back to English
Translate all page headings to Chinese
Remove footer
Optimize footer: remove separator, add full navigation
Replace hardcoded toml with cargo add commands
Add wiki footer
Fix wiki page links: use link: macro instead of << cross-references
Convert all wiki pages to AsciiDoc format
Convert all wiki pages to MediaWiki format
Updated Home (mediawiki => markdown)
Updated Home (mediawiki)
Updated Home (markdown => mediawiki)
Add wiki pages: Getting Started, Supported Formats, API Reference, Architecture, Examples, Search, Decryption
Initial Home page