3 个版本

0.1.2 2023年1月3日
0.1.1 2023年1月3日
0.1.0 2023年1月3日

#2119 in 命令行工具

MIT 许可证

90KB
2K SLoC

Jeff

安装使用构建笔记

Jeff 是一款命令行笔记管理应用程序,类似于 Obsidian。

安装

使用 cargo 安装

$ cargo install jeff

使用

使用以下命令创建保险库

$ jf vault newvault ~/vaults 

在这里,newvault 是保险库的名称,而 '~/vault' 是其创建的位置(该位置应为绝对文件系统路径,并且已存在或 jeff 将引发错误)。

如果不对 vault 命令提供任何参数,则将列出所有保险库。

$ jf vault

提供 '-l' 标志将列出所有保险库及其位置。

$ jf vault -l

此时,只会列出 newvault

进入保险库

$ jf enter newvault

enter 命令也用于切换到其他保险库。

创建笔记和文件夹

$ jf note newnote
$ jf folder newfolder

notefolder 都可以类似地工作,并在 当前文件夹 中创建相应的项目。当首次创建保险库时,当前文件夹 被设置为根目录。

创建模板

为了避免编写像每周笔记这样的样板代码,jeff 提供了笔记模板。

# list all templates
$ jf template
# create and edit a new template "weekly_note"
$ jf template weekly_note

然后可以使用模板创建笔记,通过提供 --template (-t) 以及模板的名称。

# create a new note from the "weekly_note" template
$ jf note reflection --template weekly_note

# or equivalently
$ jf nt reflection -t weekly_note

在当前保险库中创建和编辑每日笔记

每日笔记存储在当前保险库的最高级别目录中的 YYYY-MM-DD.md。使用 jf today 将编辑任何现有每日笔记。如果没有每日笔记,系统将提示您创建一个。

# Create daily note YYYY-MM-DD? (y/n)
$ jf today 

更改文件夹

$ jf chdir newfolder

chdir 命令将当前文件夹切换到指定的位置。
必须提供从当前文件夹到位置的相对路径。接受标准文件系统路径作为有效输入,例如 ../folder1/somefolder/

$ jf chdir ..

这将切换回保险库的根目录。

打印当前文件夹的目录树

$ jf list

当需要时,list 命令将打印当前文件夹的目录树。所有笔记将以黄色突出显示,保险库将以红色突出显示,文件夹将呈现蓝色

这就是以该保险库的根目录作为当前文件夹时目录树将看起来像什么。

newvault        # red 
├── newfolder   # blue 
└── newnote     # yellow 

可以使用 jf config <item-name>-color <color> 配置突出显示的颜色。也可以使用 jf config <item-name>-color 设置颜色,这将显示包含所有可用选项的选择框。

将保险库颜色设置为红色

jf config vault-color red

使用选择设置文件夹颜色

jf config folder-color

文件系统操作

命令 remove 如其名所示,在所有项目(保险库、笔记或文件夹)上工作。

$ jf remove note newnote 

命令 renamemove 被以类似方式使用,但每个都需要一个额外的参数。

命令 rename 将新名称作为其第三个参数。

$ jf rename note newnote somenewnote

命令 move 将新位置作为其第三个参数。

对于保险库,路径规则与 vault 命令相同,对于其他项目,路径规则与 chdir 命令相同。

$ jf move note newnote /newfolder/

这些命令将项目类型(保险库笔记文件夹)作为其第一个参数。

命令 vmovemove 类似,但它将项目(笔记文件夹)从当前保险库的当前文件夹移动到另一个保险库的根目录,并使用该保险库名称作为参数而不是位置。

$ jf vmove note newnote somevault 

到目前为止使用的每个关键字(命令和项目名称)都可以与其两个字母别名互换,例如,move 命令也可以写成

$ jf mv nt newnote /newfolder/

处理 Jeff 的配置

$ jf config 

将显示当前配置。添加额外的参数,例如 jf config <config-type> <config-value 来设置特定值

$ jf config editor vim 

获取帮助

运行不带命令的 jf 或使用 help 命令或 -h 标志以获取主帮助信息。

$ jf

使用 help 命令或 -h 标志与命令一起使用,以获取相应的帮助。

$ jf help vault
$ jf vault -h

构建

克隆仓库并进入目录

$ git clone https://github.com/DevinLeamy/Jeff
$ cd Jeff

运行以下命令以安装依赖项并构建/编译程序。

$ cargo build 

然后运行在 'target/debug/'(或将其添加到您的路径)中创建的可执行文件。

或者,直接运行工具

$ cargo run -- *args*

在 '--' 后传递命令和参数。

测试

可以使用

$ cargo test -- --test-threads=1

笔记

Jeff 是由 jot 引导的,但最终成为了一个带有新功能、不同设计和开源维护的全面重写。欢迎贡献!

依赖关系

~4–16MB
~140K SLoC