npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

devpaper

v0.2.0

Published

用 Cursor Rule + 包内文档在 AI 解题时结构化记录,再用 CLI 生成报纸风 HTML 日报

Readme

Devpaper

Cursor 规则 + 执笔规范文档 在 AI 解题过程中留下结构化手记,按日落盘到固定目录;用 CLI 生成报纸风 HTML(单日多篇周/月/区间则生成「导航壳页 + 每日独立日报」可点击切换),并维护 index.json 记忆索引,减轻「不知道 AI 做了什么」和「同类错误反复踩」的问题。

我只是想在业务项目里用

先看极简版快速上手(中文)(安装 + 单人/团队 + 命令表,一页搞定)。

  1. Node.js ≥ 18
  2. npm install [email protected] --save-dev
  3. npx devpaper init-cursor --logs ./logs --out ./dist
  4. 需要逐步截图式说明时再看 install-per-project.zh.md

如果你是维护 devpaper 本包的人,发布前按 发版流程(中文) 检查版本、CHANGELOG、npm 权限、Git tag 与打包内容。

原始痛点:自己写的代码出错,往往能快速联想到大致位置与原因;若代码几乎全是 AI 写的而中间过程未留痕,出问题时常一无所知。手记把每日的中间出错、方案取舍等写进人能读的 logs/,便于交付后再排障时对照,也便于与下一轮 AI 续接上下文。在 AI 编程范式下,人的重心更多在需求澄清、技术方案、对 AI 产出与中间过程的审核等——阅读与维护每日手记,宜与 Code Review、测试一样视为必要模块(更长叙事可写在本机 docs-local/ 目录,不入库)。

为何叫「手记」:强调内容最终是给人读的——人是意义与责任的终点;索引与 HTML 是让人更好读、让机器更好帮人的手段。它试图衔接 古法编程(过程留在注释与文档)与 AI 编程(过程易消散在对话)之间的断层,做一座可积累的桥。命名与立意的展开同样可放在 docs-local/ 自拟文稿中(默认不提交 Git)。

最短用法(单人)npm install(一次)→ logs/YYYY-MM-DD.mdnpm run dp:idxnpm run dp:month -- 2026-04 → 浏览器打开 dist/2026-04/index.html(http,见第四节)。

最短用法(团队)devpaper team init → 各成员写 logs/<缩写>/YYYY-MM-DD.mddevpaper merge --month 2026-05(或 Hub「合并当月」)→ npm run dp:idxnpm run dp:month -- 2026-05。详见 团队手记说明(中文)。手记月历「日历在哪…」 一节。

本仓库即 devpaper 包根目录。行为契约见 openspec/specs/;新变更流程见 openspec/README.md(复制 openspec/template/openspec/changes/<短名>/)。openspec/changes/archive/ 仅作本机留档,默认 不入库(见根 .gitignore)。

参赛 / 路演 / 他人上手长文:放在本机 docs-local/(默认不入库)。

更多文档快速上手(中文) · install-per-project.zh.md(详细安装)· team-workspace.zh.md(团队)· log-authoring-guide.md(手记格式)· release.zh.md(发版)路径 / a11y / 安全 / 备份等长文请放在本机 docs-local/不入库)。

路径易错点:本仓库根目录即包根,请用 node src/cli.mjs …npm run dp:* / npm run html:*。若从 npm 安装的 node_modules/devpaper 内执行,仍用 node src/cli.mjs不要再套一层 devpaper/ 前缀路径。


价值延伸:规则沉淀与测试协作

Markdown ## 与报纸:单日 md 中每个 ## 在构建时被切成独立「文章」再上版(parseDailyMarkdown → 头版/要闻/简讯等),标题习惯与版式同源;OpenSpecopenspec/)偏事前契约,手记偏事后证据,二者互补——规格里找不到的「为什么」常能在 logs/ 与索引指纹里找到。更长的形态对照与答辩口径可写在 docs-local/ 自拟文稿。

手记与 logs/index.json 等产物不只是存档,还可作为技术资产继续向下游流动:

  • 提炼为开发规则(提效):从多篇手记中归纳重复出现的根因、指纹族、禁踩路径与接口约定,可沉淀为 Cursor RulesAGENTS.md 等,让后续人类开发与 Coding Agent 默认沿用同一套约束,把「一次踩坑」变成「长期避坑」,形成开发提效闭环。
  • 辅助测试与 AI 生成用例:手记里常见的 现象 / 根因 / 解法 / 影响面(及刊位、指纹等元数据)适合作为测试同事的结构化上下文;将该日 md、某一 ## 条目或索引摘要提供给测试侧使用的 AI,可更容易产出回归重点、边界条件、负例路径等用例草稿与验收要点——手记提供的是可追溯、可对需求/代码锚定的语料,具体 AI 工具链由团队自选。

日历在哪、样式在哪、按月怎么用

日历页面与样式文件

| 是什么 | 路径 | |--------|------| | 手记月历(格子状态、链到 dist) | hub/index.html | | 月历的样式 | 写在 hub/index.html 里同一个文件的 <style>…</style>(从约第 7 行开始)。没有单独的 hub.css。团队模式下另有 紫「待合并」.h-pending):仅有成员稿、尚未汇总。 |

如何在浏览器里打开月历

  1. 推荐(月历 + 可选页内按钮):在仓库根执行 npm run dp:hub,浏览器打开 http://127.0.0.1:8765/hub/index.html(停服:终端 Ctrl+C)。
  2. 只要月历、不要 Node 控制台:仓库根 npx --yes serve .,在终端给出的地址后加 /hub/index.html

不要用资源管理器直接 file:// 打开 hub/index.html(无 API 时月历不可用)。推荐 npm run dp:hub,由 /api/calendar 提供月历;若仅静态预览,须先 npm run dp:idx(团队模式生成 logs/hub-calendar-<身份>.json)。

按月生成 HTML(月刊样例)

仓库根依次执行(把 2026-04 换成你的 YYYY-MM):

npm run dp:idx
npm run dp:month -- 2026-04

生成结果:目录 dist/2026-04/(目录名即 YYYY-MM

| 文件 | 作用 | |------|------| | index.html | 月刊导航壳:按日切换,iframe 里加载当日 YYYY-MM-DD.html(版式选择页,可下拉换 tpl)。 | | YYYY-MM-DD.html | 当日版式选择页(顶栏 + iframe)。 | | YYYY-MM-DD.tpl-*.html | 各内置/自定义版式的完整日报页。 |

本地预览:用 npm run dp:hubnpx serve . 起 http 后,打开 …/2026-04/index.html(或从月历页点进某日 dist 链接)。


使用说明(照着做)

1. 一次性准备

  1. 安装 Node ≥ 18
  2. 仓库根执行 npm install(安装 marked;只需做一次)。
  3. 单人:手记写在 logs/YYYY-MM-DD.md团队(存在 logs/team.json):身份在 team.local.json,写在 logs/<成员缩写>/YYYY-MM-DD.md,汇总身份先合并再出报——见 docs/team-workspace.zh.md

2. 命令速查(仓库根)

主推 月刊 见上文 「按月生成 HTML(月刊样例)」 小节。其余常用命令:

| 你想做的事 | 命令 | |------------|------| | 更新索引 + 月历状态 JSON | npm run dp:idx | | 按自然月生成 dist/YYYY-MM/ + index.html | npm run dp:month -- 2026-04 | | 按周生成 | npm run dp:week -- 2026-04-10 | | 任意日期区间 | npm run devpaper -- build --from 2026-04-01 --to 2026-04-15 | | 为「可构建」的日期各生成一份(团队模式:有汇总或根目录稿) | npm run dp:all | | 只生成某一天(写入 dist/YYYY-MM/,并刷新该月 index.html) | npm run dp:day -- 2026-04-30 | | 初始化团队配置 | npm run devpaper -- team init | | 合并单日 / 当月 / 全部成员稿 | npm run devpaper -- merge --date … / --month … / --all | | 单日且默认 iframe 偏向专题大报 tpl | npm run dp:day:bs -- 2026-04-30 | | 单日且默认 iframe 偏向阅刊长读 tpl | npm run dp:day:reader -- 2026-04-30 |

生成物说明:单人 HTML 在 dist/YYYY-MM/团队dist/<成员id>/YYYY-MM/dist/merge/YYYY-MM/(随 Hub/CLI 当前身份)。索引 logs/index.json(默认只索引当前身份相关 md,全量用 devpaper index --all);月历 logs/hub-calendar-<身份>.jsondp:idx 且建议带 --out ./dist)。Hub 会检测 dist/ 根下旧版合刊并提示重新出刊。升级或拉取新版 devpaper 后,若内置版式有增减,请对该月重跑 dp:month / dp:all(或逐日 dp:day),否则版式下拉可能仍为旧版。

3. 在包根目录(本仓库克隆后)

npm install 后:

| 用途 | 命令 | |------|------| | 单日 | npm run html:day -- 2026-04-30 | | 单日 broadsheet | npm run html:day:bs -- 2026-04-30 | | 单日 reader(纵向单栏) | npm run html:day:reader -- 2026-04-30 | | 单日 reader-night(阅刊暗色) | npm run html:day:reader-night -- 2026-04-30 | | 全部有日志的日 | npm run html:all | | 索引 + INDEX.md + hub-calendar | npm run idx | | 本机手记控制台(月历 + 一键生成 API) | npm run hub | | 等价直接调 CLI | node src/cli.mjs build --date 2026-04-30 等 |

4. 要不要开浏览器服务?怎么开?

先分清三件事:看日报看月历在网页里一键生成。只有后两种才和「本机起一个 http 服务」有关;生成 HTML 本身永远是终端里跑 npm run dp:*,不依赖浏览器。

| 你想做什么 | 要不要开服务 | 怎么做 | |------------|--------------|--------| | 只看某一天生成的 dist/YYYY-MM/YYYY-MM-DD.html(版式页) | 通常不用。用资源管理器双击、或 VS Code / Cursor 的「在浏览器中打开」一般即可。 | 若 iframe 里 tpl 预览异常,再改用下面任意一种 http 方式打开同一文件。 | | 打开 hub/index.html 月历 | http(s)。推荐 dp:hub/api/calendar);勿依赖 file:// 读 JSON。 | 任选其一:① 方式 A dp:hub;② 方式 B npx serve(无页内生成按钮)。 | | 月历上点 「刷新 / 出单日 / 出区间…」等生成按钮 | ,且必须是 dp:hub 自带的那个服务(页面和 /api/* 同源)。索引在 打开页、点刷新、每次生成后 会自动更新。 | 见「方式 A」。 |

方式 A(推荐):只开一个终端 — dp:hub 一站式

dp:hub 会在本机 127.0.0.1 起一个 很小的 Node 服务(不是对外部署,关掉终端即停)。它既提供 月历静态页,又提供 /api/* 给按钮用。

在仓库根执行:

npm run dp:hub

在包根目录(与上表相同 cwd)执行:

npm run hub

终端里会出现监听地址。用浏览器打开(默认端口 8765):

  • http://127.0.0.1:8765/hub/index.html

改端口示例:

npm run devpaper -- hub --port 9000

停服:在该终端按 Ctrl+C

全局(任意目录)启动:若已 npm install -g devpaper,可先在本机环境变量里设 DEVPAPER_LOGSDEVPAPER_OUT(手记根目录与 HTML 输出根,与 init-cursor / 日常 index build 一致),然后任意终端执行:

devpaper hub

启动后终端会醒目打印 http://127.0.0.1:<端口>/hub/index.html;加 --open 可尝试自动用系统浏览器打开。仍用 Ctrl+C 停服。也可用命令行覆盖路径:devpaper hub --logs D:/Notes/... --out D:/Notes/...

手记控制台页(hub/index.html)怎么用:在浏览器打开上述 …/hub/index.html(勿用 file://)。连上本服务后,月历走 /api/calendar,页内链接 /dist/…/logs/… 会映射到当前这次 hub 所用的手记根与 HTML 输出根(与 --logs/--outDEVPAPER_LOGS/DEVPAPER_OUT 一致),点「月刊」、预览链会打开你机器上真实生成的那份 HTML。

方式 B:只要月历、不要网页按钮 — npx serve 静态站

在仓库根执行(需已装 Node,会临时下载 serve):

npx --yes serve .

看终端里打印的 http://localhost:xxxx,在浏览器地址栏后面加上路径,例如:

  • http://localhost:xxxx/hub/index.html

改 md / 要更新格子状态前,先在另一个终端跑 npm run dp:idx。生成 HTML 仍用 npm run dp:day / dp:all(本方式没有页内一键生成)。

和「写 md、出 HTML」的关系(再强调一遍)

  • 改 md、跑索引、跑 build:一律在 PowerShell / 终端 里执行 npm run dp:idxnpm run dp:day -- … 等,不需要为了生成文件而开浏览器服务。
  • 开服务:只是为了 在浏览器里 舒适地打开月历、或 用按钮触发 本机再跑一次上面的命令。

5. --single-html(可选)

  • 需要单文件、无版式下拉、无 tpl 的旧式输出时,在 build 上加 --single-html(例如 CI 极简产物)。

6. 与 Cursor 集成(闭环)

  1. 放进项目:克隆本仓库或 npm install devpaper(建议 devDependencies)。
  2. 生成 Cursor Rule(推荐,免手拷):在该业务项目根执行
    npx devpaper init-cursor --logs <手记目录> --out <HTML 输出根>
    会在当前项目写入 .cursor/rules/devpaper-log.mdc,并把上述路径写进 Rule(收尾里的 devpaper index / build 与之一致)。--logs / --out 必填(相对路径相对当前目录,或用 --cwd 指定项目根);已存在同名 Rule 时跳过,需覆盖时加 --force。本仓库开发自测:npm run dp:init-cursor(相对 ./logs./dist)。
    亦可手动复制 .cursor/rules/devpaper-log.mdc(不写入自定义路径)。
  3. 完整格式骨架docs/log-authoring-guide.md(英文规范,正文语言不限)。
  4. 日志:有 team.json 时身份在 team.local.json,写作成员写入 logs/<id>/YYYY-MM-DD.md(当前为 merge 时 Agent 仍写首个写作成员目录);否则 logs/YYYY-MM-DD.md(见 log-authoring-guide)。
  5. 合并(团队)devpaper merge --date … / --month / --all,或 Hub「合并当日 / 当月 / 全部」。
  6. 出报devpaper index / devpaper build(或 dp:*);团队模式下 build 优先读汇总稿 _merged/

全局手记目录 + 多项目同一天

若希望不按仓库拆分手记(例如固定 D:/Notes/devpaper-logs),仍用同一天一个 YYYY-MM-DD.md:多个仓库的条目写在同一文件里,每条一个 ## HH:MM · slug — 标题。区分项目可用正文 #project-foo 标签,或在 slug 里带项目代号(如 acme-api);指纹仍以错误族为主,需要更细聚类时可加短前缀(见 Log authoring guide — Multi-project)。各业务项目各自跑一次 init-cursor--logs / --out 指向同一全局路径即可),Rule 内容一致、Cursor 仍按「当前打开的工作区」生效。

消费者 package.json 示例(路径请改成你的全局目录):

{
  "scripts": {
    "devpaper:rule": "devpaper init-cursor --logs D:/Notes/devpaper-logs --out D:/Notes/devpaper-dist",
    "devpaper:idx": "devpaper index --logs D:/Notes/devpaper-logs --md --out D:/Notes/devpaper-dist",
    "devpaper:day": "devpaper build --logs D:/Notes/devpaper-logs --out D:/Notes/devpaper-dist --date"
  }
}

首次克隆某业务仓库后执行一次 npm run devpaper:rule,之后日常 devpaper:idx / devpaper:day

单仓库 vs 多仓库:npm 与手记控制台(hub)

| 场景 | npm--logs / --out | 手记控制台 hub | |------|-----------------------------|----------------------| | 单项目(手记落在各自仓库里) | 在该仓库 npm install devpaper(建议 devDependencies)。init-cursor 与日常脚本里 --logs / --out 指向本仓的 ./logs./dist(或你自定的相对路径)。 | 在 该仓库根 执行 npm run dp:hub,或 devpaper hub --logs ./logs --out ./dist(也可用仓库 scripts 封装)。只看本仓数据时,每个仓库各起一个 hub 即可。 | | 多项目共用手记(同一天一个 YYYY-MM-DD.md,多仓写同一磁盘目录) | 每个业务仓库仍各自 npm install devpaper;各仓 init-cursor 与上表「消费者 package.json」里的 --logs / --out 必须相同(都指向全局手记根与 HTML 输出根)。 | 通常只起一个 devpaper hub--logs / --out(或环境变量 DEVPAPER_LOGS / DEVPAPER_OUT)与上同一对路径;任一仓改过 md 后须跑 devpaper index(或依赖 hub 页内刷新),月历格子与按钮才跟得上。若多终端各开各的 hub 但路径仍指向同一对 logs/out,等价于多个窗口盯同一套数据。 |

再强调:跑 dp:idx / build 不必开 hub;开 hub 只为了在浏览器里看月历或用页内 /api/* 按钮——见上文 第四节


CLI 与 npm:完整参数表

前置条件:Node.js ≥ 18;在包根(本仓库根或 node_modules/devpaper)执行 npm install 一次。

路径约定index / build / hub / init-cursor 在未传 --logs / --out 时,依次尝试 环境变量 DEVPAPER_LOGS / DEVPAPER_OUT(非空)、再落到本包根目录下的 logs/dist/命令行参数始终优先于环境变量。相对路径仍相对当前 shell 所在目录解析(init-cursor 中相对路径相对 --cwd,默认当前目录)。index 特例:若既未传 --out 也未设 DEVPAPER_OUT,则扫描 HTML、写 hub-calendar.json 时使用的输出根仍为 手记目录 的上一级下的 dist(与「只传 --logs」的旧脚本兼容)。
克隆本仓库:手记正文默认不入 Git(logs/*.mdlogs/*/*.mdlogs/_merged/*.md 等,见 .gitignore)。请 devpaper team init 启用团队目录,或自建 logs/YYYY-MM-DD.md团队模式下勿用 npm run sample:logs(会破坏目录结构)。

| 用途 | 命令 | 参数 | 默认 --logs | 默认 --out | 生成物 / 行为 | |------|------|------|---------------|--------------|----------------| | 帮助 | node src/cli.mjs | 无子命令或 -h / --help | — | — | 打印用法后退出 | | 生成 Cursor Rule | node src/cli.mjs init-cursor | --logs--outDEVPAPER_LOGS / DEVPAPER_OUT;可选 --cwd--force | — | — | 写入 <cwd>/.cursor/rules/devpaper-log.mdc | | 记忆索引 | node src/cli.mjs index | 可选 --logs--out--md--scope current\|all | 本包 logs | 见上文 | index.json;月历 hub-calendar.jsonhub-calendar-<身份>.json | | 团队初始化 | node src/cli.mjs team init | 可选 --logs--force | 本包 logs | — | team.json + 默认 team.local.json | | 切换当前成员 | node src/cli.mjs team use <id> | 可选 --logs | 本包 logs | — | 更新 team.local.jsonactiveMember | | 合并手记 | node src/cli.mjs merge | --date / --month / --all / --from+--to--force | 本包 logs | — | 写入 logs/_merged/(默认) | | 本机控制台 | node src/cli.mjs hub | 可选 --logs--out--port--open | 本包 logs | 本包 dist | 月历 + 成员切换 + 合并按钮 + /api/* | | 单日报纸 HTML | node src/cli.mjs build --date YYYY-MM-DD | 必填 --date;可选 --logs--out--member--template 等 | 本包 logs | 本包 dist | 单人 dist/YYYY-MM/;团队 dist/<scope>/YYYY-MM/ | | 每天各一份 HTML | node src/cli.mjs build --all | 可选 --member | 同上 | 同上 | 每个可构建日期各一份(团队:有汇总稿的日) | | 日期区间 + 导航 | node src/cli.mjs build --from A --to B | 必填 --from--to | 同上 | 同上 | <out>/range-…/index.html + 各日 | | 自然月 + 导航 | node src/cli.mjs build --month YYYY-MM | 必填 --month | 同上 | 同上 | <out>/month-…/index.html + 各日 | | 自然周 + 导航 | node src/cli.mjs build --week-of YYYY-MM-DD | 必填 --week-of | 同上 | 同上 | <out>/week-…/index.html + 各日 | | 短命令(包根) | npm run html:day -- … 等 | 见本包 package.json | ./logs | ./dist | html:day / html:day:bs / html:day:reader / html:day:reader-night / html:all / html:month / html:weekidxhub | | 单测 | npm test | 无 | — | — | 运行 node --test test/**/*.test.mjs | | 预设全部日报 | npm run build:html | 无 | ./logs | ./dist | 等同 build --all | | 预设索引 | npm run build:index | 无 | ./logs | — | 等同 index --md | | 虚构演示日志 | npm run sample:logs | 无 | 写根目录 logs/*.md | — | 仅单人模式;有 team.json 时脚本会拒绝 |

在包根执行 npm link 后,可将 node src/cli.mjs 换为全局命令 devpaper


版本与变更

  • 变更日志CHANGELOG.md(按版本列出新增 / 修复 / 升级注意点)。
  • 当前版本:与 package.jsonversion 一致。
  • 升级后:若内置 HTML/CSS/模板有变,对受影响自然月重跑 npm run html:month -- YYYY-MM(仓库根 npm run dp:month -- …),并视需要 npm run idx / npm run dp:idx 重建索引与月历数据。
  • 自动化测试:在包根执行 npm test

协作流程见 CONTRIBUTING.md


「指纹」是什么?还能叫什么?

指纹不是文件哈希,而是你给同一类错误起的短代号,便于 index.json 聚类与新会话检索。

可替换叫法:错误族 ID踩坑代号pattern-id 等。书写示例(均会被索引识别):

**指纹**:`foo`, `bar`
指纹:baz, qux

快速开始

在仓库根(本 monorepo)

npm install
npm run dp:idx
npm run dp:month -- 2026-04

等价:已在包根时

npm install
npm run idx
npm run html:month -- 2026-04

月刊产物在 dist/2026-04/index.html(目录名为 YYYY-MM)。需要手记月历或页内一键生成时,见上文 「日历在哪…」第四节(推荐 npm run dp:hub)。

演示用大量虚构手记可重生(会覆盖 logs/ 下按日文件):

npm run sample:logs
node src/cli.mjs index --logs ./logs --md

不覆盖真实 logs/ 的一页演示:在仓库根执行 npm run dp:demo,输出到 .demo-out/<YYYY-MM>/.demo-logs/(见 CHANGELOG.md)。


报纸与「多篇、多期」

  • 同一天多篇:同一 YYYY-MM-DD.md 内多个 ##,会排进同一份当日 HTML。
  • 周 / 月 / 区间:在 dist/ 下以 YYYY-MM 为目录名;各日 HTML 写入该日所属月的文件夹;index.html(导航)写在整月时为该月,区间为起始日所在月,为周一所在月(跨月时 iframe 使用相对路径 ../其它月/)。build --date / build --all 亦写入对应 dist/YYYY-MM/;生成后会删 dist 根下旧版散装文件。若磁盘上仍有旧目录名 month-YYYY-MM,可手动改名为 YYYY-MM 或重新生成该月。

Cursor 与执笔规范

手记的详细模板与元数据说明docs/log-authoring-guide.md(与根目录 .cursor/rules/devpaper-log.mdc 搭配:Rule 管纪律,文档管格式)。以主线 openspec/specs/ 为准;旧版 OpenSpec 提案若需对照可查 Git 历史


报纸版式与「刊位」

HTML 按头版 / 要闻 / 简讯分层:头版单栏大字、舒适行长;要闻主栏带左侧色条;简讯进侧栏(篇数多时侧栏自动双列)。可在正文里写 **刊位**:头版 / 要闻 / 简讯(与指纹同级即可)。

未写「刊位」时:固定 1 条头版要闻条数随总篇数在 2~6 条间自动调整(大致随「除头版外篇数」的平方根增长,篇数很多时也不会只给 2 条要闻);其余进简讯。多条手写「头版」时只保留第一条,其余降为要闻。

可选 **等级**:高|中|低(或 **严重程度**:…)与 **类型**:…(自由短文本):报纸 HTML 会显示角标并加不同侧线强调;index.json 每条会多 severitytypetypeLabel 字段。生成前会从正文剥离,不与小节重复。

日志、索引与目录

| 路径 | 说明 | |------|------| | logs/YYYY-MM-DD.md | 单人模式:按日落盘 | | logs/team.json | 团队共享配置(成员、mergeDir不含 activeMember) | | logs/team.local.json | 本机当前身份(activeMember;勿提交 Git) | | logs/<id>/YYYY-MM-DD.md | 团队成员个人稿 | | logs/_merged/YYYY-MM-DD.md | 合并后的团队日刊(默认汇总目录 _merged) | | logs/index.json | index / dp:idx;含 source;供 hub/ 月历 | | logs/INDEX.md | index --md 时生成的人类可读表 | | dist/YYYY-MM/dist/<id>/YYYY-MM/ | build 生成的报纸页(团队按身份分子目录) | | hub/index.html | 月历(需 http;dp:hub 提供 API 与 /dist 映射) | | logs/hub-calendar.json / hub-calendar-<身份>.json | index 生成:各日 md / HTML 状态;团队按身份分文件 |


License

MIT