修復含空格/括號檔名的圖片連結失效,自檢改驗連結可 render
來源檔名含空格或不平衡括號時,convert 產出的 Markdown 圖片連結會失效—— 圖檔明明存在於磁碟,整行卻退化成純文字(CommonMark 對未包住的空格與不平衡 括號視為分隔符)。用真 CommonMark parser 驗過:中文與成對括號正常,空格與 落單括號會壞。 - convert.py / from_docx.py / from_pdf.py / from_pptx.py:四處圖片連結目標 一律以 <> 包住(),同時涵蓋空格與不平衡括號。 - selfcheck.py:新增 assert_links_ok()——以 markdown_it 真 render,斷言圖片 連結數 == <img> 數且目標檔存在,取代原本只檢查 "![" 字串在不在的表面斷言。 測資補內嵌圖片(docx/pdf/pptx 各一路徑)、檔名改含空格與不平衡括號。 - requirements.txt:明確宣告 markdown-it-py(原為 fastmcp 傳遞依賴,自檢直接 使用,宣告以免上游調整依賴樹後自檢失效)。 - AGENTS.md §13.4:新增「斷言要驗結果可用,不是驗字串存在」規則。 驗證:四個自檢全通過;移除任一處 <> 修法,assert_links_ok 即失敗。 ingest / lint / search 在含括號檔名下全鏈路已另行驗證正常(source_ref 走 YAML 純量,不受影響)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -276,6 +276,9 @@ output**)。單筆修正只治標;規則修正才治本。
|
||||
語料要有跨頁共用的核心詞。便利值會變成盲點的形狀——ASCII 檔名讓 `git status`
|
||||
的路徑轉義 bug 溜過,互不重疊的語料讓 BM25 的 idf 退化 bug 溜過。
|
||||
新增檢查時先問:**這組測資和真實輸入差在哪?差異處就是沒被測到的地方。**
|
||||
- **斷言要驗「結果可用」,不是驗「字串存在」**:`assert "![img](" in md` 只證明字串被
|
||||
組出來,證明不了連結解得開——真正該做的是用解析器 render 後確認產出 `<img>`
|
||||
且目標檔存在。測資照現實建了、斷言卻停在表面,bug 一樣會溜過去。
|
||||
- 把任務轉成可驗證的目標,迭代到通過:
|
||||
- 「加驗證」→ 先寫無效輸入的測試,再讓它通過。
|
||||
- 「修 bug」→ 先寫重現 bug 的測試,再讓它通過。
|
||||
|
||||
Reference in New Issue
Block a user