Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devinleamy/jeff
Command line notes made easy
https://github.com/devinleamy/jeff
Last synced: about 1 month ago
JSON representation
Command line notes made easy
- Host: GitHub
- URL: https://github.com/devinleamy/jeff
- Owner: DevinLeamy
- License: mit
- Created: 2022-10-31T00:30:52.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-03T01:53:38.000Z (almost 2 years ago)
- Last Synced: 2024-11-16T18:15:55.288Z (about 1 month ago)
- Language: Rust
- Homepage:
- Size: 3.49 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# *Jeff*
Installation •
Usage •
Build •
Notes***Jeff*** is a command line note management app, similar to Obsidian.
## Installation
#### ***Install with cargo:***
```bash
$ cargo install jeff
```## Usage
#### ***Create a vault using the following command:***
```bash
$ jf vault newvault ~/vaults
```Here, ***newvault*** is the name of the vault, and '***~/vault***' is the location where it will be created (this location should be an absolute fs path and exist already or `jeff` will throw an error).
Providing no arguments to `vault` command will list all vaults.
```bash
$ jf vault
```Adding the '***-l***' flag will list all vaults with their locations.
```bash
$ jf vault -l
```At this moment only ***newvault*** will be listed.
#### ***Enter into the vault:***
```bash
$ jf enter newvault
````enter` command is also used to switch to other vaults.
#### ***Create notes and folders***
```bash
$ jf note newnote
``````bash
$ jf folder newfolder
````note` and `folder`, both work similarly and create the corresponding items in ***current folder***. When a vault is first created, the ***current folder*** is set to its root.
#### ***Create templates***
To avoid having to write the boilerplate for things like weeks notes, `jeff` provides note templates.
```bash
# list all templates
$ jf template
``````bash
# create and edit a new template "weekly_note"
$ jf template weekly_note
```Notes can then be created using a template by supplying `--template (-t)` along with the name of the template.
```bash
# create a new note from the "weekly_note" template
$ jf note reflection --template weekly_note# or equivalently
$ jf nt reflection -t weekly_note
```#### ***Create and edit daily note in the current vault***
Daily notes are stored as `YYYY-MM-DD.md` at the top-level the current vault. `jf today` will edit any existing daily note. If no daily note exists,
you will be prompted to create one.```bash
# Create daily note YYYY-MM-DD? (y/n)
$ jf today
```#### ***Change folder***
```bash
$ jf 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/`.```bash
$ jf chdir ..
```This will switch back to the root of vault.
#### ***Print dir tree of current folder***
```bash
$ jf list
```When needed `list` command will print the dir tree of current folder.
All notes will be highlighted in ***yellow***,
vaults will be highlighted in ***red***, and folders will appear ***blue***.This is what the dir tree will look like with this vault's root as the current folder.
```bash
newvault # red
├── newfolder # blue
└── newnote # yellow
```
The highlight colors can be configured using `jf config -color `. Colors can also be set using `jf config -color`, which displays a select containing all available options.Set vault color to red
```bash
jf config vault-color red
```
Set folder color using selection
```bash
jf config folder-color
```#### ***Fs operations***
Command `remove` works as its name suggests, on all items (vaults, notes, or folders).
```
$ jf remove note newnote
```Commands `rename` and `move` are used similarly but take one additional argument each.
Command `rename` takes the new name as its third argument.
```bash
$ jf rename note newnote somenewnote
```Command `move` takes the new location as its third argument.
For vaults, path rules are same as `vault` command and for other items, path rules are same as `chdir` command.
```bash
$ jf move note newnote /newfolder/
```These commands take the item type (***vault***, ***note***, or ***folder***) as their first argument.
Command `vmove` is similar to `move`, but it moves an item (***note*** or ***folder***) 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.
```bash
$ jf 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:
```
$ jf mv nt newnote /newfolder/
```#### ***Handle Jeff's config***
```bash
$ jf config
```
Will display the current configuration. Add additional arguments, `jf config