用于创建和管理《赛博朋克 RED》角色的软件
Punk Journal 读取文本构建记录,应用角色与装备规则,并输出结构化 JSON、网页角色卡或可选的 PDF 角色卡。项目使用 Node.js 与 TypeScript,统一由 pnpm 管理。
- Node.js 22 或更高版本
- pnpm 10
- XeLaTeX(仅生成 PDF 时需要)
pnpm install
pnpm check
pnpm build
./pjournal build examples/carl.txt
./pjournal pdf examples/carl.txt生成的 carl.json 包含完整角色数据。开发过程中如不想预先编译,可以使用 pnpm dev -- build ...。
TypeScript 应用层还提供面向 10 个核心职业的 Streetrat 创建器。它根据固定
seed 生成属性、技能与 Lifepath,使用带临时来源标记的 Single Shot Pack v1.1
装备预设,校验所有必选项、Tech/Medtech 专长、Exec 团队成员和 Nomad 载具,
再通过正常规则引擎生成 TXT、JSON 与中文网页。运行
pnpm generate:streetrat-demo 后,可从 output/streetrat/index.html 浏览十张
角色卡,或从 wizard.html 使用网页向导。详情见
docs/streetrat.md。
web-demo/ 提供可部署的 Streetrat 前端向导。它覆盖四步创建流程、十职业、
每职业十组属性数组,以及 Tech、Medtech、Exec 的职业资源预设;最终可下载独立
HTML 角色卡,或通过系统打印面板保存为 PDF。更新规则或模板后,先运行:
pnpm generate:streetrat-wizard-data
cd web-demo
npm run dev向导使用预生成且经过后端规则校验的角色卡变体,因此前端选择不会绕过装备、 职业能力、派生数值或人性规则。
./pjournal build <character.txt> [portrait.png]
./pjournal pdf <character.txt> [portrait.png]
./pjournal web <character.txt> [portrait.png]
./pjournal parse <character.txt>
./pjournal validate-databasebuild 输出 JSON。web 输出无需服务器、可直接打开的独立响应式 HTML
角色卡。pdf 使用 Nunjucks 模板和 XeLaTeX 渲染相同的角色数据;可通过
--output <文件> 指定输出位置,通过 --tex 保留生成的 TeX。运行
./pjournal --help 可查看全部选项。
玩家角色 PDF 首先展示一张受《赛博朋克 RED》快速参考卡启发的红黑色单页角色卡, 其中包含身份、属性、派生数值、技能、武器与护甲、义体、服装、现金和随身装备。 完整库存、战斗详情、备注和可选日志则展示在后续横向详情页中。
pnpm check测试套件包含单元测试、应用层测试、仓库内 9 个示例的语义黄金测试、模板测试和 可选的 XeLaTeX 集成测试。环境中没有 XeLaTeX 时,会自动跳过 PDF 集成测试。
构建记录用法见 USAGE.md,已完成的迁移记录见 docs/typescript-migration.md。
Punk Journal 是依据 R. Talsorian Games 的 同人内容政策 制作的非官方内容, 未经 R. Talsorian Games 批准或背书。数据库文件来源于受 R. Talsorian Games 版权保护的材料,不适用本项目的软件许可证。
其余软件、文档、LaTeX 支持文件及模板采用 GNU 通用公共许可证第 3 版。
Copyright 2024, Jason Denton