# pyzet
[![Tests](https://github.com/tpwo/pyzet/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/tpwo/pyzet/actions/workflows/tests.yml)
> "I, of course, do not think everything by myself. It happens mainly
> within the Zettelkasten".
`pyzet` is a CLI tool targeted at note-taking and personal knowledge
management loosely inspired by the Zettelkasten approach, hence the
name. The whole workflow is centered around Git repos where notes are
stored.
## Installation
Prerequisites:
* Python 3.8+
* Git 2.25+ (but older also should be fine)
Unix and Windows are supported. You can install pyzet with pip:
pip install pyzet
## Tutorial
For the quick setup for the either platform (make sure to create missing
folders):
pyzet sample-config unix > ~/.config/pyzet/pyzet.yaml
pyzet sample-config windows | Set-Content ~/.config/pyzet/pyzet.yaml
Run `pyzet init` to create Git repo.
You can read the more detailed tutorial in
[docs](https://github.com/tpwo/pyzet/blob/main/docs/tutorial.md).
## Configuration
A config file should be placed inside `~/.config/pyzet/pyzet.yaml`, and
looks like this:
```yaml
repo: ~/zet
editor: /usr/bin/vim
editor_args: []
```
* `repo`: the location of the ZK Git repo
* `editor` (default: `/usr/bin/vim`): path to the editor used to add and
edit zettels
* `editor_args` (default: empty): optional list of CLI arguments which
should be passed to the editor
### Support for multiple ZK repos
You can have multiple repos, and only a single config file, because
there is `--repo` flag that you can always set to point to a custom repo
(and possibly, create an alias that includes it). If `--repo` flag is
used, the value from YAML is ignored.
## Supported editors
See [docs](https://github.com/tpwo/pyzet/blob/main/docs/supported-editors.md).
## Writing parsable zettels
See [docs](https://github.com/tpwo/pyzet/blob/main/docs/zettel-formatting.md).
## Development installation
Development dependencies are stored in `requirements-dev.txt`. To
install the package in editable mode with the dev dependencies run the
following after cloning the repo:
pip install -e .
pip install -r requirements-dev.txt
For running tests more easily, you might also want to install `tox`:
pip install tox
Then you can easily run:
tox -e coverage # pytest with test coverage
tox -e pre-commit # run pre-commit checks on all files
## Building
tox # runs all tox envs making sure tests pass
pyproject-build # builds both the wheel and source dist
twine check dist/* # checks if the build isn't completely broken
twine upload dist/* # asks for username and password
It's best to use token (`__token__` as username) for the last command.
## Inspiration and further reading
[`@rwxrob`](https://github.com/rwxrob) inspired me to write a
stand-alone tool for note taking rather than use a ready solution. He
posted a good summary in [this video](https://youtu.be/26X2onaKGc0).
See also:
* Two essays by the creator of Zettelkasten, Niklas Luhmann\
<https://luhmann.surge.sh/>
* Even simpler approach to Zettelkasten\
<https://gsilvapt.me/posts/poor-man-zettel/>
* *Simple, Non-Commercial, Open Source Notes*, a great video about tools
to do note-taking\
<https://youtu.be/XRpHIa-2XCE>
Raw data
{
"_id": null,
"home_page": "https://github.com/tpwo/pyzet",
"name": "pyzet",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "cli,git,markdown,notes,zettelkasten",
"author": "Tomasz Wojdat",
"author_email": "tpwojdat@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ae/3d/ef9517e080b16fd3088b51e00b3f24ba9b896f99539a3bbdfb230659f8df/pyzet-0.10.0.tar.gz",
"platform": null,
"description": "# pyzet\n\n[![Tests](https://github.com/tpwo/pyzet/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/tpwo/pyzet/actions/workflows/tests.yml)\n\n> \"I, of course, do not think everything by myself. It happens mainly\n> within the Zettelkasten\".\n\n`pyzet` is a CLI tool targeted at note-taking and personal knowledge\nmanagement loosely inspired by the Zettelkasten approach, hence the\nname. The whole workflow is centered around Git repos where notes are\nstored.\n\n## Installation\n\nPrerequisites:\n\n* Python 3.8+\n* Git 2.25+ (but older also should be fine)\n\nUnix and Windows are supported. You can install pyzet with pip:\n\n pip install pyzet\n\n## Tutorial\n\nFor the quick setup for the either platform (make sure to create missing\nfolders):\n\n pyzet sample-config unix > ~/.config/pyzet/pyzet.yaml\n pyzet sample-config windows | Set-Content ~/.config/pyzet/pyzet.yaml\n\nRun `pyzet init` to create Git repo.\n\nYou can read the more detailed tutorial in\n[docs](https://github.com/tpwo/pyzet/blob/main/docs/tutorial.md).\n\n## Configuration\n\nA config file should be placed inside `~/.config/pyzet/pyzet.yaml`, and\nlooks like this:\n\n```yaml\nrepo: ~/zet\neditor: /usr/bin/vim\neditor_args: []\n```\n\n* `repo`: the location of the ZK Git repo\n\n* `editor` (default: `/usr/bin/vim`): path to the editor used to add and\n edit zettels\n\n* `editor_args` (default: empty): optional list of CLI arguments which\n should be passed to the editor\n\n### Support for multiple ZK repos\n\nYou can have multiple repos, and only a single config file, because\nthere is `--repo` flag that you can always set to point to a custom repo\n(and possibly, create an alias that includes it). If `--repo` flag is\nused, the value from YAML is ignored.\n\n## Supported editors\n\nSee [docs](https://github.com/tpwo/pyzet/blob/main/docs/supported-editors.md).\n\n## Writing parsable zettels\n\nSee [docs](https://github.com/tpwo/pyzet/blob/main/docs/zettel-formatting.md).\n\n## Development installation\n\nDevelopment dependencies are stored in `requirements-dev.txt`. To\ninstall the package in editable mode with the dev dependencies run the\nfollowing after cloning the repo:\n\n pip install -e .\n pip install -r requirements-dev.txt\n\nFor running tests more easily, you might also want to install `tox`:\n\n pip install tox\n\nThen you can easily run:\n\n tox -e coverage # pytest with test coverage\n tox -e pre-commit # run pre-commit checks on all files\n\n## Building\n\n tox # runs all tox envs making sure tests pass\n pyproject-build # builds both the wheel and source dist\n twine check dist/* # checks if the build isn't completely broken\n twine upload dist/* # asks for username and password\n\nIt's best to use token (`__token__` as username) for the last command.\n\n## Inspiration and further reading\n\n[`@rwxrob`](https://github.com/rwxrob) inspired me to write a\nstand-alone tool for note taking rather than use a ready solution. He\nposted a good summary in [this video](https://youtu.be/26X2onaKGc0).\n\nSee also:\n\n* Two essays by the creator of Zettelkasten, Niklas Luhmann\\\n <https://luhmann.surge.sh/>\n\n* Even simpler approach to Zettelkasten\\\n <https://gsilvapt.me/posts/poor-man-zettel/>\n\n* *Simple, Non-Commercial, Open Source Notes*, a great video about tools\n to do note-taking\\\n <https://youtu.be/XRpHIa-2XCE>\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Simple note-taking with CLI & Git integration.",
"version": "0.10.0",
"project_urls": {
"Homepage": "https://github.com/tpwo/pyzet"
},
"split_keywords": [
"cli",
"git",
"markdown",
"notes",
"zettelkasten"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9bec310c6f1b73b80bad5e090a911b63f021db103e48985883d94557ed27c8c1",
"md5": "217591212ebface2bc178335a24fc0de",
"sha256": "35021c108188bbf3e9e8515a5159fed9b32e9a84a7c198505eff647eba33f1f5"
},
"downloads": -1,
"filename": "pyzet-0.10.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "217591212ebface2bc178335a24fc0de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 22686,
"upload_time": "2024-01-16T23:13:36",
"upload_time_iso_8601": "2024-01-16T23:13:36.607973Z",
"url": "https://files.pythonhosted.org/packages/9b/ec/310c6f1b73b80bad5e090a911b63f021db103e48985883d94557ed27c8c1/pyzet-0.10.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae3def9517e080b16fd3088b51e00b3f24ba9b896f99539a3bbdfb230659f8df",
"md5": "4e1444af15b99b8ad58bb0d06167128d",
"sha256": "5da50d2d0d04f2330d0cc9c7c7e9038f52e4e343bf2c922d756af9b01403d31a"
},
"downloads": -1,
"filename": "pyzet-0.10.0.tar.gz",
"has_sig": false,
"md5_digest": "4e1444af15b99b8ad58bb0d06167128d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 20206,
"upload_time": "2024-01-16T23:13:38",
"upload_time_iso_8601": "2024-01-16T23:13:38.457914Z",
"url": "https://files.pythonhosted.org/packages/ae/3d/ef9517e080b16fd3088b51e00b3f24ba9b896f99539a3bbdfb230659f8df/pyzet-0.10.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-16 23:13:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tpwo",
"github_project": "pyzet",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "pyzet"
}