CASCII 是什么?怎么用它画 ASCII 图表
CASCII 是一个免费、开源的 ASCII/Unicode 图表绘制工具,用原生 JavaScript 写成,打开 cascii.app 就能在浏览器里直接画流程图、架构图、表格等字符图,不需要安装任何软件。它适合需要在代码注释、README、终端界面或纯文本文档里放示意图的人——只要目标环境用等宽字体显示,画出来的图就能保持对齐。如果你的图要贴进富文本编辑器或比例字体网页,字符对齐会失效,这类场景不适合用字符图。
CASCII 能画什么
CASCII 的输出是纯文本,由 ASCII 字符(+、-、|、/、\ 等)或 Unicode 制表符(┌、─、│、└ 等)拼成。常见用途:
- 流程图:用方框加箭头表示步骤和分支
- 架构图:用分层方框表示服务、模块、数据流向
- 表格:用行列线组织对比信息
- 树形结构:目录、分类、调用关系的层级展示
- 界面草图:终端 UI、命令行工具的布局示意
因为结果是纯文本,它可以进版本控制、做 diff、随代码一起复制粘贴,不依赖图片托管,也不会因为图片链接失效而丢失。
基本操作流程
CASCII 的交互围绕“在画布上放置字符块并调整位置”展开,典型步骤如下:
- 打开工具:访问 cascii.app,页面加载后即出现绘图画布,无需注册或登录。
- 添加文本框:在画布上创建矩形区域,输入框内的文字。文字会按等宽字符网格排布。
- 画连线:用方向键或鼠标在框之间铺设
-、|、+等连接字符,形成箭头或折线。 - 对齐调整:移动框和连线,让边缘落在同一列或同一行上。字符图的“对齐”本质是列号一致,差一个空格就会错位。
- 导出纯文本:把画布内容复制为文本,粘贴到目标文档或代码里。
预期结果是:在等宽字体环境下,粘贴后的图与画布上看到的一致。
ASCII 与 Unicode 怎么选
两种字符集各有取舍,选择取决于图最终出现在哪里:
| 维度 | ASCII 字符 | Unicode 制表符 |
|---|---|---|
| 外观 | 朴素,+--+ 风格 |
平滑,┌──┐ 风格 |
| 兼容性 | 几乎所有终端、编辑器、字体都支持 | 需要字体和终端支持对应码位 |
| 对齐风险 | 低,单字节字符宽度稳定 | 部分环境把制表符渲染成双宽或替换为问号 |
| 适用场景 | 老系统、日志、跨平台代码注释 | 现代终端、支持 Unicode 的 README |
判断方法很简单:把导出结果粘贴到目标环境里看一眼。如果制表符变成乱码或宽度异常,就换回 ASCII 字符重画。
常见卡点
字符错位:最常见的原因是目标环境用了比例字体,或者中英文混排。中文字符在多数等宽字体里占两个英文字符宽度,框线如果按一个宽度计算就会歪。解决办法是框内尽量用英文,或按双宽重新计算边框长度。
导出后排版变化:复制时如果经过富文本编辑器,空格可能被合并或转换。应粘贴到纯文本环境(代码编辑器、终端、Markdown 代码块)里。
特殊符号兼容性:Unicode 制表符、箭头 →、方框绘制字符在不同字体下宽度可能不一致。跨平台分享时,ASCII 版本最稳。
对齐维护成本:字符图没有自动布局,改动一个框的宽度往往要手动补或删整列空格。图越大,维护越费劲。适合画中小规模、变动不频繁的示意图。
什么时候该用它
需要一张能随代码走、能 diff、不依赖图片的示意图时,CASCII 是直接可用的选择:打开网页就能画,导出即纯文本。反过来,如果图要频繁改动、规模很大,或者最终展示环境不是等宽字体,用图形化绘图工具或 Mermaid 这类文本转图方案会更省力。