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
来定制,这个文件的位置在官方文档的描述中比较模糊,根据实测,它应该位于:
- windows:
%appdata%\zim\config\zim\style.conf
- mac: ``(待补)
- windows portable: 可以自己定制
GUI 部分可以安装 gtk 3.0 的主题,然而我至今未安装成功。虽然如此,可以直接修改 gtk.css
。这个文件的位置:
- windows:
%localappdata%\gtk-3.0\
- mac:
~/.config/gtk-3.0/
task manager 图标的路径:
- windows portable:
(zim 的安装文件夹)\share\zim\pixmaps
- mac: ``(待补)
一些自用 snippet:
/* gtk.css */
/* 文本编辑栏页边距 10px,背景颜色和字体颜色 */
#zim-pageview text {
padding: 10px;
background-color: #f5f5f5;
color: #282828;
}
# style.conf
# 改掉标题的绿色
[Tag h1]
foreground=#000000
# ...
我自己的定制效果:
zim wiki 已经实现四个现代化:
图标文件:
公开/其他人做的图标集:
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
发布
导出模板
模板文件夹:
- windows portable:
%appdata%\zim\data\zim\templates
- mac:
~/.local/share/zim/templates/html
实验功能:创建日期
根据 源代码的这一行,可以通过
[% page.meta.get("Creation-Date") %]
来获取笔记的最后更新时间。
但不幸的是 Modification-Date
会返回 None,而且看了下笔记的源代码也确实没有。似乎在 0.4 版本之后 zim wiki 就取消了这个功能,真是非常的谜。