3 个版本

0.1.2 2022年8月31日
0.1.1 2021年9月8日
0.1.0 2021年9月8日

#2321命令行工具

Apache-2.0

33KB
703

zest

一个个人笔记管理 CLI 工具。

快速开始

  1. 安装 zest: cargo install zest-cli
  2. 创建你的配置文件
# The path is ~/.config/zest/config.yml

# List the paths you use here
paths:
  - ~/notes/
  1. 添加笔记,格式简单:Markdown + 顶部元数据
---
# Metadata is in yaml

# The tags you can to apply on this file
tags:
  - foo
  - bar
---

# Title

It is recommended to add a title to your file
You can link to other notes with normal markdown links: [mylink](myfile)
  1. 运行 zest init
  2. 使用 zest search 搜索

搜索

zest 查询实际上是 tantivy 查询,以下是可以查询的字段

  • file: 包含笔记的文件(路径的任何部分)
  • tag: 用于此笔记的标签
  • ref: 笔记的外部引用
  • title: 标题中包含的内容
  • content: 内容中包含的内容

默认情况下,搜索词应用于 titlecontent 字段。

示例

包含 foo 的笔记

zest search foo

标记为 foo 的笔记

zest search tag:foo

引用 foo 的笔记

zest search ref:foo

引用 foo 且标记为 bar 的笔记

zest search ref:foo AND tag:bar

理念

zest 是一个笔记管理工具(或知识库管理器),允许你在知识库中创建、搜索和显示笔记。

它旨在用于类似于 Zettelkasten 的工作流程,其中每个笔记都是自己的文件(完整路径是笔记的 ID)。然后你可以使用文件中的元数据为此文件添加标签,并添加其他笔记的链接。

CLI 设计灵感来源于 notmuch 邮件索引器,它只进行邮件索引和查询,就像 zest 一样。

设计时考虑了脚本,因此很容易将 zest 集成到你的编辑器中。

总结一下,以下是设计目标

  • 搜索必须快速
  • 插入和更新笔记可能需要一点时间
  • 编写笔记应使用 Markdown

性能

zest依赖于tantivy来执行索引和搜索部分。因此,索引的速度将极大地取决于您的SSD/HDD速度。

在我的机器上,使用一个极其缓慢的HDD,索引整个数据库(目前还不是很大)需要长达10秒的时间。

查询通常非常快,我可以在大约0.1秒内收集到当前文件的全部引用。

待办事项

  • 增加更多查询功能,目前仅支持tantivy查询,希望有嵌套查询功能
  • 增加编辑器支持(Nvim支持正在进行中)

依赖项

~20–31MB
~435K SLoC