本系列介绍 文本转图片 工具支持的图形描述语言。图形描述语言将图片描述为代码或者文本,有利于版本管理,很适合嵌入 LaTeX 或 Markdown 文档。用于网站时,还可以减轻图片存储压力,因为图片可以根据代码在使用时生成。本文是该系列第一篇,介绍 ditaa。
ditaa是什么
ditaa 是 DIagrams Through Ascii Art
,作者是 Stathis Sideris。
ditaa is a small command-line utility written in Java, that can convert diagrams drawn using ascii art ('drawings' that contain characters that resemble lines like
| / -
), into proper bitmap graphics.ditaa interprets ascci art as a series of open and closed shapes, but it also uses special markup syntax to increase the possibilities of shapes and symbols that can be rendered.
From: http://ditaa.sourceforge.net/
文本转图片 工具并没有使用原版 Java 版的 ditaa,而是用了 Golang 版本,因此和原版并不完全一致,比如 Golang 版本中不能使用中文,原版最新版本已经可以使用中文。
语法介绍
圆角
使用 /
或者 \
来连接角,将被解析为圆角。例如以下代码:
/--+
| |
+--/
颜色
为图形增加颜色的语法是 cXXX
。其中 XXX
是一个十六进制数。数字的第一个数字表示颜色的红色成分,第二个数字表示绿色,第三个数字表示蓝色(good ol' RGB)。下面是使用颜色代码的例子:
/----\ /----\
|c33F| |cC02|
| | | |
\----/ \----/
/----\ /----\
|c1FF| |c1AB|
| | | |
\----/ \----/
十六进制颜色代码可能有些冗长,所以这里提供了(目前只有一些)人类可读的颜色代码:
Color codes
/-------------+-------------\
|cRED RED |cBLU BLU |
+-------------+-------------+
|cGRE GRE |cPNK PNK |
+-------------+-------------+
|cBLK BLK |cYEL YEL |
\-------------+-------------/
正如您在上面看到的,如果一个彩色的形状包含任何文本,则文本的颜色将根据底层颜色进行调整。如果背景颜色为黑色,则文本颜色将更改为白色(从默认的黑色)。
请注意,颜色代码只适用于闭合形状内的情况,在闭合形状外的任何地方都没有效果。
形状标签
ditaa 能识别一些改变矩形渲染方式的标签。所有标记都在 {
和 }
之间。如下:
+-----+
|{d} |
| |
| |
+-----+
Symbol representing a document.
+-----+
|{s} |
| |
| |
+-----+
Symbol representing a form of storage,
like a database or a hard disk.
+-----+
|{io} |
| |
| |
+-----+
Symbol representing input/output.
虚线
任何包含至少一个 =
(用于水平线)或至少一个 :
(用于垂直线)的行都呈现为虚线。这些字符中只有一个可以使整行变为虚线,所以这个特性可以“扩展”。这背后的基本原理是,您只需要更改一个字符就可以从普通字符切换到虚线字符(反之亦然),而不需要重新绘制整个线条/形状。特殊符号(如文档或存储符号)也可以用虚线表示。见下文:
----+ /----\ +----+
: | | : |
| | | |{s} |
v \-=--+ +----+
点标记
如果在一行中遇到 *
(但不在行尾),则将它呈现为一个特殊的标记,称为点标记。见下文:
*----*
| | /--*
* * |
| | -*--+
*----*
文本处理
如果遇到 o XXXXX
模式(其中 XXXXX
是任何文本),则将 o
解释为项目符号并呈现。注意,o
前面和后面都必须有空格。见下文:
/-----------------\
| Things to do |
| cGRE |
| o Cut the grass |
| o Buy jam |
| o Fix car |
| o Make website |
\-----------------/
ditaa画廊
以上就是全部内容,欢迎到 文本转图片工具 试用。
发表回复