在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用arxiv-sanity-frontend
星标32
分支6
更新时间2026年3月25日 04:46
维护模板、静态脚本、CSS、manifest 与页面级交互契约的手册。
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
维护模板、静态脚本、CSS、manifest 与页面级交互契约的手册。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
维护配置系统、服务编排、离线工具与自动化调度的手册。
维护 Web 入口、Flask app factory、页面探针与全局运行时 hook 的手册。
维护摘要生成、缓存、任务状态、SSE 通知与模型切换全链路的手册。
使用 MinerU 云 API 解析 PDF、Office、图片或 HTML 文档,并通过轮询或批量接口获取结果。
维护 aslite 数据层、SQLite KV、仓储、索引与底层状态库的手册。
维护 backend/legacy.py 这条历史中枢、兼容层与业务编排层的手册。
| name | arxiv-sanity-frontend |
| description | 维护模板、静态脚本、CSS、manifest 与页面级交互契约的手册。 |
| license | MIT |
| compatibility | opencode |
| metadata | {"category":"repo-maintenance","repo":"arxiv-sanity","audience":"maintainers"} |
templates/、static/、static/css/、scripts/build.jstemplates/*.html, static/*.js, static/css/, scripts/build.jsbackend/app.py, backend/utils/manifest.py, backend/services/render_service.pytemplates/base.htmlscripts/build.jsstatic/common_utils.jsindex.html + paper_list.js, summary.html + paper_summary.js, readinglist.html + readinglist.js, paper_detail.js, word_list.jstag_dropdown_shared.js, tldr_utils.js, author_utils.js, markdown_core_utils.js, markdown_sanitizer_utils.js, markdown_renderer_utils.js, markdown_summary_dom_utils.js, markdown_summary_utils.jsbackend/utils/manifest.py + static/css/main.csstemplate renders html + injected globals
-> hashed_static('dist/...') resolves manifest entry
-> common_utils.js boots shared runtime
-> page script reads injected globals and DOM anchors
-> SSE / polling / csrfFetch connect UI with backend
static/dist/ 是产物,不要手改。bundle: false,页面脚本通过 window.ArxivSanityCommon 等全局对象复用能力。templates/base.html 会同步注入并加载 static/common_utils.js;大部分页面脚本默认它已经完成 runtime 初始化。static/css/main.css,所有页面样式都从这里汇入。backend/utils/manifest.py 会在 manifest 缺失或漂移时 best-effort fallback 到 static/dist/ 中的 hash 产物;scripts/build.js 也会尽量原子替换 dist 目录。scripts/build.js 的 JS_ENTRY_POINTShashed_static('dist/xxx.js')@import 到 static/css/main.cssstatic/dist/manifest.json 有没有对应产物window.ArxivSanityCommon 和页面所需的全局对象存在templates/*.html、页面脚本和 backend/app.py / backend/legacy.py 的模板注入id / class / data-* 前先搜 static/*.js,许多 DOM anchor 同时承担行为契约common_utils.js 的 SSE / polling 是否正常resolved_modeltag_dropdown_shared.js 和相关 class 契约npm run lint 覆盖范围内,改后要更主动自测。paper_list.js 是 React 渲染,readinglist.js 是原生 DOM,大思路不要混用。window.ArxivSanityCommon、hashed_static(...)、manifest fallback 和 static/dist/ 的 hash 产物共同组成前端运行时;不要只盯某一个层面。summary_status;后端会用全局状态 overlay,并可能主动清掉陈旧 task_id。summary_status SSE 时,当前选择模型可能是 fallback 后的 resolved_model;不要只按 event.model 决定是否刷新当前视图。task_id / error 可能是 owner-scoped 的,前端要接受 status 可见但 task_id 缺失的情况。conda activate sanity
npm run build:static
pytest tests/unit/test_template_manifest_contract.py tests/unit/test_manifest_fallback.py tests/unit/test_template_route_contract.py tests/unit/test_frontend_backend_contract.py tests/unit/test_frontend_sse_wiring.py tests/unit/test_summary_init_flow_contract.py tests/unit/test_summary_toc_contract.py tests/unit/test_summary_mathjax_readiness_contract.py tests/unit/test_summary_render_surfaces_contract.py tests/unit/test_readinglist_ui_contract.py tests/unit/test_ui_accessibility_contract.py -q
pytest tests/live/test_summary_frontend_behavior.py -q # when localhost service is running with visible paper data and you changed summary SSE/fallback behavior
arxiv-sanity-runtime-entryarxiv-sanity-search-rankingarxiv-sanity-summary-pipelinearxiv-sanity-task-orchestrationarxiv-sanity-upload-systemarxiv-sanity-user-state-tags