From f005514f56f76f022b2d4885757261dfd2a6d494 Mon Sep 17 00:00:00 2001 From: hypercross Date: Thu, 26 Feb 2026 00:07:49 +0800 Subject: [PATCH] init: qwen --- QWEN.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 QWEN.md diff --git a/QWEN.md b/QWEN.md new file mode 100644 index 0000000..4d609a3 --- /dev/null +++ b/QWEN.md @@ -0,0 +1,46 @@ +# TTRPG-Tools + +一个基于`solid.js`和`rsbuild`的`ttrpg`工具箱。 + +具有以下功能: + +- 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`指定的样式。