问题描述
升级 Zim 版本,0.69 to 0.72,侧栏无法显示(或者 Index 消失)。
问题原因
我们进行一番排查(PyCharm debug),发现侧栏 Index 是插件,而 .config/zim/preferences.conf 没有该插件。
在新版本中,侧栏的 Index 是以插件形式出现的。
解决方法
在 Plugins 中,启用 Page Index 插件。
参考文献
upgrade 0.69 to 0.72.1 causes loss of side pane · Issue #1167 · zim-desktop-wiki/zim-desktop-wiki · GitHub[……]
「Zim」- 从 0.69 升 0.70 后,侧栏消失
「Zim」- 滚动条覆盖末行文本
问题描述
在 SourceView 中,水平滚动条会覆盖末行文本。
问题原因
该问题这与 GTK 3 实现相关。
解决方法
1)通过修改代码,永远显示水平滚动条(Eclipse 也是这样处理的,在 2020-12 中,水平与垂直滚动条默认是显示的) 正如 SourceView: the horizontal scrollbar covers the last line. · Issue #1342 所述
2)使用环境变量 GTK_OVERLAY_SCROLLING=1 来启动应用(当鼠标悬浮于滚动条时,才显示,但效果不好):
GTK_OVERLAY_SCROLLING=1 zim
参考文献
SourceView: the horizontal scrollbar covers the last line. · Issue #1342 Bug Report – sql editor scrollbars hides last row · Issue #4839 Horizontal scroll bar thickness · Issue #1570 add empty space bottom in table view. because there are horizontal scrollbar · Issue #8484[……]
「ZIM」- 搭建开发环境
操作系统
Ubuntu 22.04 LTS
安装依赖
# ——————————————————— # inside ubuntu
apt-get install python-is-python3 gir1.2-gtk-3.0 python3-gi python3-xdg python3-pillow
apt-get install pkg-config libcairo2-dev
# https://stackoverflow.com/questions/18025730/pygobject-2-28-6-wont-configure-no-package-gobject-introspection-1-0-found
# No package ‘gobject-introspection-1.0’ found
apt-get install libgirepository1.0-dev
# ——————————————————— # inside virtualenv
pip install gobject-introspection-1.0 pygobject[……]
「Zim」- 安装(CentOS、Ubuntu、Debian、源码)
问题描述
该笔记将记录:在 Linux 中,安装 Zim 的方法,以及常见问题的解决方案;
解决方案
下面的部分将针对不同 Zim 版本与 Linux 发行版组合进行记录,也都是我们安装过的版本;
Zim 0.74.3 on Ubuntu 22.04
apt-get install python-is-python3 gir1.2-gtk-3.0 python3-gi python3-xdg python3-pillow pkg-config libcairo2-dev
apt-get install zim
Zim 0.68 on Debian 10
时间:02/14/2020
安装常见依赖包:
apt-get install python-gobject python-gtk2 python-xdg xdg-utils
为使用 Source View 插件,需要安装 libgtksourceview2 与 python-gtksourceview2 包。在 Debian 10 中,包含 libgtksourceview2.0-0 包,但不再包含 python-gtksourceview2 包,且使用 pip 也无法检索到后者。因此我们使用在 Debian 9 中的 python-gtksourceview2 包:
apt-get install libgtksourceview2.0-0
wget http://ftp.tw.debian.org/debian/pool/main/p/pygtksourceview/python-gtksourceview2_2.10.1-3_amd64.deb
dpkg -i python-gtksourceview2_2.10.1-3_amd64.deb # 可能需要安装该包的其他依赖
安装应用包
apt-get install -y zim
Zim python2-gtk2 on CentOS 7.5
版本:Zim (git branch: python2-gtk2) 时间:06/22/2019
#!/bin/sh
# !!!由于需要在命令行中使用,在服务器上执行导出功能。所以在终端先进行安装,没有桌面;
# !!!但是安装失败了,提示「RuntimeError: could not open display」错误。这是没有启动桌面导致的;
# !!!虽然安装失败了,但是源码包里的 zim.py 可以直接运行;
# 检出源码
git clone -b python2-gtk2 https://github.com/jaap-karssenberg/z[……]
「ZIM-DESKTOP-WIKI」- zim:桌面维基Zim的主程序文件
命令行语法格式
zim [OPTIONS] [NOTEBOOK [PAGE]]
zim –server [OPTIONS] [NOTEBOOK] zim –export [OPTIONS] NOTEBOOK [PAGE] zim –search NOTEBOOK QUERY zim –index NOTEBOOK zim –plugin PLUGIN [ARGUMENTS] zim –manual [OPTIONS] [PAGE]
zim –help
命令描述
Zim是一个图形文本编辑器,用于维护一组wiki页面。每个页面可以包含指向其他页面的链接、简单的格式、图像。页面是存储在文件夹结构中,就像在大纲中一样,并且可以有附件。创建新页面就像链接到不存在的页面一样简单。所有数据 存储在具有维基格式的纯文本文件中。各种插件提供额外的功能,如任务列表管理器、公式编辑器、托盘图标、支持版本控制。
Zim可用于:
保存笔记存档
在会议期间记笔记或讲座
组织任务列表
草稿博客条目和电子邮件
进行头脑风暴
命令支持的选项及含义
总选项
–gui 运行编辑器,这是默认的。
–server 运行一个Web服务器。
–export 以不同的格式导出笔记。
–search 在指定的笔记上执行搜索。
–index 为一个笔记创建索引。
–plugin 调用一个地址插件的功能。
–manual 打开手册。
-V, –verbose 在终端中显示详细的信息。
-D, –debug 打印调试信息。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
与GUI相关(–gui)
–list 显示笔记列表,而不是打开默认笔记
–geometry 指定启动时的窗口大小、位置。参数格式为:WidthxHeight+X+Y
–fullscreen 全屏模式显示。F11可以切换到全屏
–standalone 启动单个实例,没有后台进程。
与Web服务相关(–server)
Zim可以作为一个Web服务运行,监听一个端口号,通过浏览器来查看笔记。
–port 监听的端口号。默认为8080。
–template 要使用的模板的名称。
–gui 显示一个GUI面板。这面板用于控制服务的启动与停止。
如下示例:
# zim –server –port 8080 –template K4NZ blog
上述命令会启动一个Web服[……]
「Zim」- 常见问题处理
# 为 macOS 创建图标
Create a Mac App for Zim Wiki
# PYTHONPATH
PYTHONPATH: http://zim-wiki.org/install.html
# BUG
Text view freeze with a page including a sourceview object Code Block using Syntax Default crash Zim TODO Zim CodeBlock Defaults 崩溃问题
#3 设置默认应用
http://zim-wiki.org/manual/Help/Default_Applications.html
#2 设置默认的编辑器
修改 Tools > Edit Source 功能打开的默认编辑器。
Edit > Preference > Applications > Set default text editor,选择新的编辑器:
#1 在Code Block中的字体
在Code Block中,默认为Monospace字体。如果要修改,可以使用系统中Fontcofig中来配置Monospace字体。
# 10/27/2017 目前,貌似没有提供直接配置字体的方法。
配置的保存位置
用户层面的ZIM全局配置文件位于:$HOME/.config/zim
有关于插件的「状态数据」及「目录索引」位于:$HOME/.cache/zim[……]
「Zim」- 模板
问题描述
在 Zim 中,支持模板文件。好处就在于当导出文档时,使用同一份文档,可以生成不同的页面布局或者格式不同的文件。
模板,在创建文档、文档导出时所使用的文件。
解决方案
支持的模板格式
当前支持的有:html, LaTex, markdown, plugins, rst, wiki
模板的保存路径
Zim自带的模板的路径位于:安装目录/share/zim/templates,通常为:/usr/share/zim/templates 用户可以添加自定义的模板:$HOME/.local/share/zim/templates
使用 HTML 模板
部分第三方的HTML模板 https://github.com/jaap-karssenberg/zim-wiki/wiki/Templates
参考文献
Zim User Manual/Templates[……]
「Zim」- 使用wiki模板
wiki模板,用于在创建文档时使用,选择新建文档页面时的默认内容。
在 Zim 中,默认自带了两个wiki文档模板Default与Journal,位于/usr/share/zim/templates/wiki目录中。自定义的wiki模板文件可以放入$HOME/.local/share/zim/templates/wiki目录中。
参考 Templates 文档,获取有关模板的定义及页面标签。
参考文献
Zim Manual/Templates[……]
「Zim」- 文本格式化
内容简介
本文将介绍在Zim中文本格式化类型。
Head 1 ~ 5 => 标题
Bullet List => 列表(前缀重点符号)
Numbered List => 列表(数字类型)
Checkbox List => 列表(单选框)
Strong => 加粗
Emphasis => 斜体
Mark => 标记
Strike => 删除线
Verbatim => 类似于标记
Subscript => 下角标 Superscript => 上角标[……]
「Zim」- 快捷键列表
Zim中的快捷键列表。
通用快捷键
侧栏的快捷键
针对选中文本的快捷键
改变加速器
Emacs模式
通用快捷键
F9 Toggle visibility of sidepane(s) <Ctrl>F9 Show all sidepanes <Ctrl><Space> Toggle focus between index and buffer
opens side pane if index is invisible
(optional see preferences)
<Ctrl><Tab> Focus next inteface element (gtk default)
<Ctrl><Shift><Tab> Focus previous interface element (gtk default)
Esc Close sidepane (when focus is on a side pane)
<Alt><Home> Go to the home page <Alt><Left> Go one page back in history <Alt><Right> Go one page forward in history <Alt><Up> Go one level up in the page hierarchy <Alt><Down> Go one page down in the page hierarchy
(The actual page is chosen by the history)
<Alt><PgUp> Go to the previous page in the index
<Alt><PgDown> Go to the next page in the index
<Alt>D Go to today’s page
<Ctrl>Q Quit the application <Ctrl>w Close window
<Ctrl>F Find in the current page <Ctrl>G Find next <Shift><Ctrl>G Find previous <Shift><C[……]
「Zim」- 常用插件及扩展工具
问题描述
在 Zim 中,支持众多插件以扩展功能,使其更加强大。比如,时序图、代码块、截图、拼写检查等等。
该笔记将记录:部分插件使用方法及配置方法。
有哪些可以使用的插件?
与 Zim 共同打包发布的插件
1)有关插件的详细的介绍可以查看官方 Plugins 文档 2)或者在 Zim 中按下 F1 来显示 Zim 的帮助手册,在 Plugins 中有对插件的详细介绍。
这也是本笔记重点记录的插件。
第三方插件与插件开发
Plugins · jaap-karssenberg/zim-wiki Wiki · GitHub
插件安装目录
系统自带的插件目录:/usr/lib/python2.7/dist-packages/zim/plugins/(根据 Zim 的安装方式的不同,具体路径可能会有所差异)。
用户自定义插件目录:$HOME/.local/share/zim/plugins/
关于插件的启用
如果无特殊说明,文中所指的插件启用方法为:Menu Bar > Edit > Preferences > Plugins > (在插件列表中勾选某个插件) > OK
在菜单栏中的某些菜单选项中会显示该插件相关的按钮。
关于插件的设置
如果无特殊说明,文中所指的插件设置方法默认为:Menu Bar > Edit > Preferences > Plugins > (在插件列表中勾选某个插件) > Configure > OK
注意,某些插件不支持配置,即 Configure 按钮为灰色。
已知插件列表
Arithmetic
这个插件就比较神奇了,支持在 Zim 中进行数学计算。这么说你可能听不懂,看下面的操作示例: 1)启用该插件:「Edit」>「Preferences」>「Plugins」>「Arithmetic」 2)在Zim中输入:2 + 3 = 3)将光标置于等号的后面,像这个样子:2 + 3 = | 4)按F5键,该插件会自动计算2 + 3的值并显示在等号后面:2 + 3 = 5
该插件是使用了arithmetic模块实现的,非常好用了,当然示例中只是介绍了简单的功能,可参考官方文档的说明。
Attachment Broswer
这个插件相当有用了。可以将当前页面的附件文件夹显示在底部。下面截图的底部就是Attachment Broswer,显示了这篇文章中引用了三张图片(截图时文章还未完成): 该插件支持查看文件、使用外部程序打开图片、缩放等等,还可以设置该面板显示的位置。
BackLinks Pane
该插件[……]
「Zim」- 在笔记中,添加插图
问题描述
我们需要在笔记中添加插图,但是我们没有采用直接插入图片的方式。因为直接插入图片,在图片的编辑与更新时,非常麻烦。例如,我们需要先找到原文件,然后进行编辑,然后再导出图片,最后粘贴到页面中。这对笔记的更新维护非常不友好,尤其是在图片中有个错别字的时候,为了一点改动需要做很多步骤。
现在,已经有很多工具支持“使用文本生成图片”,比如 Graphviz、LaTex、PlantUML 等等,可以通过使用纯文本语言,来生成图片。在 Zim 中,集成这种功能(与在 Markdown 中使用插图类似)。这样,我们就无需编辑图片文件,只需要修改“纯文本”,图片生成由工具来完成,极大简化笔记插图管理,做到所有工作都在当前应用内完成,避免借助过多的其他工具。
该笔记将记录:在 Zim 中,如何在笔记中添加插图、多种类型插图的插入方法,以及常见问题处理。
解决方案
该章节列举出部分「当绘制某种类型的插图时,我们能够使用的 Zim 插件」:
插入时序图: 1)Insert Sequence Diagram / <Insert / Sequence Diagram> / seqdiag – Sequence Diagram
简单的关系图: 2)Insert Diagram / <Insert / Diagram > / Graphviz – Graph Visualization
网络报文、内存字节序列说明图: 3)Insert Image from LaTeX / <Insert / Image from LaTeX> / LaTex/bytefield
相关插件
该部分将列举:在 Zim 中与图形、绘图、公式相关的插件,这些插件让我们可以直接在笔记中完成绘图工作,而无需借助外部工具。
Insert Ditaa
该插件依赖于 ditaa 工具,可以在 Zim 中插入和编辑 ditaa 图解。
Insert Equation
该插件依赖于 LaTeX,提供公式编辑器。
Insert GNU R Plot
该插件依赖于 GNU R,绘图工具,使用 GNU R 的 S 语言进行绘图。
Insert GNUplot
该插件是一个科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。
Insert Score
该插件依[……]
「Zim」- 导出 Markdown 文档
导出 Markdown 功能
# 01/27/2021 默认的导出 Markdown 文档存在问题,Codeblock 没有正确转化为 Markdown 语法(develop commitid 68df96d27b5),即使旧版也存在该问题。 我们尝试使用 Xunius/markdown2zim 工具,但是仍然存在无法处理 Codeblock 的问题,。
参考文献
Xunius/markdown2zim: Convert between markdown and zim wiki syntax[……]
「Zim」- 动态更新页面内容(插件开发)
问题描述
在笔记中,每个页面都有「更新时间:XXXX年XX月XX日」行,用于表示该笔记的修改时间。当我们修改笔记后,需要更新该行,以记录该笔记本次修改时间。但是修改该行是件琐碎且无聊的事情,我们希望能够专注于笔记编写,而该字段能够自动更新(比如在内容发生修改时)。
所以我们的需求是:在内容发生修改时(或者在保存时,或者在自动保存时),能够自动更新笔记内容。
解决方案
第一种:通过自定义工具(Tools => Custom Tools)
不完美。(1)因为自定义插件需要我们手动点击才可以执行,而不能自动执行,我们还是会从笔记编写中分心。(2)另外自定义插件不能操作文本缓冲,就是说每次都是在修改磁盘文件(非主要问题)。
第二种:编写插件
插件功能更加强大,因为它可以操作 Zim 的方方面面,等同于修改 Zim 的源码。本文后续将介绍如何编写插件。
编写插件
zim-desktop-wiki/zim-desktop-wiki/PLUGIN_WRITING.md
语言:插件由 Python 3 编写; 组成:包含插件描述类与多个(或单个)功能类; 文档:参考 zim.plugins 模块以了解插件框架的接口文档;
参考文献
zim-desktop-wiki/zim-desktop-wiki/PLUGIN_WRITING.md[……]
「Zim」- 为图片设置边框
问题描述
在 Zim 中,当在页面中插入图片后,由于页面是白色的,并且图片背景也是白色的,导致我们无法直观的看出图片与段落的距离。在这种情况下,图片与段落可能间隔一行,也可能间隔两行,这对页面的排版造成影响。
我们希望,直接看到图片与段落的间隔。比如:通过为图片设置边框(Border)等方式,来凸显图片的边界。
该笔记将记录:在 Zim 中,如何突出显示图片(以明确图片与段落的间隔),以及常见问题的处理。
解决方案
方案一、修改页面背景色
通过设置页面的背景色,页面与图片的形成反差,将显示出图片的边界:
/* 在 ~/.config/gtk-3.0/gtk.css 中,添加如下配置 */
#zim-pageview text {
background-color: darkseagreen; /* changes the background color of the Zim’s page editor */
/* color: #BABABA; */ /* foreground text color */
}
但是,该方法的局限性在于:如果图片为 PNG 透明图片,则图片将显示页面的背景色(因为是透明的),无法达到我们的目的。
方案二、为图片设置边框
我们可以为图片添加边框,这样便可看到图片的边界,区分出段落与图片的距离:
/* 在 ~/.config/gtk-3.0/gtk.css 中,添加如下配置 */
#zim-inserted-object {
border: 2px solid #ccc;
}
但是,该方法的局限性在于:“通过插件插入的图片”(比如 Graphviz、Sequence Diagram 等等)能够显示该边框,但是直接插入的图片无法显示边框。这与 Zim 实现有关:通过插件插入的图片,是通过 Gtk.Image() 与 Gtk.VBox() 插入 TextBuffer 的,而样式则是添加到 Gtk.VBox() 控件上;直接插入的图片,是通过 Pixbuf 插入到 TextBuffer 中的,没有设置边框;
方案三、修改图片插入实现(方案二的补充)
问题描述:普通图片没有边框,是因为图片是作为 Pixbuf 直接插入 TextBuffer 的。通过插件生成的图片,是使用 ImageFileWidget 插入 TextChildAnchor 的。而 CSS 之添加到 ImageFileWidget 上的,没有添加到 Pixbuf 上(我们也没有知道相关的方法)。
TODO ! Zim 为普通图片添加边框:”zim-inserted-object” doesn’t work for norm[……]
「CSDN」- 相关内容记录
批量删除博客
What is the JavaScript version of sleep()? – Stack Overflow
在浏览器的浏览器中(我们在 Firefox 中测试通过),执行如下脚本:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function delete_posts() {
for (var delete_button_list; delete_button_list = $x(‘//span[contains(text(), “删除”)]’);) {
console.log(“Length: ” + delete_button_list.length)
for (var delete_button of delete_button_list) {
console.log(“Delete…”)
delete_button.click();
await sleep(500)
console.log(“Confirm…”)
$x(‘//span[contains(text(), “确定”)]’)[0].click();
await sleep(500)
}
}
}
delete_posts()[……]
「Oschina」- 相关内容记录
https://www.oschina.net/openapi
接口:动弹(发布、列表、详情、删除)
发送动弹
https://www.oschina.net/openapi/docs/tweet_pub
curl -XPOST \
–header ‘User-Agent: JenkinsHttpRequest/7.66.0’ \
–header “Content-type: application/x-www-form-urlencoded; charset=utf-8” \
–data “access_token=c35a4ee3-be09-460e-9489-fce034a4099f” –data “msg=美好的周末已经过去一半了” \
https://www.oschina.net/action/openapi/tweet_pub
动弹列表
https://www.oschina.net/openapi/docs/tweet_list
curl -XPOST \
–header ‘User-Agent: JenkinsHttpRequest/7.66.0’ \
–header “Content-type: application/x-www-form-urlencoded; charset=utf-8” \
–data “access_token=ca22285e-8c48-4590-a51b-cdca2fb5668a” \
–data “user=0” \
https://www.oschina.net/action/openapi/tweet_list[……]
「Book」- 图书、电子书、资料、文档
Paperless-ngx
paperless-ngx/paperless-ngx
A community-supported supercharged version of paperless: scan, index and archive all your physical documents
Calibre
calibre – E-book management
Calibre is a cross-platform free and open-source suite of e-book software. Calibre supports organizing existing e-books into virtual libraries, displaying, editing, creating and converting e-books, as well as syncing e-books with a variety of e-readers.
janeczku/calibre-web: Web app for browsing, reading and downloading eBooks stored in a Calibre database[……]
「Calibre」- 图书管理应用
问题描述
我们买了很多的技术书籍,但是忘记哪些买过,哪些没买,哪些已读,哪些未读(应该不止我们是这个样子吧);
因此,我们需要对这些图书进行管理,以及管理与其对应的 PDF 书籍 :)
该笔记将记录:用于管理图书和电子书的软件,并记录某些场景的解决方案;
解决方案
Calibre 用于组织及管理图书(及电子书),超过十年历史(calibre started life on 31 October, 2006),可以解决我们(1)忘记已经购买过哪些书籍(2)忘记看过哪些书记(3)快速检索书籍等等问题;
目前,我们正在使用 Calibre 软件,它能满足我们的各种需求;
特性特征
calibre is a powerful and easy to use e-book manager. Users say it’s outstanding and a must-have. It’ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It’s also completely free and open source and great for both casual users and computer experts.
Save time on managing your e-book collection
Use it everywhere and with anything
Comprehensive e-book viewer
Download news/magazines from the web
Share and backup your library easily
Edit the books in your collection
Satisfy every e-book need and get support
以上内容摘自官方站点,参考 About calibre 页面,每个特性都有详细的介绍;
我们最常用的功能是以下几个: 1)输入 ISBN 将自动抓取图书封面、作者、分类、介绍等等信息; 2)为图书创建标签,设置分类,快速检索; 3)标记出我们已经购买过的书籍,想要购买的书籍;(这是最基本的功能,它本来就是图书管理软件); 4)每本书籍记录都有对应的目录,可以在其中保存相关资料(比如 PDF 文件、附带光盘、文档等等);
应用场景
电子图书管理;文档(PDF)管理;
参考文献
calibre – About[……]
「CALIBRE」- 服务部署
on Linux (General)
访问 Release 页面,下载 AMD 64-bit Linux binary 版本;
on Debian 10
# calibre (calibre 3.39.1) on Debian GNU/Linux 10 (buster)
apt-get install calibre calibre-bin
# 或者访问官方站点,下载最新版本
# https://download.calibre-ebook.com/
on Windows 7
最与 Windows 7 需要安装 4.23.0 版本,无法安装高于 5.0.0 及以上版本;[……]
「CALIBRE」- 场景及方案
将附件关联到书籍
# 07/28/2021 关于(4)问题,我们 Path: Click to open 进入目录,并保存 PDF 文件。但是,如果此后修改书籍名称,那么 PDF 文件会丢失。因为 Calibre 会重新创建条目,而我们保存在目录中的 PDF 文件并不再 Calibre 数据库中,所以丢失。所以我们下载 PDF 文件之后,直接将该文件添加到 Calibre 中,而不是先创建条目,在复制 PDF 到目录中;
添加元数据源(Metadata Source)
Calibre桌面版豆瓣插件 https://www.jianshu.com/p/3076682b5ba6 https://github.com/fugary/calibre-douban
配置 http_proxy 代理
How do I get calibre to use my HTTP proxy?
通过设置 http_proxy 与 https_proxy 来使用代理(不支持 SOCKS 代理):
# http_proxy=”http://proxy.eample.com:8080″ calibre
在 Preferences => Miscellaneous 中,能够查看当前代理(只能查看,不能配置);
修改默认文件管理器
使用系统默认文件管理器,因此需要修改默认配置:
find /home/k4nz/.local/share/applications/ -type f -print0 \
| xargs -0 -i grep pcmanfm ‘{}’ –files-with-matches \
| xargs sed ‘s/pcmanfm.desktop/org.gnome.Nautilus.desktop/g’ -i
# 我们将默认的 PCManFM 修改为 Nautilus 文件管理器;
中文输入法 Fcitx 无法使用
Bug #1933035 “fcitx input method fails to launch in Calibre 5.21…” : Bugs : calibre 解决Fcitx输入法在Qt应用中无法使用的问题 – 吕杨鹏自选集 – 本书编写组[……]
「DOCUMENTS」 – 文档浏览工具
Zeal – Offline Documentation Browser
Zeal – Offline Documentation Browser
Zeal is an offline documentation browser for software developers.[……]
「CHM」- Compiled HTML
问题描述
该笔记将记录:与 CHM 文档相关的内容,以及常见问题的解决方案。
解决方案
文档阅读软件
Kchmviewer
适用平台:Windows 10、Ubuntu 21.04
# 07/06/2021 这是我们目前找到唯一可用的 chm 查看工具:
apt-get install kchmviewer
xchm(无法使用)
xchm
打开文档,出现如下错误:
../src/common/unichar.cpp(65): assert “Assert failure” failed in ToHi8bit(): character cannot be converted to single byte
# 我们猜测或许是因为文档中包含中文字符。
chmsee(已停止维护)
Google Code Archive – Long-term storage for Google Code Project Hosting.
Stop maintain ChmSee is not being developed anymore. I haven’t read CHM documents more than a year, new and update IT books are pdfs or epubs, so it’s right time to end this chm viewer.
GnoCHM(已停止维护)
GnoCHM
最后的版本是 GnoCHM 0.9.11 release – Sep 2007 发布。
浏览器插件(不可行)
# 07/10/2019 我们还未找到用于查看 CHM 文档的浏览器插件。
常见问题处理
Windows 10 无法打开 CHM 文件
需要编辑注册表,以解决该问题:64位windows10,打不chm文件问题,终于解决了。。。
但是,我们选择使用 kchmviewer 工具来代开 CHM 文档。
文档格式转换
CHM to PDF
Code Yarns – Convert CHM file to PDF using chm2pdf
apt-get install chm2pdf
chm2pdf –book foobar.chm[……]
「Linux」- 常用文件转换操作
问题描述
该笔记将记录:在 Linux 中,进行各种文件格式的互相转换操作,以及相关问题的解决办法。
pandoc
Pandoc – About pandoc bash – HTML/PDF to DOC(X) in Linux command line? – Super User
该笔记将记录:在 Linux 中,通过 pandoc 转换文档的常用操作,及相关问题的解决方案。
在 Linux 中,多数文档格式的转换工作,都可以使用 pandoc 完成。在官方首页中,有张“很大的”图片,列出 pandoc 支持的全部文档转换。
HTML => DOCX
pandoc -o output.docx input.html
图片文字提取(OCR)
Best OCR Apps for Linux
# 05/03/2022 我们使用 gImageReader 工具:
# apt install gimagereader
# apt install tesseract-ocr-chi-*[……]
「Illustrations」- 插图
问题描述
在编写文档或记录笔记时,我们经常需要添加插图,以更好的解释文字内容;
该笔记将记录:我们常用的插图绘制工具,以及相关问题的解决办法;
常用绘图工具汇总(工具)
Note:当然这不是所有的工具,只是我们日常用到的一些;
TikZiT
TikZiT is a super simple GUI editor for graphs and string diagrams. Its native file format is a subset of PGF/TikZ, which means TikZiT files can be included directly in papers typeset using LaTeX. Pre-built versions are available for systems running Windows, Linux, or macOS. Packages are available for some Linux distributions, or you can build from source.
GraphViz
图解工具,使用 DOT 语言来生成图解。不像平时使用的思维导图工具,在 GraphViz 中,你只负责描述关系,GraphViz 会为你生成合适的图形结构;
Ditaa – DIagrams Through Ascii Art
Ditaa 是一个用 Java 编写的小型命令行工具,可以将使用 ASCII 字符(包含似于/ | -字符的图)绘制的图转换为适当的位图图形。官网中的例子很好的说明了最好的说明了 Ditaa 的作用,也说明了与其他方法相比使用 Ditaa 的好处;
SeqDiag – Sequence Diagram
http://blockdiag.com/en/seqdiag
时序图绘制软件;
Gephi – The Open Graph Viz Platform
Gephi – The Open Graph Viz Platform Gephi/Features
Gephi,开源的、免费的,用于图形和网络可视化和探索软件,是数据可视化工具;
LaTex
https://www.latex-project.org
文档准备系统。使用纯文本来编写文档;
XMind
只要用在平时的工作当中。大家也基本都在用这东西; 中文首页:https://www.xmind.cn/
Minder
phase1geo/Minder: Mind-mapping application for Elementary OS
LibreOffice Draw[……]
「Illustrations」- 概念术语
Graph vs. Diagram vs. Chart
三者的中文意思都可以是图表,而且它们之间界限比较模糊,又是可以互换。但是也有一些小区别:
1)Graph,涵义更为抽象,主要用于说明各种事物之间存在的函数关系,或用于对比,饼图、条形图、曲线图都可以叫做 Graph
2)Diagram,比较具象,用于描述某个物的组成、特征等等。比如,涉及到建筑或机器等实际事物的平面图、分解示意图、网络拓扑图等等,就用 Diagram
3)Chart,主要与坐标有关,可以解释为数据关系图。在海事上都用这个;多半用于展示数据,比如直方图、饼图、折线图等等;而如果拿一个画板,简单地用坐标图描述营收变化与成本或时间的关系等等,一般也用 Chart
总而言之,在日常生活中,Chart 是相对简单的说法,Graph 更专业些,Diagram 侧重于具体事物。
序列图(Sequence Diagram)
Wikipedia/Sequence diagram
序列图,它描述了角色及角色之间事件的发生序列。如下图所示:
相关绘制工具: 1)Mscgen 2)seqdiag[……]
「Gnuplot」
编译、安装
#!/bin/sh
#
./configure –prefix=/usr/local
# 关于编译中的错误,请查看本文 Error List 部分。
make
make install
Error List
#1 …libX11.so.6: error adding symbols: DSO missing from command line
…… /usr/bin/ld: wxterminal/wxt_gui.o: undefined reference to symbol ‘XInitThreads’ //usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status ……
解决: wxt_gui.o链接的时候出现了问题,wxwidgets是个UI框架,它和QT、GTK是一类东西(不是很准确)。 为什么gnuplot要使用wxwidgets?gnuplot生成的图会在图形界面中显示,加入wxwidgets,使gnuplot支持wxwidgets。 但其实,在gnuplot同时可以编译多个UI框架(qt4/5, x11, wxwidgets),所以不用wxwidgets了(实际上并不推荐这么解决问题):
–disable-wxwidgets
参考文献
Homepage: http://gnuplot.sourceforge.net, http://www.gnuplot.info Doc: http://gnuplot.sourceforge.net/documentation.html[……]
「Graphviz」- Graph Visualization
Graphviz,开源的画图工具,它读取绘图脚本(使用 DOT 语言编写),通过对读取的脚本进行解析,分析出其中的点、边、子图,然后根据属性进行绘制;
当用 Graphviz 绘图时,主要工作是编写 DOT 脚本:我们只要关注图中各个点之间的关系就好了,我们不需要考虑如何安排各个节点的位置,也不需要考虑怎样布局能够使我们所绘制的图看起来更美观一些;
参考文献
Graphviz 主页:http://graphviz.org Graphviz 文档:https://graphviz.gitlab.io/documentation/ graphviz 简介:http://blog.csdn.net/iamljj/article/details/5862930[……]