|
|
||
|---|---|---|
| .idea | ||
| content | ||
| src | ||
| .gitignore | ||
| QWEN.md | ||
| README.md | ||
| package-lock.json | ||
| package.json | ||
| rsbuild.config.ts | ||
| todo.md | ||
| tsconfig.cli.json | ||
| tsconfig.json | ||
README.md
TTRPG Tools
一个基于 solid.js 和 rsbuild 的 ttrpg 工具箱。
功能
- CLI: 提供一个 cli 工具,用于将目录内的各种 ttrpg 文档编译为 html。
- Markdown: 解析以各种格式编写的 ttrpg 内容,并支持扩展的语法。
- TTRPG 组件: 用于 ttrpg 内容的各种 UI 组件,且可以在 markdown 中通过扩展语法插入。
CLI 命令
# 克隆仓库后,npm install & npm link安装
# 在项目文件夹内运行
ttrpg serve [dir] -p 3000
组件语法
csv
所有csv使用英文逗号分割。可使用空行。以#为注释。所有包含#或者英文逗号的字段,都应该使用双引号包裹。
骰子组件
:dice[2d6+d8]
:dice[1d20+5]{key="attack"}
表格组件
:table[./sparks.csv]
:table[./sparks.csv]{roll=true}
:table[./sparks.csv]{roll=true remix=true}
卡牌组件
假设准备有./cards.csv内容如下:
label,title,body
1,卡牌1,这张卡牌的**效果**的markdown文本
2,卡牌2,更多卡牌效果
:md-deck[./cards.csv]{grid="5x8" layers="title:1,1-5,1f8 body:1,5-5,8f3"}
上述卡牌将生成5x8的卡牌牌面排版,其中title层占第1行1-5列,8mm字体。
开发
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
# 预览
npm run preview
项目结构
ttrpg-tools/
├── src/
│ ├── cli/ # CLI 工具源码
│ ├── components/ # TTRPG 组件
│ ├── markdown/ # Markdown 解析器
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 入口文件
│ └── styles.css # 样式文件
├── content/ # 示例内容
├── package.json
├── tsconfig.json
└── rsbuild.config.ts