dsh-xiumi:用 Playwright/CDP 把秀米圖文排版自動化

前言

在 DSH 裏處理圖文排版,常見痛點是秀米編輯器只能靠界面點擊,批量操作(多選、插入橫滑圖集、逐頁換圖、改頁數)沒有一鍵入口。系統級鼠標註入在 Chromium 系瀏覽器上經常完全無效,而秀米畫布是 AngularJS 組件樹加虛擬列表,常規”點點點”腳本很容易誤判 img 數量。下面介紹的 dsh-xiumi 就是爲此設計的:它以 skill 形式裝進 DSH,複用你已登錄的瀏覽器,把上述排版鏈路固化成一組 CLI 命令。

這是什麼

dsh-xiumi 是一個面向 DeepSeek Harness 的插件(分類:工作流),由 oobitoooo 維護,GitHub 當前約 1 stars。它用 Playwright + CDP 操作你已登錄瀏覽器裏的秀米(XIUMI)圖文編輯器,把批量多選、插入橫滑圖集、逐頁換圖、改頁數、刪組件、保存以及分享頁審覈狀態覈對變成腳本。

需要先說明邊界:這個插件只包含秀米排版能力,不含任何 API 路由或模型代理;腳本只連本機 CDP 端口,不向外發數據。

核心功能

下面這些能力都來自 README,按用途分組。

1、滑動圖集轉換:選中一組照片,插入「滑動圖片」組件,改成 N 頁,逐頁換回原圖,再刪掉舊的豎排照片。

2、頁數任意改:繞過點不到的「設置滑動序列」面板,直接改 Angular 模型 cellGroupItems,保存後可持久化。

3、批量換圖:按圖片 URL 裏的 -sz_<字節數> 指紋精確匹配圖庫縮略圖。

4、畫布快照/校驗:給出組件數、每個滑動組件的頁數和圖片指紋,用來判斷操作是否真的生效。

5、保存 + 審覈:保存草稿,引導點「申請審覈」,再用分享頁覈對是否已更新。

6、原生組件粘貼(v0.3.0):把一篇稿子編譯成秀米 paper.comp 原生組件,經 Chromium 原生剪貼板一次粘成整篇,粘完仍可編輯;思路移植自 gih10012/xiumi-native-clipboard(MIT)。

7、排版質檢(v0.2.0):打開渲染後的分享頁/編輯頁讀 computedStyle,檢查正文字號行距、小標題、圖注字號與顏色一致性、圖片比例,輸出 Markdown + JSON 報告(借鑑 xiumi-editor-checker 的規則,但不解析私有 JSON)。

8、登錄態輕量遷移(v0.2.0):導出 cookie + localStorage 成 session.json,注入任意調試瀏覽器,免複製整個 profile(sid 約 3 天有效)。

9、多 harness 安裝(v0.2.0):一鍵裝進 Claude Code / Cursor / Codex / Gemini 等本機已裝的 AI 助手。

安裝與啓用

作爲 DSH 插件安裝(推薦),官方命令如下,安裝命令來自 README 原文:

dsh plugin add https://github.com/oobitoooo/dsh-xiumi
# 本地目錄也可以:
dsh plugin add /path/to/dsh-xiumi

裝完重啓(或新開會話),在 skill 列表裏就能看到 xiumi-editor-automation。如果不想當插件用,可以把 skill/ 目錄複製到 ~/.dsh/skills/xiumi-editor-automation/(或項目內 .dsh/skills/),也可以用多 harness 安裝器:

node skill/scripts/install-harnesses.mjs --list   # 探測本機有哪些
node skill/scripts/install-harnesses.mjs          # 裝到全部探測到的目錄

依賴只有兩項:Node.js ≥ 18,以及 playwright-core(不會下載瀏覽器,複用你已裝的 Edge/Chrome)。

cd skill/scripts && npm i playwright-core

典型用法

下面是 README 給出的完整鏈路,先起一個帶調試口(9222)的瀏覽器並複製登錄態,再按順序操作。

cd skill/scripts

# 1) 起帶調試口(9222)的 Edge/Chrome,並把日常 profile 的登錄態複製過去
node launch-browser.mjs

# 2) 在彈出來的瀏覽器裏打開草稿編輯頁
#    https://xiumi.us/studio/v5#/paper/for/<草稿id>/cube/0

# 3) 看當前畫布狀態
node xiumi-gallery.mjs status

# 4) 上傳照片到「我的圖庫」,拿到每張圖的 -sz_ 指紋
node xiumi-gallery.mjs upload --files ./photos/a.jpg,./photos/b.jpg

# 5) 轉換一組(先 dry-run 打印 PLAN,確認後加 --yes 執行)
node xiumi-gallery.mjs convert --art <原圖指紋列表> --gal <圖庫指紋列表>

# 6) 保存(保存後到「預覽 → 分享」點「申請審覈」,分享頁纔會更新)
node xiumi-gallery.mjs save

# 7) 覈對分享頁
node xiumi-gallery.mjs verify --share https://v.xiumius.cn/board/v5/<x>/<id>

# 8) 排版質檢(字號/行距/圖注一致性/圖片比例 → Markdown 報告)
node xiumi-audit.mjs --share https://v.xiumius.cn/board/v5/<x>/<id> --md report.md

# 9) 整篇原生組件一次粘貼(編譯 spec → 複製 → 粘貼 → 自動覈對)
node xiumi-clip.mjs build --spec spec.json --out doc.xiumi.json
node xiumi-clip.mjs push --spec spec.json --draft <草稿id>

# 10) 登錄態輕量遷移(免複製整個 profile)
node xiumi-session.mjs export
node xiumi-session.mjs apply --open "https://xiumi.us/studio/v5#/paper/for/<草稿id>/cube/0"

其中 convert 的 --art 是畫布上豎排照片的 -sz_ 指紋(從上到下),--gal 是圖庫裏對應照片的 -sz_ 指紋(等於本地文件字節數,順序一致),兩者數量必須相等,也就是頁數。第 5 步默認 dry-run,打印 PLAN 後確認無誤再加 --yes 執行。

冒煙測試可以這樣跑:

node test/smoke.mjs

適用場景與注意

適合已經在用 DSH、且日常要做秀米批量排版的人:把重複的”選圖—插圖集—換圖—改頁數—保存—覈對”交給腳本,減少手工點擊和誤判。

使用前注意幾點:

  • 插件以當前 DSH 進程權限運行,安裝前建議先檢查源碼與許可證(本項目爲 MIT)。
  • 秀米是閉源 SaaS,頁面結構隨時可能改版;選擇器集中在 xiumi-lib.mjs 與 references/dom-playbook.md,改版後按手冊更新。
  • 只支持 Chromium 系瀏覽器(Edge/Chrome)的 CDP 調試口。
  • 瀏覽器 ≥136 不允許默認 profile 開調試口,必須用複製出來的 profile(腳本已處理);複製時若源瀏覽器在運行,Cookies 可能被鎖定,需退出源瀏覽器或直接在調試窗口登錄一次。
  • 秀米「我的圖庫」有容量上限(常見 100 張)。
  • 本項目不繞過任何平臺限制,僅自動化你本來就能在界面上完成的操作,使用需遵守秀米服務條款。

結尾

dsh-xiumi 的價值在於把秀米里那條沒有一鍵入口的排版鏈路固化成 CLI,並附帶原生組件粘貼與排版質檢兩個增量能力。它不含模型代理,也不外發數據。目錄頁在 https://www.skillhub.cn/plugins/oobitoooo/dsh-xiumi ,源碼在 https://github.com/oobitoooo/dsh-xiumi 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜