用途:把结构化 OKR Markdown 导出为交互式单页 HTML 看板,底部 Tab 切换不同 Objective,样式与布局以 assets/template.html 为准。
主要能力:支持可选 YAML 头(title、heading、accent、subtitle),无 frontmatter 时可用 # 主标题与 > 副标题替代;Objective 以 ## O{n} · {Tab 文案} 书写,分隔符支持 · / . / -;标题下首行非列表作为卡片上的 O 描述;每条 KR 以 - 开头,行末用 | 40% 或 | 权重 40% 标注权重,KR 文本支持 粗体。输出为无外部依赖的单文件 HTML,首张卡片默认激活,支持键盘 1~9 与方向键切换。
使用方式:先按输入格式整理用户文本或 Markdown(可写入临时 .md),再执行 python3 scripts/build.py path/to/okr.md -o path/to/output.html;也可从 stdin 输入,例如 python3 scripts/build.py -o /tmp/okr.html <<'EOF' ... EOF。生成后用浏览器打开并校验 O 与 KR 权重是否齐全。参考样例见 references/demo.md。
限制与注意:仅接受 Markdown 输入;每个 O 必须有描述和至少一条 KR;所有 KR 权重之和建议 100%,但脚本不强制;不要手改 assets/template.html 的样式逻辑凑数据,内容只走输入文件;需要微调视觉时改模板并同步更新 references/demo.md 与脚本占位符。常见问题包括 KR 行缺少权重、未解析到 Objective、O 缺少目标描述、生成后样式不对,可分别补权重、检查 ## O1 · 格式、加目标说明、对比模板是否被误改。用户给自然语言 OKR 时,先转成合规 Markdown 再跑脚本;输出路径由用户指定,未指定则用输入名.html 同目录。