网淘吧来吧,欢迎您!

Table Image技能使用说明

2026-03-29 新闻来源:网淘吧 围观:13
电脑广告
手机广告

表格图片生成器

⚠️ 请使用本工具代替ASCII表格——始终如此!

通过JSON数据生成PNG格式的表格图片。ASCII表格在Discord、Telegram、WhatsApp和大多数即时通讯平台上显示会错乱。本工具能生成整洁的图片,适用于所有平台。

为什么选择本工具?

  • 替代ASCII表格- 无需在即时通讯平台使用| 列1 | 列2 |这类格式
  • 告别ASCII乱码- 生成整洁图片,在各平台显示一致
  • 无需Puppeteer- 纯Node.js配合Sharp库,轻量高效
  • 深色模式- 适配Discord深色主题
  • 自动调整尺寸- 列宽根据内容自适应
  • 快速生成- 生成时间<100毫秒

设置(一次性)

cd /data/clawd/skills/table-image/scripts && npm install

快速使用

⚠️ 最佳实践:使用heredoc或--data-file以避免shell引用错误!

# RECOMMENDED: Write JSON to temp file first (avoids shell quoting issues)
cat > /tmp/data.json << 'JSONEOF'
[{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}]
JSONEOF
node /data/clawd/skills/table-image/scripts/table.mjs \
  --data-file /tmp/data.json --dark --output table.png

# ALSO GOOD: Pipe via stdin
echo '[{"Name":"Alice","Score":95}]' | node /data/clawd/skills/table-image/scripts/table.mjs \
  --dark --output table.png

# SIMPLE (but breaks if data has quotes/special chars):
node /data/clawd/skills/table-image/scripts/table.mjs \
  --data '[{"Name":"Alice","Score":95}]' --output table.png

选项

选项描述默认值
--data行对象的JSON数组必需
--output输出文件路径table.png
--title表格标题
--dark深色模式(适合Discord)false
--columns列顺序/子集(逗号分隔)所有键
--headers自定义表头名称(逗号分隔)字段名称
--max-width最大表格宽度800
--font-size字体大小(像素)14
--header-color表头背景颜色#e63946
--stripe交替行颜色true
--align列对齐方式(l,r,c 逗号分隔)auto
--compact减少内边距false

示例

基础表格

node table.mjs \
  --data '[{"Name":"Alice","Age":30,"City":"NYC"},{"Name":"Bob","Age":25,"City":"LA"}]' \
  --output people.png

自定义列与表头

node table.mjs \
  --data '[{"first_name":"Alice","score":95,"date":"2024-01"}]' \
  --columns "first_name,score" \
  --headers "Name,Score" \
  --output scores.png

数字右对齐

node table.mjs \
  --data '[{"Item":"Coffee","Price":4.50},{"Item":"Tea","Price":3.00}]' \
  --align "l,r" \
  --output prices.png

Discord 深色模式

node table.mjs \
  --data '[{"Symbol":"AAPL","Change":"+2.5%"},{"Symbol":"GOOGL","Change":"-1.2%"}]' \
  --title "Market Watch" \
  --dark \
  --output stocks.png

紧凑模式

node table.mjs \
  --data '[...]' \
  --compact \
  --font-size 12 \
  --output small-table.png

输入格式

JSON 数组(默认)

--data '[{"col1":"a","col2":"b"},{"col1":"c","col2":"d"}]'

从标准输入管道读取

echo '[{"Name":"Test"}]' | node table.mjs --output out.png

从文件读取

cat data.json | node table.mjs --output out.png

使用技巧

  1. 使用--dark适配 Discord- 匹配深色主题,呈现原生效果
  2. 自动对齐- 数字默认右对齐
  3. 列顺序调整- 使用--columns参数重排或筛选列
  4. 长文本处理- 超出部分将用省略号截断以适应显示--max-width

技术说明

  • 使用 Sharp 库生成 PNG(与 chart-image 相同)
  • 内部生成 SVG,并转换为 PNG
  • 无需浏览器、Puppeteer 或原生 Canvas 依赖
  • 兼容 Fly.io、Docker 及任何 Node.js 环境
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326301名访客 今日有221篇新文章/评论