zim wiki

个人使用 zim wiki 的经验积累

编辑

浏览器复制当前页面链接

javascript: (function() {
    function copyToClipboard(text) {
        if (window.clipboardData && window.clipboardData.setData) {
            /*IE specific code path to prevent textarea being shown while dialog is visible.*/
            return clipboardData.setData("Text", text);
        } else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
            var textarea = document.createElement("textarea");
            textarea.textContent = text;
            textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
            document.body.appendChild(textarea);
            textarea.select();
            try {
                return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
            } catch (ex) {
                console.warn("Copy to clipboard failed.", ex);
                return false;
            } finally {
                document.body.removeChild(textarea);
            }
        }
    }
    var tw = '[[' + window.location.href + ' |' + document.title + ']]';
    copyToClipboard(tw);
})();

把以上代码存成 bookmarklet 即可。

页面模板

模板文件夹可以从「编辑 – 模板」打开,wiki 目录下的是页面模板。

默认日期格式可以修改,我改成:

======= [% page.basename %] =======
**created**: [% strftime("%Y-%m-%d") %]

外观魔改

主题定制

官方文档:Config Files

zim 的主题定制分为两部分,文本格式和 GUI。前者可以通过 style.conf 来定制,这个文件的位置在官方文档的描述中比较模糊,根据实测,它应该位于:

GUI 部分可以安装 gtk 3.0 的主题,然而我至今未安装成功。虽然如此,可以直接修改 gtk.css。这个文件的位置:

task manager 图标的路径:

一些自用 snippet:

/* gtk.css */

/* 文本编辑栏页边距 10px,背景颜色和字体颜色 */

#zim-pageview text {
 padding: 10px;
 background-color: #f5f5f5;
 color: #282828;
}
# style.conf

# 改掉标题的绿色

[Tag h1]
foreground=#000000
# ...

我自己的定制效果:

sI0r40.png

zim wiki 已经实现四个现代化:

图标文件:

xchecked-box checked-box migrated-box unchecked-box

xchecked-box checked-box migrated-box unchecked-box

公开/其他人做的图标集:

gtk+ 调试心得

zim wiki 目前使用的是 gtk 3.0,而网上关于怎么写 gtk css 的资料莫衷一是。正确的写法请参考官方自带主题 gtk/theme/Adwaita/gtk-contained.css · gtk-3-24 · GNOME / gtk · GitLab

要查看 gtk 组件的 selector 名字,请用 bash(windows 用 git bash)启动 zim 并加上调试指令:

GTK_DEBUG=interactive zim

使用方法请参考 The GTK+ Inspector – GTK Development Blog

一个字体和行高问题

已知 zim wiki 在使用某些字体时,空行的行高会变为 0,很影响使用。经过测试,字体配置不能写 fallback,例如下面这样:

font=Open Sans, sans-serif 10

虽然 sans-serif 实际上能发挥作用,但是会导致零行高。所以,目前只能选择一个带 CJK 字符的字体,例如:

font=Segoe UI 10

显示就正确了。

相关 issues: Dispearing cursor when click mouse · Issue #1210 · zim-desktop-wiki/zim-desktop-wiki


发布

导出模板

模板文件夹:

实验功能:创建日期

根据 源代码的这一行,可以通过

[% page.meta.get("Creation-Date") %]

来获取笔记的最后更新时间。 但不幸的是 Modification-Date 会返回 None,而且看了下笔记的源代码也确实没有。似乎在 0.4 版本之后 zim wiki 就取消了这个功能,真是非常的谜。