脱胎换骨的 Zim
Zim 是一款桌面 Wiki 软件。很久以前曾用过它来写笔记,但是印象最深刻的是在 Gentoo 里安装它的时候,需要安装数十个 perl 软件包,因为它是使用 perl-gtk 开发的。最近,zim 发布了最新版 0.46,观察了一下它的源代码,发现居然是用 pygtk 重新开发的,对于 gnome 用户而言,此举可以省却许多依赖包的安装(因为 pygtk 及其周边软件包通常是 gnome 桌面所包含的)。
因为我已经记不清上个版本的 zim 具体有哪些功能,所以也就不再装作很懂的样子去进行对比分析。下面只是列举出最新的版本中我比较喜欢的功能,不保证它们在早期的 zim 中是否存在。
首先,zim 可以将笔记组织为树状,如下图所示。具备类似功能的软件还有一个 NoteCase,不过该项目已经好久未更新了,估计烂尾了。Zim 可将树状笔记导出为 HTML 文件集,首页提供目录连接,每篇笔记被表示成一个单独的 HTML 页面。其实,用 zim 这样的软件,基本上可以让那个 DocBook 休息去了。
其次,zim 支持 wiki 标记语言,详见:http://zim-wiki.org/manual/Help/Wiki_Syntax.html。
最后,zim 支持许多插件。通过这些插件,我们可以在 zim 中插入 LaTeX 数学公式、Graphviz 图形、ToDo List 等。
但是,zim 文本编辑界面中的文本默认行距对西文比较合适,而对中文而言,文本行显得过挤。与很多 GNome 软件一样,zim 未提供调整行距的功能。不过,在粗略了解 pygtk 的基础上,可对 zim 源码 hack 一下。下面是我的 hack 过程(仅供参考):
- 解开源码包,在所得目录中按路径 zim/gui/pageview.py 找到 pageview.py 文件;
- 在 pageview.py 文件中找到以下代码区:
def __init__(self, preferences): gtk.TextView.__init__(self, TextBuffer(None, None)) self.cursor = CURSOR_TEXT self.cursor_link = None self.gtkspell = None self.set_left_margin(10) self.set_right_margin(5)
在其后添加以下代码:
self.set_pixels_inside_wrap(8) self.set_pixels_above_lines(4) self.set_pixels_below_lines(4)
- 按照 zim 的安装说明进行安装即可。
上述 hack 所实现的目的是控制文本行距为 8px。
Gentoo 用户可选择以下两种方法:
- 在 portage 树中进入 zim 所在分支,找到 zim-0.46.ebuild 文件,然后运行 "ebuild zim-0.46.ebuild unpack" 命令,将 zim 源码解包到 /var 目录,然后进入 /var 目录按上面的办法修改源码,完毕后再运行 "ebuild zim-0.46.ebuild merge" 命令进行安装。
- 用 epatch 来打补丁,在 gentoo 里这样比较正规,并且可以将 zim 的 ebuild 放在个人的 overlay 中,添加一个 zh 的 Language Flag 的判断语句,按照 Language flag 的设定来决定是否打补丁。
2010年6月01日 21:42
数月前就用了下 0.46
1. 将含有 TeX 公式的笔记导出为 html 时,zim 就会死掉,人品问题?而且输入 TeX 公式时,总会弹出两个窗口,诡异...
2. 如果源代码安装的话,好像没有删除选项.
2010年6月01日 23:30
@Frogge: 原来 zim 0.46 很早就发布了阿,看来是我 out 了。在 gentoo portage 看到它出现,还以为是新的 :)
我试用了几天,的确存在许多问题。TeX 公式我没试,因为它不支持 context,懒得装 texlive
2010年7月14日 19:12
博主姓刘?今天突然发现好几个博友都姓刘
2010年7月16日 00:35
@eagle: 李啊
2011年4月12日 13:15
其实Docbook最大好处就是可以选择自己的CSS样式,比如章节格式,标题格式,首页格式等。而且支持多种后端输出,如PDF/HTML/XML等,ZIM就不行了。。。