ttrpg-tools/QWEN.md

1.9 KiB
Raw Blame History

TTRPG-Tools

一个基于solid.jsrsbuildttrpg工具箱。

具有以下功能:

  • cli: 提供一个cli工具用于将目录内的各种ttrpg文档编译为html。
  • markdown解析以各种格式编写的ttrpg内容并支持扩展的语法。
  • ttrpg组件用于ttrpg内容的各种UI组件且可以在markdown中通过扩展语法插入。

cli功能

cli使用子命令组织

  • serve: 运行一个web服务器预览目录中的内容并实时侦听更新。
  • compile: 将目录中的内容输出为带hash路由、单个html入口的web应用。

输入文件

cli应当搜索目录下的所有.md文件,并为每个文件创建一条路由。 使用marked解析,marked-directive来支持通过@solidjs/element添加的UI组件。

若通过相对路径引用了其他文件则相关的文件应当被cli发现并在打包时引用。

ttrpg组件

:dice[2d6+d8]:骰子组件。将内容显示为链接,并在链接前添加一个骰子图标。 点击骰子会将链接文本替换为一次骰点结果,再次点击文本会重置为骰点公式。 若提供{key="blah"}则会将骰点结果记录在链接中(?dice-blah=10),以允许跳转。

:table[./sparks.csv]:表格组件。将内容显示为标签页,并根据csv表头显示内容:

  • label: 生成为tab label的内容。
  • body生成为tab body的内容。同样使用marked解析。 支持{{prop}}语法来引用同一行内的其他列其中prop为其他列的表头。

另外,支持一些可选属性:

  • {roll=true}添加一个骰子标签点击会随机切换到一个tab。
  • {remix=true}body的内容每次引用{{prop}}时,使用随机行的内容,而不是同一行。

样式

使用@tailwindcss/typography来管理markdown样式。

编写自定义UI组件时不要使用shadow dom,并且尽可能继承tailwindcss指定的样式。