- Notifications
You must be signed in to change notification settings - Fork8
⚡Rapid note management for the terminal.
License
shashwatah/jot
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Installation •Usage •Notes •Changelog •Build from Source •Dependencies •Contribute •License
Jot is a feature-stripped version of Obsidian focused on rapid note management through the terminal.
It uses the same format of storage as Obsidian, i.e. markdown files for notes, and local folders for vaults (and sub-folders).
Commands that encompass all basic needs are included. Each command has an alias (two letter abbreviation) to further increase rapidity.
$ cargo install jt
Downloadjt.exe (v0.1.2) and add it to your path.
The following example represents a general user flow when first usingJot.
$ jt vault newvault~/vaults
Here,newvault is the name of the vault, and '~/vaults' is the location where it will be created (this location should be an absolute fs path and exist already or jot will throw an error).
Providing no arguments tovault
command will list all vaults.
$ jt vault
Adding the '-l' flag will list all vaults with their locations.
$ jt vault -l
At this moment onlynewvault will be listed.
$ jt enter newvault
enter
command is also used to switch to other vaults.
$ jt note newnote
$ jt folder newfolder
note
andfolder
, both work similarly and create the corresponding items incurrent folder. When a vault is first created, thecurrent folder is set to its root.
jt open newnote
open
command will open the specified note with the editor set in config.
$ jt chdir newfolder
chdir
command will switch the current folder to the location mentioned.
Relative path to location from current folder has to be provided. Standard fs paths are accepted as valid input, like '../folder1/somefolder/'.
$ jt chdir ..
This will switch back to the root of vault.
$ jt opdir
opdir
command will open the current folder in the default file explorer.
$ jt list
When neededlist
command will print the dir tree of current folder.All notes will be highlighted inblue.
This is what the dir tree will look like with this vault's root as the current folder.
newvault├── newfolder └── newnote# highlighted in blue
Adding an item type (note orfolder) to thelist
command like so,
$ jt list note
will only list items of the specified type.
Commandremove
works as its name suggests, on all items (vault,note, orfolder).
$ jt remove note newnote
Commandsrename
andmove
are used similarly but take one additional argument each.
Commandrename
takes the new name as its third argument.
$ jt rename note newnote somenewnote
Commandmove
takes the new location as its third argument.
For vaults, path rules are same asvault
command and for other items, path rules are same aschdir
command.
$ jt move note newnote /newfolder/
These commands take the item type (vault,note, orfolder) as their first argument.
Commandvmove
is similar tomove
, but it moves an item (note orfolder) from the current folder of the current vault to the root of a different vault, and takes the name of this vault as an argument in place of location.
$ jt vmove note newnote somevault
Every keyword used so far (commands and item names) is interchangeable with its two letter alias, e.g.move
command can also be written as:
$ jt mv nt newnote /newfolder/
$ jt config
config
command will open the config file in the seteditor. By default this isnvim.
Specifying a config field as an argument will display its value without opening the config file itself.
$ jt config editor
Providing a value as an additional argument will update the field.
$ jt config editor code.cmd
Runjt without a command, or withhelp
command or-h flag for main help message.
$ jt
Usehelp
command or-h flag with a command to get corresponding help.
$ jt help vault
$ jt vault -h
- Jot is published oncrates.io as 'jt', since 'jot' wasn't available.
- As of now, Jot has only been tested onwindows (andWSL).
- App data is stored in config and data files in locations generated by thedirectories crate. Individual Vault data is stored in '.jot' folder inside each vault. It is advised that these files not be tampered with, since atm there's no way to automatically fix them.
- App data files are generated in their default state the first time a command is run, if they don't exist already. Vault data files are generated in their default state when a vault is created.
- App config has two fields:editor &conflict.
- editor by default is set tonvim andconflict totrue.
- conflict field tells jot if the editor conflicts with it for control over the terminal. Set it totrue for editors likenvim andfalse for editors likenotepad.
v0.1.2 :
Fix:
list
command could display items other than notes and folders.- process_path() couldn't collapse certain paths properly, andstd::fs::canonicalize doesn't work as intended on windows.dunce crate has been used to achieve the required function.
Feat:
opdir
command has been added to enable opening the current folder in the default file explorer.list
command can now filter items based on the item type provided.config
command can now open the config file in the set editor.
v0.1.1 :
- As advised byu/epage (github/epage) on my r/rustpost, commands are now represented by their full word, and the two letter abbreviations (previously serving as commands themselves) are now aliases for these commands.
- Updated docs.
Clone the repository and cd into the directory:
$ git clone https://github.com/shashwatah/jot.git$cd jot
Run the following command to install dependencies and build/compile the program.
$ cargo build
Then run the executable created in 'target/debug/' (or add it to your path).
Or, run the tool directly:
$ cargo run --*args*
Pass in commands and arguments after '--'.
- serde &toml have been used in tandem to read and write data files.
- clap has been used to create the command line interface.
- directories has been used to generate os-dependent config and data file locations.
- fs_extra has been used for recursive move of folders.
- dunce has been used as an alternative tostd::fs::canonicalize.
Contributions are welcome and appreciated! Please review thecontributing guidelines for more information on how to get involved.
MIT License | Copyright (c) 2024 Kumar Shashwat
About
⚡Rapid note management for the terminal.