Create and open notes in your favourite editor.
Project description
Take Note
Create and open notes in your favourite editor.
Features
- Written in Python with no runtime dependencies.
- Works on Python 3.8 - 3.11.
- Open notes files for specified week using the
code
command line for VS Code.- --thisWeek, --lastWeek and --nextWeek are supported.
- Organises notes in a date based folder structure from your root notes folder, e.g. 2023/08
- set the root notes folder using --notesFolder
- Choose which editor to use with --editor
- Specify a VS Code workspace to open along with the note file with --workspace
- This will override the --editor setting to
code
- This will override the --editor setting to
- Specify a template file relative to the root notes folder to use when a new file is created using --template. This also performs a simple replacement of the text HEADER_DATE with the date formatted as "%A %d %B %Y" to use in the document title.
- Support for batch creation of files in advance. This is useful if you use a device where you can edit files, but can't easily create them. Use --batch 5 along with any of the --*Week options to create that week and the following 4 weeks too.
Future features
- Support for daily notes options.
Installation
pipx
The recommended way to install the published package is through pipx.
# from PyPI
pipx install take-note-cli
# direct from github
pipx install git+https://github.com/wsinned/take-note
Usage
Command Line
Specify a folder using the --notesFolder option, otherwise $HOME/Notes will be used A week option must be supplied from --thisWeek, --lastWeek or --nextWeek
take-note --notesFolder=$HOME/MyNotes --thisWeek
A note will be created in the under the MyNotes/YYYY/mm folder named with the date of the Monday of this week, e.g. 2023-08-07-Weekly-log.md
Aliases
Setting up aliases in you preferred shell is a great way to make accessing your notes quick and easy.
notes_folder="$HOME/SomePath/MyNotes"
args="--notesFolder $notes_folder --workspace notes.code-workspace --template Home-weekly-log-template.md"
alias thisWeek="take-note --thisWeek $args"
alias nextWeek="take-note --nextWeek $args"
alias lastWeek="take-note --lastWeek $args"
All you have to do now is type one of the following to open the desired note file.
> thisWeek
> lastWeek
> nextWeek
Other Installation Methods
Virtual Environment
python -m venv venv
source venv/bin/activate
venv/bin/pip install -r requirements.txt
# install with tests as editable src
venv/bin/pip install -e .
Development
Nix & NixOS
The supplied shell.nix definition provides support for entering a nix-shell directly in the repository with all dependencies.
nix-shell --run zsh # ensure using zsh over default bash session
# only needed once, or to recreate the virtual environment
python -m venv venv
source venv/bin/activate
# install with tests as editable src
venv/bin/pip install -e '.[test]'
# run the tests
pytest
# close the virtual environment and exit the shell when done
deactivate
exit
Other Linux or macOS
# only needed once, or to recreate the virtual environment
python -m venv venv
source venv/bin/activate
venv/bin/pip install -r requirements.txt -r requirements.dev.txt
# install with tests as editable src
venv/bin/pip install -e '.[test]'
# run the tests
venv/bin/pytest
# close the virtual environment when done
deactivate
Linting
The project uses ruff for linting and optionally for formatting.
venv/bin/ruff . --config pyproject.toml
Build & Publish
From an installed and tested venv, do the following:
# check the version:
cat src/takenote/__version__.py
# build the package
venv/bin/pyproject-build
# publish the package
venv/bin/twine upload dist/*
Credentials for twine should be either: - stored in .pypirc in the [pypi] section - entered at the prompt, username = token and password = your_api_key
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for take_note_cli-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64bf913abdbf1c9e8916c514b8163c8163ab4944b07fae8dba5eb0c276b05959 |
|
MD5 | a8578faf1a7d3d53af39f6cb5db70a9b |
|
BLAKE2b-256 | afc3dd49b7b346fb15e0baeeb8561b664426189ec2b2bf895ae624cd0146cd9f |