一键导入
axum-single-page-ui
Build and serve a single-page web UI from an Axum service, including plain-JS mode and optional TypeScript build/fallback patterns.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build and serve a single-page web UI from an Axum service, including plain-JS mode and optional TypeScript build/fallback patterns.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user mentions Feishu. Handles Feishu Docs/Drive/Wiki operations in Chrome via Playwright only, preferring headless execution with saved auth state. Supports browsing, reading, summarizing, editing, publishing local files as separate Feishu docs, deterministic template-center creation, and true wiki child-page creation via move-into-wiki flow. If login is stale, switch to QR login in a visible browser.
Git operations for local repos and GitHub workflows. Use when Codex needs to inspect repo state, craft commits, manage branches, rebase/merge safely, or decide on Git/GitHub commands (including gh usage) while following safety constraints and commit conventions.
Use Peekaboo on macOS for GUI-level automation (screenshots, UI inspection, clicks/typing, window/app control). Trigger this skill when tasks require real GUI interaction, screenshot automation, or browser-level automation on macOS.
Create, edit, validate, and render Mermaid diagrams (.mmd or Mermaid blocks in Markdown/HTML). Use when asked to convert visuals or specs into Mermaid, fix Mermaid syntax errors, add labels/line breaks, or render SVG/PNG via mmdc or a Mermaid CDN.
Use when Codex is asked to automate local GUI workflows with SakuraProj using skpr-local/skpr-cli scripts, including probe-driven readiness and repeatable local task orchestration.
Use when handling JavaScript package management and scripts, with pnpm as the default package manager.
| name | axum-single-page-ui |
| description | Build and serve a single-page web UI from an Axum service, including plain-JS mode and optional TypeScript build/fallback patterns. |
| metadata | {"short-description":"Axum single-page UI workflow"} |
Use this skill when the user wants a single-page UI served by axum from the same Rust service as API routes.
//api/* + browser UI)axum routes:
GET /healthGET /api/... for JSON APIsGET / for SPA shelltower-http (ServeDir/ServeFile) or embed via include_str!/include_bytes!.index.html) with client-side rendering.Use when speed and operability matter more than tooling.
<script type="module">Pros:
Cons:
Use when frontend complexity grows.
tsx/tsindex.html, app.js, app.css)Pros:
Cons:
Use only when explicitly requested.
Rules:
UI_TRANSPILE_FALLBACK=1)Router::new().nest("/api", api_router)/ and frontend routes/api/*/health independent and always fastWhen table/count mismatch appears (e.g., count shows rows but table is empty):
Array.isArray(payload)).currency || symbol, etc.).Symptom:
Top Pairs: 200), but <tbody> appears empty.Likely root cause in Solid template mode:
<tbody><Show>...<For>...</For></Show></tbody>)
can produce invalid table child nodes in some runtime/parser paths.Reliable fix:
<tbody> children as actual <tr> nodes only.<Show>/<For> wrappers with a single function expression in <tbody>.<tr> for empty state, orrows.map(...) of <tr> templates for data rows.Reference rendering pattern:
<tbody>
${() => {
const rows = pairs();
if (rows.length === 0) {
return html`<tr><td colspan="6">No pair matched the current filters.</td></tr>`;
}
return rows.map((row) => html`<tr>...</tr>`);
}}
</tbody>
Verification checklist:
/api/v1/pairs/select?...).const rows = pairs(); table-body renderer.When a package has deployment.yaml, deploy with:
infra deploy --package <app>After deploy:
/health/api/... endpoint and / page renderingFor implementation tasks, return: