ibmm,让思维导图回归本质
赖勇浩(http://laiyonghao.com)
我找到的最有启发的东西是一个网站:Text 2 Mind Map(http://www.text2mindmap.com/),它提出了使用基于缩进的文本来描述思维导图,然后再由软件渲染出来!是的,就是像 Python 那样的缩进语法,多一层缩进就是上一层的子节点。是的,我们再也不需要去调整各个节点的位置了,软件会自动帮我们计算最好看的渲染方案!下面来一个例子,文本是这样的:
重点是有了 ibmm2gv,以后只要打开记事本就可以写脑图了,手机平板都不成问题啊!保存到 svn/hg/git 都可以,版本一比对,一目了然!哪怕有时候 SSH 连接到服务器上,虽然看不到图,但看到树状的纯文本基本上也可以脑补完全了!
缘起
你想用思维导图来分析问题,然后,你就有两个问题了。——无名氏许多朋友都听说过思维导图(又称脑图),它是用来理清思路的好办法。同时我也相信许多朋友在使用思维导图的过程中遇到了许多问题,比如:
- 搜索了一下,发现思维导图的编辑器都好几十 MB;
- 下载安装发现这些 java 写的程序启动巨慢,还占内存;
- 编辑了三五十个节点发现自己不停地要调整位置,还调不好看;
- 调好看了发现自己都忘了要分析的问题;
- 保存的文件非得用专门编辑器才能看和改,说是 xml 文本格式打开发现根本看不懂改不得;
- 把文件放到版本控制系统里,版本比对的时候一团乱像,理不清来龙去脉;
- 号称跨平台,手机一般看不了,更别提编辑了。
我找到的最有启发的东西是一个网站:Text 2 Mind Map(http://www.text2mindmap.com/),它提出了使用基于缩进的文本来描述思维导图,然后再由软件渲染出来!是的,就是像 Python 那样的缩进语法,多一层缩进就是上一层的子节点。是的,我们再也不需要去调整各个节点的位置了,软件会自动帮我们计算最好看的渲染方案!下面来一个例子,文本是这样的:
Months of the year Spring March April May Summer June July August Autumn September October November Winter December January February
渲染出来的图片是这样的:
安装
安装 ibmm2gv 非常简单,因为它已经托管到了 pypi,只要你安装了 python 和 pip,然后在命令行执行:pip install -U ibmm2gv就安装成功了。ibmm2gv 是遵循 unix 哲学的小应用,默认情况下它从标准输入里读取输入,然后把输出放到标准输出,你可以使用管道把它跟 graphviz 的生成程序 neato(也可以是别的渲染引擎,比如 dot)连接起来。下面举个例子,把上文中的文本保存到一个文件中,取名为 season.ibmm,然后在其目录执行:
cat season.ibmm | ibmm2gv | neato -Tpng -oseason.png
你可以看到生成的 season.png 图片了。见下图:
重点是有了 ibmm2gv,以后只要打开记事本就可以写脑图了,手机平板都不成问题啊!保存到 svn/hg/git 都可以,版本一比对,一目了然!哪怕有时候 SSH 连接到服务器上,虽然看不到图,但看到树状的纯文本基本上也可以脑补完全了!
关于中文
graphviz 是支持中文的,需要指定 -Nfontname 参数,不然默认情况下找不到中文字体来渲染就乱码了,在 windows 上可以试一下 -Nfontname="Microsoft YaHei",这表示使用微软雅黑,在 linux 下可以使用 -Nfontname="WenQuanYi Micro Hei Mono",这表示使用文泉驿微米黑。在 linux 下可以用 fc-list 来看一下安装了哪些字体,如果没有文泉驿微米黑可以使用命令 aptitude install ttf-wqy-microhei 安装。下面是一个例子:一年 12 个月 春 三月 四月 五月 夏 六月 七月 八月 秋 九月 十月 十一月 冬 十二月 一月 二月
把上述文本保存为 season-zh.ibmm,执行命令:
ibmm2gv --infile=season-zh.ibmm | neato -Tpng -oseason-zh.png -Nfontname="WenQuanYi Micro Hei Mono"
就可以看到使用文泉驿微米黑字体在 linux 下渲染出来的图片了:
准实时看到最后效果
很多急性子,希望随时能够看到最后的效果,这里有一个还算过得去的方案,需要你使用 windows 7 系统。
- 打开一个命令行界面,在你保存 ibmm 文件的路径下执行:python -m SimpleHTTPServer ,这样你就开了一个本地的 HTTP 服务器。
- 然后把你的文本编辑器打开,按下 windows 键和左方向键把它放在左半屏,编辑、保存,
- 然后在一个新的命令行窗口中执行生成脑图的命令;
- 然后再打开一个浏览器,按下 windows 键和右方向键把它放在右半屏,在地址栏输入 http://127.0.0.1:8000,就可以看到生成的脑图的文件名,点开即可查看。在后续的编辑过程中,只需要保存、生成、在浏览器按 F5 刷新即可。
后续开发
- 首要的肯定是更漂亮的效果。
- 其次是类似 restview 的方便的预览方案。
- 然后是各种 wiki 的相应的插件的开发,敬请期待吧!