跳至内容

手搓一个笔记软件

手搓一个笔记软件

一直在使用 Obsidian 做笔记管理,其实 Obsidian 已经做得很好了,但是最近看到 Rust 的这个桌面软件生态,就想用 Rust 来做一个桌面软件试试。我的参考对象就是 Obsidian,想做一个和 Obsidian 类似的软件。

其实很多年前在上研究生的时候,我就做过类似的一个软件 xnotebook,那个软件主要是用在 Linux 上,是用 GTK 2.0 做的。因为当时我的主要桌面操作系统是 Linux,所以当时做的就是在 Linux 上使用的一个笔记软件。它也是使用本地文本管理,但是没有实现 Markdown 的管理。现在 Rust 的跨平台性会更好,所以我想用 Rust 来试试,于是有了 xink 这样的一个软件。

而 xink 想做一件更简单的事:让笔记回到它本来的样子——你磁盘上一个个普通的 .md 文件。下面我就简单介绍一下这个软件。这个软件的所有开发过程我都是用 AI 完成的,我整理的需求文档都在仓库的 doc 目录下面。

目前我就在电脑上使用它,处理一些工作内容和事情管理,还是比较方便的。

因为我之前使用的是 Obsidian,它的编辑和预览是在同一个界面的,有些时候我还是不太习惯,希望编辑和预览能够分开。所以我做了这样一个事情,同时也是为了体验一下 Rust 桌面开发的能力,想尝试做一些自己在 Obsidian 上想用但是没有的功能。

如果其他人愿意一起做,也可以拉分支参与。

image

xink 是什么

xink 是一款本地优先的 Markdown 笔记桌面应用,提供写笔记最核心的三件事:

  • 目录管理:左侧是完整的笔记树,新建、重命名、移动、删除都在里面完成
  • Markdown 编辑:中间是编辑区,边写边自动保存
  • 实时预览:右边同步显示排版后的效果,随笔滚动

不需要注册账号,不上传云端,也不把你的文字转成某种私有格式。用任何编辑器打开那些 .md 文件,内容都在那里。

它适合这样的你

  • 记日常想法、读书笔记、工作备忘
  • 写技术文档,需要代码块高亮
  • 同时维护几个不同主题的笔记库(工作、学习、生活各一个)
  • 在意隐私,希望笔记牢牢握在自己手里

几个值得一看的地方

一、笔记就是文件,不被绑架

所有内容以 .md 明文存在本地目录里。想备份就复制文件夹,想换工具就直接拿走,没有任何迁移门槛。

做 XNotebook 的时候,大概是 16 年前,当时想的也是把所有的文档做本地保存,可以本地打开,不被编辑器所绑定,并且可以做本地 Git 仓库的管理,然后把笔记上传到云端的 Git 仓库里,以此做云端的同步和保存。

现在也是一样,其实我对 Obsidian 的用法也是一样的:就是本地保存,然后通过 Git 上传到仓库,在其他机器上同步。

二、左边目录、中间写作、右边预览

三栏布局,写完一段右边立刻呈现排版效果;滚动时两侧大致同步,不用在编辑和预览之间来回切换。

在编辑器中,我比 Obsidian 做得多的一点,就是把一些常用的 Markdown 语法以工具栏的形式放在了编辑器的最上面,可以快捷地输入,避免都以手工输入的方式来做。

三、可以开多个笔记库

工作、学习、个人各建一个库,切换只在一次点击之间。上次打开到哪,下次启动就回到哪。这也是参考 Obsidian,它可以同时管理多个文件库,每个库可以有不同的目录,可以快捷地来回切换。

四、原生速度,大文件也不慌

用 Rust 编写、GPU 加速渲染,底层采用适合大文本的数据结构,几 MB 的长笔记打开与滚动依然流畅。

这也是之前想用 Rust 做的原因之一吧。目前整个安装包编译下来只有 10.8 兆,至少在 Mac 上是 10.8 兆。这已经算是一个非常小的软件了,当然功能也是比较有限的。

五、该调的都能调,改完立刻生效

主题明暗、字体字号、缩进宽度、代码块配色、图片显示宽度、是否同步滚动……都集中在设置里,改完马上看到效果,不用重启。

怎么开始用

目前 xink 以源码方式构建运行(macOS 优先)。因为目前我的主要桌面操作系统是 macOS,虽然 Rust 是可以跨桌面操作系统的,但我目前测试的还是 Mac。如果其他人愿意参与,可以帮忙编译一下 Windows 和 Linux 上的这个应用。

cargo run                    # 直接运行
./scripts/build_macos.sh     # 打包成 .app / .dmg

首次编译会拉取一些较重的依赖,稍等一会儿属于正常现象。

写在最后

我们不想做一个"什么都有"的笔记软件,只想把写下来这件事做得干净、可靠、不打扰。

如果你也怀念那种"文件就在文件夹里"的踏实感,欢迎关注这个项目,一起把它做得更好。后续有可用版本发布,也会第一时间在这里告诉你。

关注我们,不错过下一次更新。也希望有人可以一起来参与玩一玩。

看完本文有收获?请分享给更多人,关注「黑光技术」,关注技术分享。

qrcode_helight_tech