用 ASCII Draw 符号绘制清晰的文档图表
每次需要在代码中或 README 文件里绘制一个小型架构图时,与空格的斗争就开始了。你试图用线条连接两个矩形,添加一个箭头,修复一条线,结果整个布局向右偏移了三个字符。Web 编辑器如 asciiflow 有时能帮上忙,但在浏览器里来回拖动图表很快就会变得繁琐。
最近我发现了开发者 Nokse22 的 ASCII Draw 项目。这是一个专门为使用伪图形绘制图表、表格和文本图形的原生 Linux 应用。
为什么开发者应该用符号绘图
文档中的文本图形有一个主要优势:它以纯文本形式存在于代码仓库中。查看这样的图表不需要 SVG 渲染、外部图片,也不需要托管平台支持 Mermaid。图表可以在任何终端、任何文本编辑器中打开,使用 git diff 你可以立即看到架构中具体发生了什么变化。
ASCII Draw 提供了一个熟悉的图形画布,不同的是你使用的是等宽字符网格而非像素。你用鼠标绘制一个块,画一条线,添加标签,然后直接将结果复制到剪贴板。
应用的功能
内置工具足够应对大多数工程任务:
- 矩形和块。支持多种边框样式(单线、双线、圆角),并可用选定字符填充。
- 线条和箭头。可以绘制 90 度直角直线、块之间的阶梯式连接线,以及自由曲线。
- 树形结构和表格。对于目录列表或实体结构有树形模板,表格生成器可帮助整齐对齐列,无需手动重新计算空格。
- 文本和 FIGlet 字体。常规文本可以转换为大型装饰标题,如果你需要为控制台工具创建启动横幅的话。
画布和工具集
字体和标签操作
可用字符目录
线条样式选择
保存到文件或复制到剪贴板
单独的橡皮擦、填充工具和便捷的片段移动功能也值得称赞。如果你需要将一个块稍微下移,只需用矩形框选该区域,然后拖动到新位置即可。
技术实现
该项目使用 Python 3.8+ 编写,采用 GTK4 图形栈和 Libadwaita 库。应用完美融入 GNOME 环境,支持系统主题和热键。
为了生成风格化文本,作者集成了 pyfiglet,并使用 emoji 库来获取扩展字符集。项目采用开源许可证 — GPL v3.0。
实际应用场景
- 格式化代码仓库中的 README 和架构说明文档。
- 复杂代码段的注释(例如,有限状态机图或二进制包格式)。
- 为 TUI 应用原型设计界面。
- 在纯文本和 Markdown 知识库中维护技术笔记。
安装和试用
对 Linux 用户来说,最简单的方式是从 Flathub 安装:
flatpak install flathub io.github.nokse22.asciidraw
flatpak run io.github.nokse22.asciidraw
如果你想从源码构建项目或进行修改,只需克隆仓库:
git clone https://github.com/Nokse22/ascii-draw.git
cd ascii-draw
之后,可以在 GNOME Builder 环境中打开项目,一键启动。
如果你在 Linux 上工作,并且经常直接在代码中编写文档,ASCII Draw 值得备在手边。这是一个简洁的专用工具,解决一个特定任务,在布局图表时节省时间。该项目目前的主要限制是专注于 GNOME 和 Linux 生态系统,因此 macOS 和 Windows 用户需要寻找其他方案,或通过虚拟化运行该工具。
相关项目