Skip to main content

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
  • 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

take_note_cli-1.2.0.tar.gz (5.6 kB view hashes)

Uploaded Source

Built Distribution

take_note_cli-1.2.0-py3-none-any.whl (7.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page