用途:重新编译 Overleaf 项目并提取构建诊断信息,输出标准化格式,用于排查 LaTeX 编译错误与警告。
主要能力:采用 API 优先机制,在标签页内调用 Overleaf 内部 POST /project/:id/compile(携带会话 cookie 与 ol-csrfToken),再获取 output.log / output.blg;仅在 --no-recompile 时回退抓取页面日志面板。默认输出 JSON,含编译摘要(status、pages、errors、warnings、typesetting、bib、buildId)与规范化条目(level、file、line、message、source、count)。level 取值 error、warning、typesetting、info、bib-error、bib-warning;相同条目会合并计数(--no-dedup 保留全部);除非加 --info,否则丢弃 Package…/Font…Info 噪声。--format compiler 输出 file:line: level: message [xN] 及摘要。
使用方式:需先安装 chrome-cdp 技能(包装脚本自动发现 cdp.mjs,或设置 $CDP_BIN);Chrome/Brave 以 --remote-debugging-port=9222 运行;浏览器中打开并登录 Overleaf 项目标签页;PATH 中有 python3。示例:${CLAUDE_PLUGIN_ROOT}/skills/overleaf-compile/overleaf-compile --list 查找标签页;overleaf-compile 60D065AD 重新编译并输出 JSON;overleaf-compile --url https://www.overleaf.com/project/<id> 按 URL 指定;overleaf-compile 60D065AD --errors-only --format compiler 快速查看错误;overleaf-compile 60D065AD --clear-cache --out-dir ./build-logs 清缓存并保留原始产物。完整参数见 --help(--format、--errors-only、--info、--no-dedup、--raw-tail N、--clear-cache、--draft、--stop-on-first-error、--no-recompile、--out-dir、--timeout)。自托管 Overleaf 设置 OVERLEAF_HOSTS="overleaf.example.com"。
适用场景:需要自动化重编译并结构化解析日志的 LaTeX 写作与调试流程。
限制:status 不代表成功与否,只要生成 PDF 即返回 success,应看解析出的 errors 计数;退出码 0 无错误、1 有错误、2 用法错误、75 编译超时或传输问题。绑定当前 Overleaf SaaS 编译 API 与 React UI,内部端点与 DOM 选择器集中在 page-helpers.js 顶部便于重定向。日志解析较保守,行号精确但文件归属为尽力推断。--no-recompile 读取屏幕日志面板,信息有损且仅含最后一次 UI 编译,假定英文界面。编译使用标签页当前登录账号。仅编译 Overleaf 当前持有的源码,不触发同步。