這是一個重大更新版本,帶來了完整的程式碼評測系統、優化的 stdin 輸入處理,以及全面的繁體中文文檔。
🏷️ 重大變更 (Breaking Changes)
- 套件名稱變更:從 slidev-addon-python-runner 更改為 @cxphoenix/slidev-addon-python-runner
- Repository 遷移:專案已遷移至 https://github.com/CXPhoenix/slidev-addon-python-runner
✨ 主要新功能
🎯 Judge Mode 評測系統
- 自動評測功能:支援多組測試案例的自動化評測
- 並行處理:同時執行多個測試案例,提升評測效率
- 結果比對:自動比對程式輸出與預期結果,顯示 AC/NA 狀態
- 靈活配置:可自訂測試檔案目錄和檔案名稱
python:
judge:
dir: "judge"
inputs: ["1.in", "2.in"]
outputs: ["1.out", "2.out"]
⌨️ 多元 stdin 輸入處理
支援兩種輸入模式,讓教學和實作更加便利:
- Frontmatter 預定義模式
python:
stdin:
- "Alice"
- "25"
- 程式碼註解模式
# stdin: "Bob"
# input: 30
name = input("請輸入姓名: ")
age = input("請輸入年齡: ")
📖 文檔與使用者體驗改進
- 🇹🇼 完整繁體中文文檔:使用台灣慣用繁體中文用語重寫所有文檔
- 📋 新增 CHANGELOG.md:完整記錄所有版本變更歷史
- 🛠️ 技術架構說明:詳細介紹核心元件和效能最佳化
- 💡 智慧錯誤處理:針對 stdin 相關錯誤提供詳細解決方案
- 🎨 更新示範檔案:展示各種功能的完整使用範例
🔧 技術改進
- StdinManager 類別:專門管理多種輸入模式的核心類別
- 並行處理最佳化:Judge Mode 支援同時執行多組測試案例
- 錯誤處理增強:提供更友善的錯誤提示和除錯資訊
- 效能最佳化:改進 Pyodide 快取機制和載入策略
📦 安裝與升級
新安裝
npm install @cxphoenix/slidev-addon-python-runner
從舊版本升級
如果您之前使用的是 slidev-addon-python-runner,請:
-
移除舊套件:
npm uninstall slidev-addon-python-runner -
安裝新套件:
npm install @cxphoenix/slidev-addon-python-runner -
更新 slides.md 中的 addons 設定:
addons:
- slidev-addon-python-runner # 舊的
- @cxphoenix/slidev-addon-python-runner # 新的
🎓 使用範例
Judge Mode 評測範例
# 在 public/judge/ 目錄下放置測試檔案
# 1.in: "James"
# 1.out: "hello James"
name = input()
print(f"hello {name}")
多種輸入模式展示
查看更新的 ./slides.md 檔案,了解完整的功能展示。
🤝 致謝
感謝原開發者 https://github.com/KermanX 的基礎工作,以及所有為這個專案做出貢獻的開發者。
📚 相關連結
- ./README.md
- ./CHANGELOG.md
- https://www.npmjs.com/package/@cxphoenix/slidev-addon-python-runner
Full Changelog: v0.2.0...0.5.0