Files
ttrpg-tools/src/doc-entries/md-table.md
T
hypercross 40b6fbe157 feat(ui): replace unicode icons with solid-icons
Swap emoji and unicode glyphs for Tabler components so icons inherit
currentColor and font-size and render consistently across platforms.

- add src/components/doc-icons.ts to resolve doc-entry frontmatter icon
  keys to components; frontmatter now stores semantic keys
- replace the align-*.png assets with TbOutlineAlign* icons
- render RevealManager action SVGs as components instead of injected
  innerHTML strings
- carry completion icons via an optional CompletionItem.icon field
2026-09-13 14:01:03 +08:00

1.8 KiB

tag, icon, title
tag icon title
md-table table 表格组件

将 CSV 数据转换为可切换标签页的表格,支持内联 CSV、随机抽取、加权随机和变量引用。

语法: :md-table[./data.csv]{选项}

基础表格:

:md-table[./npcs.csv]

带随机抽取:

:md-table[./encounters.csv]{roll=true}

随机 + 变量引用:

:md-table[./quests.csv]{roll=true remix=true}

内联 CSV(直接写入内容):

:md-table[label,body,group
A,这是一段描述,第一章
B,另一段描述,第二章]{}

支持通过文件路径加载 CSV,也可以直接将 CSV 数据内联写在指令中。CSV 要求包含 label、body 列,可选 group 列分组。

分组

当 CSV 包含 group 列时,表格顶部会显示分组标签页,可切换查看不同分组的数据。

随机抽取

当 roll=true 时,表格顶部显示骰子随机按钮:

  • 普通随机:从所有行中均匀随机选取
  • 加权随机:当 label 列全部为整数或整数范围格式(如 1-3)时,以 label 值为权重进行加权随机抽取

变量引用

当 remix=true 时,body 列中可使用 {{prop}} 语法引用同行其他列或 YAML front matter 中的数据。开启 remix 后每次随机抽取会从所有行中随机选取一行来解析变量。

YAML Front Matter

CSV 文件可包含 YAML front matter(文件开头的 --- 块),其中定义的属性可通过 {{prop}} 在 body 中引用。

属性

属性 类型 说明
roll boolean 显示随机切换按钮
remix boolean 支持 {{prop}} 引用同行其他列

使用场景

用于 NPC 列表、遭遇表、宝物生成、随机事件等结构化数据。