Markdown 笔记软件: VNote

Last updated on November 23, 2023 am

向大家安利一款 markdown 笔记软件, VNote https://github.com/vnotex/vnote
此软件目前已经 1300 多个commits 了,做为一个有些开源软件维护经历的人,深感不易。
用了太多 markdown 笔记软件,此软件使得最为顺手,尤其作为程序员 vim 模式 让我感到非常舒服,
大量图表的支持比如 UML 流程图,让我用起来很顺手。

Vnote 分为两个开发阶段,阶段一 vnote2 已经开发完成:https://github.com/vnotex/vnote/tree/vnote2
现在处于第二个开发阶段:https://github.com/vnotex/vnote

据说后续会出收费版本,但目前看还需要很长的一段时间了。

VNote

我前后尝试过各种笔记软件,我理想的软件有几点:

  • a. 支持文件管理
  • b. 不要乱改数据,容易迁移
  • c. 支持 markdown
  • d. 跨平台,支持 Mac 和 Linux

最后,终于发现了 VNote,有点惊喜。在 Linux 下编译 VNote 显示有明显改进,下面是编译的方法:

  1. 下载 QT SDK (最新的 vnotex 官方支持 Qt 5.15.2,可自行下载使用替换相应的版本即可)

https://mirrors4.tuna.tsinghua.edu.cn/qt/official_releases/qt/5.9/5.9.0/qt-opensource-linux-x64-5.9.0.run

将 Qt5.9 安装到 /home/henices/Qt5.9.0/

  1. 编译 fcitx-qt5 (如果使用的是 fcitx5,需要下载编译 fcitx5-qt)

git clone https://gitlab.com/fcitx/fcitx-qt5.git

准备编译脚本 build_linux.sh, 指定下载的QT

1
2
3
4
5
6
7
8
9
10
QTDIR="/home/henices/Qt5.9.0/5.9/gcc_64/"
PATH="$QTDIR/bin:$PATH"
LDFLAGS=-L$QTDIR/lib
CPPFLAGS=-I$QTDIR/include

rm -rf build
mkdir -p build
cd build
cmake ..
make -j8

使用下面命令编译

1
2
chmod a+x ./build_linux.sh
./build_linux.sh

将生成的 libfcitxplatforminputcontextplugin.so copy 到
/home/henices/Qt5.9.0/5.9/gcc_64/plugins/platforminputcontexts/

  1. 获取VNote 源码
1
2
3
git clone https://github.com/tamlok/vnote.git vnote.git
cd vnote.git
git submodule update --init
  1. 编译

build_linux.sh

1
2
3
4
5
6
7
8
9
10
11
QTDIR="/home/henices/Qt5.9.0/5.9/gcc_64/"
PATH="$QTDIR/bin:$PATH"
LDFLAGS=-L$QTDIR/lib
CPPFLAGS=-I$QTDIR/include

rm -rf build
mkdir -p build
cd build
qmake -v
qmake PREFIX=/usr/local CONFIG-=debug CONFIG+=release ../VNote.pro
make -j8

使用下面命令编译

1
2
chmod a+x ./build_linux.sh
./build_linux.sh
  1. 安装

sudo make install

诡异问题

Fedora 升级到 35 后,Vnote 出现了一系列问题

  1. vnote 的阅读模式不能正常显示 (Qt 5.12.11)

    解决这个问题需要禁用 Qtwebengine 的 sandbox

1
./vnote --no-sandbox
  1. 导出 pdf 文件 cpu 100% (Fedora 系统自带 Qt 5.15.2 编译)
  2. 官方提供的 Linux AppImage 文件无法打开 Fcitx5 输入法。

最终解决问题的方法是下载 Qt5.15.2 重新编译 Vnote, Qt 从 5.15 开始不提供离线安装包,非常不方便。
官方提供的在线升级包如果太新只能安装 Qt 6,所以必须下载老版本的 online installer
https://download.qt.io/archive/online_installers/4.0/qt-unified-linux-x64-4.0.1-1-online.run

具体内容可以参考 https://github.com/vnotex/vnote/issues/1942 的讨论

2022.8.2 更新

导出 pdf 文件 cpu 100% 的问题,我调试 Qt 5.15.5 代码时已经解决,可以参考:
https://github.com/vnotex/vnote/commit/53e2b3bfa8aff4f590471caf5e8cc55c8b8b538b

Qt 5.15.3

使用 Qt 5.15.3 编译 VNOte 后,出现下面的报错

1
[695784:695784:0401/181224.580254:ERROR:network_service_instance_impl.cc(286)] Network service crashed, restarting service.

bug 在这 https://bugreports.qt.io/browse/QTBUG-91715 可以先使用环境变量救急一下

1
QTWEBENGINE_DISABLE_SANDBOX=1 QTWEBENGINE_CHROMIUM_FLAGS=--lang=de ./vnote --no-sandbox --disable-gpu

2022.8.2 更新: Qt 5.15.5 已经修复了这个问题。

Fedora 上使用 Qt6 编译 VNote

最近,VNote 迎来了一个大更新,支持Qt6 并保留了对 Qt5 的支持。使用Qt6 编译 VNote 需要安装一些依赖库,下面的可能不全,需要根据具体情况调整。

1
sudo dnf install qt6-qtbase-devel qt6-qt5compat-devel qt6-qtsvg-devel qt6-qtwebengine-devel

使用 Fedora 系统自带的 Qt6 编译比较简单,在 VNote 的源码目录新建一个脚本 build.sh,内容如下:

1
2
3
4
5
VNOTEDIR=~/vnote/
mkdir -p build_system
cd build_system
/lib64/qt6/bin/qmake PREFIX=${VNOTEDIR} CONFIG+=release -spec linux-g++-64 ../vnote.pro
make -j`nproc` && make install

VNOTEDIR 为安装目录需要自己定义,然后执行命令 chmod a+x .build.sh && bash ./build.sh 即可完成编译和安装。

参考链接

https://tamlok.gitee.io/vnote/zh_cn/#!docs/%E5%BC%80%E5%8F%91%E8%80%85/%E6%9E%84%E5%BB%BAVNote.md


Markdown 笔记软件: VNote
http://usmacd.com/cn/vnote/
Author
henices
Posted on
November 29, 2021
Licensed under