核心用法
telegram-tables 是一个命令行工具,用于将结构化数据格式化为 ASCII 表格,特别针对 Telegram 的代码块渲染优化。使用 | 作为列分隔符,通过 ascii-table.py 脚本生成表格,输出包裹在三重反引号中发送。
基础命令结构:
ascii-table "Header1|Header2" "row1|data1" "row2|data2"
关键参数:
--width N:自定义最大宽度(默认 58 字符)--mobile:启用移动端模式,使用 ASCII 字符(| - +)替代 Unicode 框线,宽度 48 字符
显著优点
1. Telegram 兼容性:专门解决 Telegram 中 Markdown 表格无法渲染的问题,生成的纯文本表格在代码块中完美显示
2. 智能布局:基于内容自动计算列宽,而非固定宽度,避免空间浪费或内容截断
3. 自动换行:长文本在单元格内自动折行,保持整体对齐
4. 双模式适配:区分桌面端(Unicode 框线)和移动端(ASCII 字符),主动规避移动端字体宽度不一致导致的错位问题
5. 零依赖:纯 Python 脚本,无需外部库
潜在缺点与局限性
- 无智能断词:长单词换行时可能在任意位置断开,不支持英语连字符规则
- Emoji 陷阱:表情符号因变宽特性会破坏列对齐,建议避免使用
- 数字左对齐:不支持数字右对齐,财务数据可读性稍差
- 分隔符硬编码:
|作为列分隔符无法更改,若内容含|需手动转义 - 无交互编辑:纯 CLI 工具,不支持实时预览或可视化调整
适合人群
- DevOps/SRE 工程师:发送服务器状态、监控指标
- 开发者:在 Telegram 群聊中分享 API 响应、配置对比
- 项目经理:在移动端友好的环境中更新任务看板状态
- 任何需要在 Telegram 中展示结构化数据,且受限于 Markdown 表格渲染失败的用户
常规风险
- 隐私泄露:生成的表格可能包含敏感数据(服务器名、IP、状态),发送至 Telegram 群组前需脱敏
- 信息截断:默认 58 字符宽度可能隐藏关键信息,需根据
--width调整 - 接收端显示差异:即使使用
--mobile,不同设备的等宽字体仍可能有细微差异 - 自动化场景误用:若集成到 CI/CD 通知流程,需确保输出长度不会导致消息被截断