更新記錄
每個版本改了什麼,新版本在前。這些是 GitHub Release 的說明。
把頁面發到聊天工具:am export
Discord、Telegram、Slack 和微信會把 .html 檔案顯示成原始碼。am export 把渲染好的頁面轉成它們能直接顯示的檔案(#350、#354):
am export page.html --pdf page.pdf # A4,按頁面自己的列印樣式
am export page.html --png out/ # out/page-1.png、out/page-2.png ……
--png按 1200 CSS px 寬、2 倍分辨率渲染,隱藏工具欄、回覆和標註控制項以及新版本提示,把頁面切成每張不超過 1800 CSS px 高的圖。切口落在面板之間的空隙裡。- 再次匯出到同一個目錄時,會刪掉這次沒有重新寫入的
<頁面名>-<n>.png切片,所以頁面變短後不會留下舊圖。其他檔案不動。如果某個切片就是輸入的頁面,或者刪不掉,就保留原樣並給出提示(#362、#363)。 - 需要 Chrome、Chromium 或 Edge(用
AM_CHROME指定路徑),以及 Node.js 22 或更高版本。
表格排序和篩選
在 Markdown 表格後面緊接著寫 {table sort},讀者點表頭就能排序。{table filter} 加一個對所有單元格的文字篩選框;{table sort filter} 兩個都要(#357、#365)。
- 數位、
1,200、$900、12%或 ISO 日期組成的列按數值排序,超過 2^53 的整數也準確。其他列按文字排序。 - 控制項可以用鍵盤操作,列印和 PDF/PNG 匯出時隱藏,沒有 JavaScript 時不出現。沒寫這個屬性的表格保持靜態。
html或svg塊裡的<script>在頁面的 Content-Security-Policy 下無法執行,am render現在會給出警告,並指出草稿裡的行號。
用現成的音訊檔案做影片旁白
am video draft.md --audio-map lines.json 直接用你已有的音訊檔案做旁白,不需要語音服務:JSON 裡把每行旁白對應到一個檔案,例如 {"First the client sends SYN.": "audio/01.mp3"}(#356、#366)。
- 相對路徑從對應檔案所在的目錄算起。某行旁白沒有對應的鍵、或者檔案不存在時,渲染會停下並指出是哪一行。
- 16-bit PCM WAV 可以直接用,其他 WAV 編碼和其他格式需要 ffmpeg。音訊和
--voice local一樣會裁掉首尾靜音、使用語音快取,檔案改動後快取會重新讀取。 --audio-map不能和明確的--voice同時使用。命令列 TTS(#356)還沒做。
flow 圖交叉更少,剩下的會給出提示
flow和er圖裡,交換兩個相鄰節點就能消除的交叉不會再畫出來。以前從同一個節點出發的兩條連線按草稿順序排列,可能互相交叉(#369)。flow的連線仍然穿過別的節點或別的連線標記時,am render會帶上草稿行號給出提示和解決辦法:換個方向能畫乾淨時建議換方向(```flow TB),否則建議拆成總覽圖和細節圖。頁面照常生成(#378)。- 檢查按頁面實際畫出的曲線進行,而不是按佈局給出的折點,所以和讀者看到的一致(#382、#384)。
其他改動
- Claude Code 外掛: 外掛裡不再帶
node_modules目錄,所以在 Claude Code 桌面版的 SSH 會話裡不會再被關掉("has a symbolic link, node_modules/.bin/esbuild")。執行claude plugin update answer-me-with-html@answer-me-with-html即可(#361、#368)。 am serve: 通過 http 打開的頁面,回答、評論和標註儲存在伺服器端,手機回收後台標記頁後也不會丟(#322、#343)。- 主題: 頁面的主題切換器裡會列出所有已安裝的主題,不只是預設主題(#348、#353)。
- flow: 節點或連線標記裡的
\n會換行,按 Mermaid 習慣寫的草稿可以直接用(#347、#352)。 - 檔名: 頁面和草稿檔名只用 ASCII 字母和數位,最長 24 個字元,在 Windows Terminal 裡 ctrl+點選、或者在會自動折行的 TUI 裡點選,都能打開完整路徑。沒有 ASCII 字元的標題生成
page-<時間>.html,這時可以在草稿 frontmatter 裡寫file: tcp-handshake指定檔名(#344、#351、#379、#383)。 - 韓文: 韓文頁面在詞與詞之間換行,不再把一個詞從音節中間拆開。帶長備註的狀態標記會在圖標旁邊換行,不再把表格撐寬(#355)。
- Skill: 命令裡重新使用
${CLAUDE_SKILL_DIR},並告訴其他宿主把它換成 skill 所在的目錄,修復了 opencode 裡的Cannot find module '/scripts/am.mjs'(#326、#327)。 - 依賴: dagre 3.1.3、marked 18.1.2(#376、#377)。
- 檔案: INSTALL.md 說明沒有 npm 包,並說明用
-a '*'時不支援全域 skill 的 agent 會顯示安裝失敗,這是正常的(#345)。參考文件說明重新渲染後自動編號的面板字母可能指向另一個面板,所以用am patch --panel B之前先給面板寫上字母(#346)。SKILL.md 說明提問數量和字數限制只是建議,CLI 只檢查每個提問 2 到 6 個選項(#358、#360)。
元件也可以寫成 ::: 塊
按 VitePress、Docusaurus 提示框的寫法寫的元件,現在和 ``` 程式碼塊寫法渲染結果完全相同,不再像 0.5.9 那樣報錯(#341):
:::callout ok Done
It works.
:::
等同於
```callout ok Done
It works.
```
- 只有元件名才算:
:::note、單獨的:::,以及程式碼塊裡的:::照舊是文字。 - 塊在冒號數不少於開頭的那一行結束,所以用
::::開頭的塊裡可以寫:::行。 - 有開頭沒有結尾,和 ``` 沒閉合報同一個錯。
- 檔案仍然教 ``` 寫法;接受
:::是為了讓按習慣寫的草稿一次就能渲染成功。
把元件寫成 ::: 塊會報錯
草稿如果按 VitePress、Docusaurus 或 Pandoc 提示框的寫法寫元件,比如 :::callout … :::,以前會被當成普通文字輸出,也沒有任何提示。現在 am lint 和 am render 會報錯並給出正確寫法,和草稿裡的其他錯誤一起列出,不生成頁面(#336):
✗ L2 [fence] write a component as a fenced code block, not :::callout
Correct example:
```callout warn Caution
Close the valve before you remove the pump.
```
- 只有已知的元件名才報錯:
:::note、單獨的:::,以及程式碼塊裡的:::照舊是文字。 SKILL.md在元件表上方寫明:元件要寫成程式碼塊。
其他改動
- 網站: 新增更新記錄頁面,收錄每個版本的說明,從新到舊,中英文都有:answer-me-with-html.com/zh/changelog/。發版說明現在儲存在倉庫的
changelog/<版本>.md裡(#337)。 - 參與貢獻: 修 bug、改檔案、錯別字、測試和只加主題的 PR 可以直接提交。新功能、新語法、新的頁面交互,以及修 bug 以外的行為改動,仍然要先有被接受的 issue(#338)。
doc 頁面的目錄導軌
3 個及以上面板的 doc 頁面,目錄不再單獨佔一列,手機上也不再排在正文前面。目錄變成正文旁的一條導軌:每個章節一道短刻度(#332)。
- 懸停刻度可以看到章節標題。在導軌上停留,或者點選、輕點它,會展開完整目錄。滾動時會標出正在閱讀的章節。
- 在 frontmatter 裡寫
outline: left或outline: right選擇導軌放在哪一側,預設是right。從右到左的頁面左右鏡像。 - 方向鍵在目錄裡行動,Esc 關閉。沒有 JavaScript 時目錄照樣能展開、連結照樣能跳轉。列印時隱藏導軌。
- 在 390px 寬的手機上,24 個章節的頁面現在緊接著標題就是正文,原來要到 y=889px 才開始。
- doc 頁面變窄(916px,原來是 1120px)並且居中,標題和正文對齊。
透過 Tailscale 在手機上看頁面
am serve --tailscale 只監聽這台機器的 Tailscale 地址,所以 tailnet 裡的手機或其他設備可以直接打開 link: 那一行的連結,不需要 SSH,也不改動 Tailscale 設定。連結在重啟後仍然有效;要讓所有連結失效,先停掉服務,刪除 ~/.answer-me-with-html/serve-secret,再重新啟動(#323)。
其他改動
- 標註: 標註彈窗可以全程用鍵盤操作:
1–4選標記,Ctrl/⌘+Enter儲存,沒儲存就關掉的彈窗會保留草稿。標註模式下,Tab能走到每個塊,Enter或Space打開它的彈窗(#321)。 - 寫作檢查: 引號裡的文字(
"…"、“…”、「…」、『…』、«…»、„…“)是別人的原話,檢查會跳過,和刪除線一樣。原樣引用需求的頁面不會再因為style: strict而無法生成(#331)。 - Skill: 自動生成頁面只用於給使用者的回覆。子代理交回給父代理的報告返回文字和證據,不做頁面,除非任務明確要求頁面(#324)。
- Skill: 頁面裡有提問、並且宿主可以提問(Claude Code 的 AskUserQuestion)時,agent 先寫帶頁面連結的回覆,再提問,使用者可以先打開頁面再作答(#317)。
在原檔案裡修草稿
草稿有錯誤時,am render 現在按行號一次列出全部錯誤,不再遇到第一處就停(#314):
✗ L6 [flow] flow: unclosed shape bracket, missing )
✗ L9 Cannot parse the draft: table has no delimiter row: put |---|---| on the line under the header row
✗ L14 [flow] flow: unclosed shape bracket, missing )
✗ 3 errors in the draft; no page was written
draft: ~/.answer-me-with-html/drafts/My-page-20261021-104551.md
- 從 stdin 傳入的草稿(
am render -)渲染失敗或有警告時,會儲存到資料目錄的drafts/裡,並輸出路徑。報錯裡的每個L<行號>都對應這個檔案。 - agent 只改這個檔案裡報錯的行,再執行
am render <路徑>,不用把整份草稿重寫一遍。渲染成功且沒有警告後,儲存的草稿會被刪除。 am clean會像清理舊頁面一樣清理舊草稿。- frontmatter 錯誤和未閉合的程式碼塊仍然立即停下,因為後面的內容已經無法讀取。
其他改動
文字大小
頁面文字現在可以放大或縮小(#302):
am config set scale 1.2 # 0.8 到 1.5,步長 0.05;預設是 1
- 頁面上所有文字都會跟著這個設定放大或縮小。圖表整體縮放,所以圖裡的文字仍然放得進框裡。工具欄保持原來的大小。
- 頁面工具欄的 A− / A+ 可以直接在頁面上調整。瀏覽器會記住你的選擇,之後打開的頁面也用這個大小;用
am serve打開時,只在當前標記頁有效。 - 手機上的工具欄可以左右滑動,主題和模式選擇又能點到了。
- 主題市場裡的主題也會跟隨這個設定。執行
am theme update獲取新版本。
其他改動
- 問題:
ask程式碼塊裡的建議選項不再預設選中,沒作答的讀者不會看起來像是已經回答了。回覆裡寫的是(not answered; suggested: X)(#289)。 - 新主題:陶土書院(Anthropic Clay),一款色調柔和的閱讀主題,支援淺色和深色:
am theme add anthropic-clay(#297)。 - 資料目錄不能寫入時(宿主沙箱只允許寫工作區),頁面會存到系統臨時目錄裡的私有資料夾,並給出提示(#295)。
flow遇到 Mermaid 風格的節點 ID(如A[Start])會給出明確的錯誤,不再畫出多餘的節點(#296)。- 面板 ID 重複會報錯(#278)。第 26 個之後的面板編號為
P27、P28……,草稿裡也可以手寫,重複檢查同樣能發現(#304)。 - 以帶 BOM 的 UTF-8 儲存的草稿,
# 標題不再丟失(#290)。 kv cols=2.5會報錯,不再悄悄變成單列(#303)。- 時序圖的註解和環形圖中間的總數,按測量時的字號繪製(#306)。
完整列表: #278、#289、#290、#293、#295、#296、#297、#303、#304、#306、#307、#309、#310。
圖表
把數位寫進 chart 程式碼塊,頁面就會畫出圖表(#264、#251):
```chart bar unit=ms
| p50 | p95
* Redis | 12 | 40
Memcached | 9 | 31
Postgres | 28 | 95
```
- 支援
chart bar和chart bar horizontal(柱狀圖)、chart line(折線圖)、chart pie(環形餅圖,最多 6 塊)。 - 第一行寫系列名,圖上會出現圖例。行首寫
*會高亮這一行:其他柱子和扇區變灰,折線圖用一條虛線標出這一行。unit=給座標軸和數值加上單位。 - 每張圖下面有一個可以展開的資料表。圖表跟隨主題和深淺色,在從右往左書寫的頁面上鏡像顯示,在影片裡逐行出現。
- 主題可以用
--series-1到--series-6設定自己的系列顏色,見 docs/reference.zh-TW.md 的"圖表"一節。
其他改動
- 清除所有標註:標註按鈕旁邊多了一個按鈕,再點一次確認後,刪除頁面上的所有標註。面板評論和選項回答不受影響(#275)。
am serve --secret-file <path>在重啟之間沿用同一個密鑰,am serve重新啟動後頁面連結依然有效(#274)。-o指向一個資料夾時,現在給出一條明確的錯誤,不再輸出呼叫棧;檔名沒有.html時會提示(#271)。- agent 只能在工作區裡寫檔案時,skill 會把頁面渲染到工作區裡(#272)。
- 在 DeepSeek Harness 裡,skill 用路徑連結頁面,點選就能打開(#265)。
- 複製按鈕連點兩次後,不會再一直顯示"已複製 ✓"(#263)。
- 主題庫新增兩個主題:Mint Signal 和 Cool Cyberpunk(#252)。
完整列表: #252、#263、#265、#266、#270、#271、#272、#274、#275、#276、#277、#281、#282、#283、#284、#285。
讓 agent 幫你做主題
打開 answer-me-with-html.com/zh/themes,點"做一個自己的主題",把提示詞發給你的 agent:
幫我給 Answer me with HTML 做一個主題,風格是:<描述你想要的樣子>。按 https://answer-me-with-html.com/themes/make.md 的步驟做。
- agent 從主題庫裡最接近的主題改起,把新主題存進你的主題資料夾,用
am theme check檢查,再給你看淺色和深色樣張。新主題馬上就能用。 - 你滿意之後,agent 給你一個預填好的"Submit a theme" issue。issue 上有機器人檢查主題。每個主題進主題庫前都由維護者審核。
- 也可以在主題編輯器裡手動改,或者提交 PR,見 CONTRIBUTING.md。
/llms.txt把 agent 指向這份說明和檔案。
am serve 自動重新整理頁面
透過 am serve 連結打開的頁面,檔案變化時會自動重新整理:am patch、重新渲染到同一個檔案、或者編輯器儲存都算。如果你已經回答、評論或標記過內容,頁面不會重新整理,你的輸入會保留(#204)。
安全
- 每個頁面和影片都帶上內容安全策略(CSP),只允許執行自帶的、按哈希固定的指令碼,不從其他網站載入任何東西(#244)。
- 引用程式碼(
src=)和圖片會檢查符號連結背後的真實檔案。路徑經過敏感目錄、或者檔案裡有 URL 中的密碼,都會拒絕。圖片的實際型別必須和擴充名一致(#243)。
其他改動
- 沒有 Node.js 時,安裝說明會先給出適合你係統的確切命令,問你一次再執行;Node.js 版本太舊時會解釋報錯(#246、#247)。
- skill 的寫作部分改成從一條原則出發:每句話只給讀者一個需要知道的事實(#248)。
- 新版本檢查從每週一次改為每天一次(#253)。
am serve輸出連結時,有應用內瀏覽器的 agent 會直接在裡面打開頁面(#231)。
完整列表: #204、#231、#243、#244、#246、#247、#248、#250、#253、#254、#257、#258、#260。
主題庫
主題有了自己的地方:answer-me-with-html.com/zh/themes。每個主題都有單獨的頁面,可以實時預覽亮色和暗色。
am theme add comic --use
am theme add <名字>從主題庫下載主題,核對大小、sha256、配色和內容後儲存。加--use會同時設成預設主題。- 另有
am theme list、am theme update和am theme remove。update不會覆蓋你改過的主題檔案。 - 只接受主題庫裡的名字,不接受網址。主題不能從網上載入任何東西,所以頁面離線也能正常打開。
- 首批三個主題:comic(漫畫)、manga(日漫)、pop(波普)。標題用 Bangers 字體,字體內嵌在頁面裡。
- 舊版本在主題頁上可以看到一行手動安裝命令。
主題可以改圖表了
新增一組可選的圖表變數,主題可以改節點、連線、時序圖的參與者、註解框、高亮和陰影:底色、線色、線寬、圓角和硬陰影。每個變數的預設值都是現在的樣子,內建主題的外觀不變。詳見參考文件的"圖表變數"一節。
回覆
- 回覆面板直接顯示排好版的回覆,不再是 Markdown 原文。頁面底部多了一欄,統計你的作答,一鍵複製回覆(#225)。
close_after_reply:複製回覆後自動關閉頁面標記(#220)。- 複製失敗時會如實提示,不再顯示"已複製"(#227)。
修復
- DeepSeek Harness:為 dsh-plugin-hub 1.6.6 及更早版本提供
index.js入口(#226)。
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- DeepSeek Harness plugin (#199, #200). Install with
dsh plugin --profile <profile> add github:doggy8088/answer-me-with-html, using the profile you run in (webis the shipped one). The package declares adsh.bundlepatch that mounts its ownskills/directory as a skill provider, so nothing is copied into~/.dsh/skills.- DSH's plugin page shows the logo and an English and Chinese title and description.
- When the agent has DSH's
presenttool, it hands over the page path, so you open the page from a card in the sidebar. - Thanks @wjvalue for the DSH work in #193.
- The update command for DSH installs (#198). The update hint and the new-version popover give the exact
dsh plugin --profile <profile> up <package>command for an install inside a DSH profile. - A refined logo (#195).
Fixes
- Remark mode: a mark on a horizontal timeline item now has the same key at every window width. Before, a mark made in a wide panel was missing in a narrow one and left out of the Reply (#197).
- CI now runs every browser test file in the video job (#192).
Docs
- The READMEs and the website list DeepSeek Harness among the install options (#202). INSTALL.md has a DSH section.
- The website footer links the Discord server (#201).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y - DeepSeek Harness:
dsh plugin --profile <profile> up answer-me-with-html
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.5.1...v0.5.2
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Math in prose (#178).
$…$is inline math, and$$on its own line before and after the TeX makes a block. Temml typesets it into MathML when the page is made, so the page loads no script, no CDN and no fonts from the network. Bad TeX shows in red with anL<line> [math]warning. A Remark or a Reply quotes a formula as the TeX the draft wrote (#185), and the website playground typesets math too (#182). - Remark mode (#136). A Remark button joins the toolbar. Click a heading, paragraph, list item, quote, code block or table, tag it as a suggestion, keep, question or concern, and add a note. The Reply button carries the marks back to the agent in a
## Remarkssection, together with the answers and the panel comments. - Share pages with other devices (#168).
am serve --lanlistens on your LAN IPv4 address, and--public-urlprints links under a reverse proxy or tunnel origin. Both are opt-in, andam servestays loopback-only by default. - New-version notice on the page (#188, #190). When the weekly check finds a newer version, each page you make has a "New version" button in the toolbar. It opens the update command for your install, with a copy button, and up to three highlights of the new version in the page language. The page itself makes no network request, and
am serveremoves the button from pages it sends to other devices. You'll see it from the release after this one. - The colophon line moved to the top of the page (#186), above the title, where readers see it.
- Right-to-left videos (#173). Hebrew and other right-to-left video pages lay out right to left, while the player controls stay left to right. The title block and the scene headers read their labels from the language file (#174).
Fixes
- A page with STE, code or math warnings no longer opens by itself, and
am render --replace <page>replaces the earlier attempt once the new page is written, so one answer leaves one page (#166). - Test fixes for the planner timing guard and the print layout check (#170, #164), and for the math Reply check after the colophon moved (#189).
Docs
- The README links the Discord server and the QQ group (#181).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.5.0...v0.5.1
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
ercomponent for entity relationship diagrams (#140). Write entities with their fields (name [type] [PK|FK|UK]) and relationships such asUser 1--* Order: places.FK -> Entitydraws the relationship it implies, and each end shows its cardinality (one, zero or many).- Change markers in
er(#157).+,-and~now work on entities, fields and relationships, as they do inflowandtree. One diagram shows what a schema change adds, removes and changes, with the Before / Changes / After switch. - Right-to-left pages (#133). Hebrew, Arabic, Persian, Urdu and Yiddish drafts render right to left. Diagrams mirror (
flow,sequence,timeline,tree,limits), Hebrew gets its own labels, and code, paths and numbers stay left to right. am serve(#146). Open pages from a remote or headless machine over an SSH tunnel.am servelistens on127.0.0.1, andrender,patchandvideoprint a private link for each page.- Video player: chapters, speed and export without ffmpeg (#143). A chapter strip jumps between scenes, a speed button goes from 0.5x to 2x, and
--mp4writes a WebM made by the page itself when ffmpeg is not installed. - Star link in the page footer (#160). The footer now ends with
★ Star on GitHub. It is plain text with no badge image, so pages stay offline-safe. - Website at https://answer-me-with-html.com (#128). The old github.io address redirects there.
Fixes
- The data directory is private to you (#156).
~/.answer-me-with-html/is now created with mode0700, and existing installs are tightened. Before, other users on a shared host could read your pages from disk. - Video narration uses a voice for the language of each line, picked from the voices installed on the machine (#142). A line with no matching voice keeps its captions instead of being read by a voice for another language.
- The video duration estimate counts words in Cyrillic, Arabic, Greek, Hebrew and Thai (#138).
- Flow group names move clear of edges, edge labels and nodes (#148).
- Table words stay whole in narrow sheet panels and in print (#149).
- A horizontal timeline turns vertical on a phone (#135) and in any panel narrower than 560 px (#153).
Docs
- A PR now needs an issue that a maintainer accepted first (#144).
- The website benchmark matches the README numbers (#139).
- The Chinese README has The New 100 badge (#154).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.15...v0.5.0
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Change markers in
flowandtree(#125). Start a line with+,-or~to show what a plan adds, removes or changes. The page draws one diagram in a Changes view, with a Before / Changes / After switch and a count row. Pages without markers are byte-identical. - Project website (#126): https://qingyuna.github.io/answer-me-with-html/ (Chinese at
/zh/). Its playground runs the real renderer in your browser. - A lighter
SKILL.md(#127). The settings and video instructions moved toreferences/, and the agent reads them only when you change settings or ask for a video.SKILL.mddrops from 19.5 KB to 16.2 KB, so each first page in a session costs less to load. Page answers are unchanged.
Fixes
- The diagram expand button sits on its own row and no longer covers the drawing (#124).
- The MP4 export test gives Chrome more time to start, so CI stops failing on slow runners (#132).
Docs
- The README token claim now comes from a fixed corpus: hand-written HTML averages 4,893 tokens and the Markdown draft 612, about 1/8. The README also explains why the bill drops less than the tokens (#127).
- A comparison with Archify and dsh-genui: docs/compare.md (#127).
- Jump links at the top of the README; details moved to the reference (#130, #131).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.14...v0.4.15
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Diff code blocks (#120). A
```difffence now draws a unified diff: red and green lines, old and new line numbers from the@@headers, and a+N −Nstat in the header.file=,title=or the+++ b/pathline names the file, andhl=uses new-side numbers. A hunk whose counts don't match its@@header gets a[diff-counts]warning. - Diagram text wraps by script (#112). Korean breaks at its spaces instead of inside a word. Thai, Lao, Khmer and Myanmar, which write no space between words, wrap by dictionary word, so a long label no longer pushes a node wider than its budget. Chinese, Japanese and English diagrams are unchanged. Thanks @SU-AN-coder.
Fixes
- The writing check counts words in Lao, Khmer and Myanmar sentences with the same word segmenter as Thai. Lao sentences used to miss the length warning, and Khmer and Myanmar sentences got false ones (#117). Thanks @SU-AN-coder.
am lintnow follows the draft language, asam renderandam videodo. A Thai draft gets the same warnings from both, and a French draft no longer gets the English rules (#119). Thanks @SU-AN-coder.
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.13...v0.4.14
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Answer on the page (#100). An
askblock puts a decision in the panel it changes, with the agent's suggestion selected. Every panel gets a comment button and every page a Reply button, which copies one message with the reader's answers and comments to paste back to the agent. Answers survive a reload. - Code blocks that quote real files (#99).
```ts src=server/routes.ts lines=18-30 hl=22reads the lines from the file, so the model types no code. Blocks get line numbers, highlighted lines and a Copy button. Key files (.env,*.pem,.ssh/…) and files that hold a token are never quoted, and the render lists every file it embedded. - Local images as captioned figures (#95). An image alone on its line,
, becomes a figure with the alt text as caption, embedded in the page so it still opens offline. A missing, non-image or oversize (> 5 MB) file stops the render at its line. Paths with spaces work (#106). - Diagram viewer (#57, #109). Each flow and sequence diagram has an expand button that opens it in a lightbox with zoom and pan. Its labels follow the page language. Thanks @Cham1229.
- Placeholders stay visible (#110).
ssh user@<host>orkill <pid>used to lose the words, and a<script>or<style>in prose swallowed the rest of the page. Raw HTML in a draft is now filtered: unknown and page-breaking tags show as text, deliberate markup (<kbd>,<br>,<details>…) stays, and kept tags lose event handlers andjavascript:links. The render lists every tag it changed. Thanks @SU-AN-coder, who found it in #108.
Fixes
- A page served inside another document (claude.ai Artifacts) gets its theme, mode and language back (#104). Thanks @enzo-wego.
- A status word in a table cell may be followed by inline code, bold or a link and still becomes a badge (#101).
- Image-like text is checked only where Markdown is read, so
in a tree label, a rawhtmlblock or diagram text no longer fails the render (#107).
Notes
- Every page now has a Reply button in the toolbar and a comment icon in each panel title bar, and its footer links to this repository (#94). Pages made with earlier versions keep their old look until you render them again.
- A draft that relied on a non-text-level tag inside a sentence, an unknown tag or an event handler now gets text and an
[html]warning instead. - The README has a section on making the skill less proactive (#93) and a plain-text vs page comparison image (#94).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.12...v0.4.13
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Traditional Chinese (#89). A draft with
lang: zh-TW,zh-Hant,zh-HKorzh-MOgets Traditional page buttons, theme names and video player labels, and Traditional fonts in front of the Simplified ones, so systems whose default Chinese font is Simplified still draw Traditional glyphs. A draft that does not say is recognized by characters written in only one form; text made of shared characters stays Simplified. - One place decides the language (#88).
lang: zh-twused to give<html lang="en">with Chinese labels, andlang: frgave Chinese labels too. A tag is now written as declared (zh-twandzh_TWbecomezh-TW), a barezhstill giveszh-CN, and a language without its own labels gets English labels with its ownlang. A language is now one file insrc/languages/. - More languages detected (#90). Korean, Russian, Arabic, Hebrew, Thai and Greek drafts get their own
langinstead ofzh-CN. Latin-script text is still English, so declarelang: fr(ores,ptand so on) for those. am patchkeeps the language of the page (#90), so patching a panel with plain text no longer flips a Traditional Chinese page to Simplified.- The writing check follows the language (#90). A language other than Chinese, English and Japanese gets only the length rules: sentences in words (characters for CJK text), paragraphs in sentences. The English passive-voice rule and the word lists no longer run on it.
- Narration follows the language (#90). A declared language applies to every line; otherwise each line is read in the language of its own text. Traditional Chinese lines use the Chinese voice.
- The README now recommends always-on mode (#83).
Notes
- The CSS inside every page changed: font rules use
:lang()ranges, and there are Traditional Chinese rules. Pages made with earlier versions keep their old CSS until you render them again.ja-JPpages now get the Japanese fonts too (the old rule matched onlyja). - The system-voice cache (macOS
say,espeak-ng) is rebuilt once, because the language is now part of its key. ElevenLabs and a local server keep their cache keys, so nothing already paid for is synthesized again. - Arabic script also writes Persian and Urdu, and Cyrillic also Ukrainian: without
lang:those drafts are taggedarandru. - Traditional Chinese glyphs are checked in Chrome and WebKit on macOS (
zh-TWandzh-Hantdraw the same glyphs, and a named Simplified font does not override the language). Firefox and Windows are not checked yet. - Not in this release, tracked separately: wrapping Korean and Thai text in diagrams (#85), picking narration voices by locale (#86), right-to-left layout (#87).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.11...v0.4.12
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- One plugin instead of two (#81). The separate
answer-me-with-html-alwaysplugin is removed. Always-on mode is now one rule that you paste into~/.claude/CLAUDE.mdorAGENTS.md; delete the rule to turn it off. The skill still recognizes the[answer-me-with-html always-on]marker, so the behavior is the same. The README has the rule, and the Install section now points to it. - Fewer flaky Chrome tests (#80). The Chrome tests fail less often, and say why when they do.
Notes
- If you installed
answer-me-with-html-always: your copy keeps adding the reminder until you remove it. Run/plugin uninstall answer-me-with-html-always@answer-me-with-html, then paste the rule from the README ("Always-on mode") if you still want it. - The
alwayssetting is gone fromam config. An oldconfig.jsonthat still has it is ignored, so nothing breaks. - Pages and videos are unchanged: a snapshot of 432 render, video and patch combinations shows no difference from 0.4.10.
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.10...v0.4.11
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- The skill triggers more often (#77). The description now asks the agent to use it whenever a page would help more than plain text, even if text would also work. It names the shapes that did not trigger before: state machines, diagnoses, review findings, trade-offs and decisions, and any answer with a table or a ranked list. In a local test of 19 prompts the skill loaded in about 73% of runs, up from 54%; small talk and "plain text only" still do not trigger. It will now also trigger on some short answers.
- Themes. A theme file in
<AM_HOME>/themes/<name>.jsonis picked like a built-in theme, andam theme checkreports missing variables, invalid colors and low contrast (#68). A newpapertheme has serif prose for reading (#71). The new defaulttheme: autopickspaperfor the doc template or a draft with no component block, andblueprintotherwise. A theme set in config still wins. The toolbar uses drop-down lists for theme and mode. Built-in themes are now defined in one place each (#67). - Chinese writing check (#20, thanks @mzopedia): a short word list for typos (登陸 → 登入), vague quantities (儘快, 若干), 以上 / 以下 / 以內 after a number, and one-meaning-one-word choices (單擊 → 點選). Warnings only; Japanese is skipped.
- Easier to install.
INSTALL.mdis a guide written for AI agents: it installs the plugin in Claude Code and the skill in other agents, keeps an existing install, asks nothing, and ends with one report. The one-prompt install in the README now points to it, and the install smoke test runs its commands (#72). - Links that open. The reply ends with a
file://Markdown link, so GUI hosts such as Codex and Antigravity show a clickable link (#76). The page is rendered before the reply, so the turn ends with text (#75).
Notes
- Pages made with earlier versions keep their look until you render them again.
- The default theme can change: a doc-template page, or a draft with no component block (
flow,sequence,calloutand so on) or raw html / svg, now getspaper. A Markdown table alone is not a component block. Setam config set theme blueprintto keep the old look. - The slash command for settings depends on how you installed:
/answer-me-with-html:configfor the plugin,/answer-me-with-html configfor the skill (#70).
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.9...v0.4.10
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- Photo-wall layout for sheet pages (#56, spec #50). Panels now arrange themselves in the browser like a justified photo wall: every row fills the page width and its panels end at the same line. A wide table or diagram gets the width it needs instead of scrolling sideways, and a short panel can stack beside a tall diagram. Panel order never changes.
spanandrowsare now hints. Narrow screens keep one column, printing falls back to the plain grid, and with JavaScript off the page keeps its current layout. Layout takes about 10–60 ms. - Callout syntax check (#55): a callout body that starts with
type: info(orwarning,error,note) now fails with the correct syntax instead of printing "type: info" as text. - Accessible names in the page language (#58, fixes #47): diagrams and the table of contents are named in the draft's language instead of always Chinese.
- ElevenLabs (#48): updated defaults,
ELEVENLABS_MODEL_ID, and a setup guide.
Notes
- Pages made with earlier versions keep their old layout until you render them again.
am patchre-renders a page with the new script. - New pages carry about 6 KB more script, and panels with an explicit
spanget adata-spanattribute.
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.8...v0.4.9
這個版本的說明沒有中文版,這裡顯示英文原文。
Highlights
- English throughout the repository (#46, spec #39). CLI output, errors, help, notices, writing-check messages, the skill instructions, slash commands, comments and test names are now English. Pages and the video player still switch between Chinese, English and Japanese by the draft's language, and the agent still replies in your language. A language-check test keeps it that way.
--voice local(#37, thanks @chnln): narrate videos with a self-hosted OpenAI-compatible/v1/audio/speechserver such as Qwen3-TTS via mlx-audio. Runaway or truncated clips are regenerated automatically.AM_TTS_API_KEYis supported, andam patchkeeps a video's voice.- Wider tables and diagrams on sheet pages (#38): tables with 4+ columns and wide diagrams get more width automatically and scroll on phones.
Also
- Issue forms and a pull request template (#34).
- CONTRIBUTING.md,
npm run snapshotandnpm run releasefor maintainers (#33). - More tests for
am clean(#30).
Note
CLI text the agent reads is now English (for example STE 2 warnings, ! Cleanup hint). Update the skill and the CLI together, as the update commands below do.
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/v0.4.7...v0.4.8
這個版本的說明沒有中文版,這裡顯示英文原文。
Fixes
- Table headers in right- and center-aligned columns now follow the column alignment (#31, fixes #28).
am cleanskips symlinked roots, so it never deletes files outside the data directory (#27).- SVG diagrams stay readable when the theme context is lost (#21).
am patchkeeps the page's STE style instead of falling back to the config (#16, #22).- The SKILL.md description fits the 1024-character limit (#26).
Internal
- New page envelope module (
src/page.js), one output path for render / video / patch, one place for override checks and the voice list (#24). Generated HTML is unchanged. - Patch round-trip invariant tests (#24).
The am video summary line now also prints the theme.
Update
- Plugin:
claude plugin update answer-me-with-html@answer-me-with-html - Skill:
npx skills update answer-me-with-html -y
Full changelog: https://github.com/doggy8088/answer-me-with-html/compare/300b530...v0.4.7