Currently Working: * creating files * deleting files * editing files * viewing files * searching by id * git - Initialises repository - commits when a file is created or edited (except rename) - arbitrary git commands on repo with `kb git ....` * sql - Database is kept up to date when files are added, deleted or edited TODO: * Recreate database if deleted or freshly cloned * Add database to gitignore if not in normal location * Update database if edited without this tool * Create a git commit if files are deleted or renamed * makefile for install and test (currently just surecheck) |
||
---|---|---|
kb | ||
README.md |
Knowledge Base
This is a script that I use to manage my personal knowledge base. I have yet to find a tool that fits my requirements / desires so I decided to build one.
This is still in early stages of development so expect braking changes to come if you use it.
Goals
Mostly Plain Text
Most of my notes are currently in Markdown. This has a couple of advantages for me:
- I can read them anywhere
- I can version control them with Git
There may be some exceptions. I may wish to include links or images which I will version control with Git LFS; but for the most part, my notes are plain text.
Tags
Before starting this project, my notes were organised into folders. Unfortunately, this makes storing articles or notes that apply to different areas difficult. I would prefer a tag based system. This would allow a file to have multiple tags assigned to it.
Fast
I want to be able to retrieve my notes quickly by tag or by title. To do this, this tool will index notes using an SQLite database. This will not be version controlled.
Don't re-invent the wheel
I will be building on top of already great, fast tools such as RipGrep and FZF.