脱胎换骨的 Zim

LiYanrui posted @ May 31, 2010 04:37:49 AM in GNU/Linux & Unix with tags zim pygtk , 8873 阅读

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 过程(仅供参考):

  1. 解开源码包,在所得目录中按路径 zim/gui/pageview.py 找到 pageview.py 文件;
  2. 在 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) 
  3. 按照 zim 的安装说明进行安装即可。

上述 hack 所实现的目的是控制文本行距为 8px。

Gentoo 用户可选择以下两种方法:

  1. 在 portage 树中进入 zim 所在分支,找到 zim-0.46.ebuild 文件,然后运行 "ebuild zim-0.46.ebuild unpack" 命令,将 zim 源码解包到 /var 目录,然后进入 /var 目录按上面的办法修改源码,完毕后再运行 "ebuild zim-0.46.ebuild merge" 命令进行安装。
  2. 用 epatch 来打补丁,在 gentoo 里这样比较正规,并且可以将 zim 的 ebuild 放在个人的 overlay 中,添加一个 zh 的 Language Flag 的判断语句,按照 Language flag 的设定来决定是否打补丁。
Frogge 说:
2010年6月01日 21:42

数月前就用了下 0.46
1. 将含有 TeX 公式的笔记导出为 html 时,zim 就会死掉,人品问题?而且输入 TeX 公式时,总会弹出两个窗口,诡异...
2. 如果源代码安装的话,好像没有删除选项.

Avatar_small
LiYanrui 说:
2010年6月01日 23:30

@Frogge: 原来 zim 0.46 很早就发布了阿,看来是我 out 了。在 gentoo portage 看到它出现,还以为是新的 :)

我试用了几天,的确存在许多问题。TeX 公式我没试,因为它不支持 context,懒得装 texlive

eagle 说:
2010年7月14日 19:12

博主姓刘?今天突然发现好几个博友都姓刘

Avatar_small
Ekd123 说:
2011年4月12日 13:15

其实Docbook最大好处就是可以选择自己的CSS样式,比如章节格式,标题格式,首页格式等。而且支持多种后端输出,如PDF/HTML/XML等,ZIM就不行了。。。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter