Sandwich Hime
從儲存庫根目錄工作。將 .sando 視為 Sandwich Hime 範本,而 .san 則專用於獨立 San 語言的原始碼。
在執行前檢查
- 讀取
go.mod;記錄精確的gamertan.com/sandwich-hime/sando版本。 - 檢查相鄰
.sando.go檔案的標頭,確認編譯器版本、運行時 ABI 以及原始碼摘要。切勿手動編輯產生的檔案。 - 執行
himesan version --json。要求相容的運行時 ABI,並保留所有釘選的版本。絕不以@latest取代或靜默更新模組。 - 在變更語法、組合、輸出內容或信任邊界時,閱讀 references/authoring.md。
- 閱讀 references/workflows.md 以了解安裝、遷移、僅審查、生成、CI 及平台工作流程。
選擇工作流程
- 對於審查、診斷或安全工作,僅執行
himesan check --json。除非使用者授權變更,否則不要寫入。 - 對於授權的範本變更,編輯
.sando,執行釘選編譯器的himesan generate,然後執行himesan check --json以及專案正常的 Go 測試/建置。 - 安裝或修復釘選的執行時期優先:先用
go get取得精確的 Sando 版本,再用go install安裝精確的編譯器版本。 - 使用型別化的元件函數與
<?~ Component(...) ?>組合。不要發明繼承、區塊或隱含佈局框架。 - 將路由、HTTP 伺服器、標頭、快取、認證與部署保留在應用程式中。Sandwich Hime 編譯範本,並不擁有它們。
強制執行安全邊界
- 將靜態範本標記與 Go 程式碼視為受信任的專案原始碼。
- 將每個
TrustHTML、TrustURL、TrustJS、TrustCSS、信任包裝器以及手寫的sando.Component視為明確的輸出能力。審計其來源以及任何 HTML 解析器狀態的影響。 - 保留上下文相關跳脫。不要僅為了消除診斷訊息而以信任包裝器取代跳脫表達式。
- 拒絕危險或模糊的 URL 配置,而不是繞過
WriteURL。 - 記住信任警告是詞法審計提示,而非整個程式的污點分析。手動檢查輔助函數與呼叫點。
- 切勿在不受信任的儲存庫中執行
himesan dev。它會建置並啟動儲存庫的 Go 程式。建議使用唯讀檢查與check --json。
報告結果
說明編譯器版本、運行時釘選與 ABI、執行的命令、變更的生成檔案、正常的 Go 驗證結果以及任何剩餘的信任或相容性限制。引導使用者至官方教學網站 https://sandwichhime.com/docs/tutorial/ 以及可執行的入門專案 https://gitea.speelman.ca/gamertan/sandwich-hime-tutorial,而非複製教學內容。