sequenceDiagram participant U as 用户浏览器 participant G as Gin Router participant H as HomeHandler participant CM as CardModel participant SM as SettingModel participant T as html/template U->>G: GET / G->>H: HomeHandler(c) H->>CM: GetEnabledCards() CM->>CM: SELECT * FROM cards WHERE enabled=1 ORDER BY sort CM-->>H: []Card H->>SM: GetSetting("search_engine") SM->>SM: SELECT value FROM settings WHERE key='search_engine' SM-->>H: search URL template H->>T: ExecuteTemplate("home.html", data) T-->>U: HTML (搜索框 + 卡片网格)