Skip to content
/ tikibase Public

long-term knowledge management solution

License

Notifications You must be signed in to change notification settings

kevgo/tikibase

Repository files navigation

Tikibase

the un-database

Whatever note taking or knowledge base application you love and use today, it will be dated in 5 years and unsupported/unavailable in 10 years. All your data will be gone with it.

Tikibase is a knowledge base available on all current and future computers because it isn't based on a dedicated server or viewer application that might be unavailable on future devices. A Tikibase is pure human readable and machine parsable data, a collection of 100% standards-compliant Markdown files in a folder. You view, change, and organize these files using the text or Markdown editor of your choice. If your computer can display and edit text files, you can use your Tikibase on it. A powerful option for efficiently working on large Tikibases in the 2020s is VSCode Markdown IDE.

You manage changes to your knowledge base using a version control system like Git, Mercurial, or whatever they use in the future. The open-source CLI application in this repository is an optional linter that helps keep a Tikibase consistent by finding and fixing:

  • broken links/images pointing to non-existing local files or anchors
  • unreferenced files
  • documents linking to themselves
  • inconsistent heading capitalization and levels
  • duplicate headings
  • empty sections
  • missing footnote definitions and references
  • optional: missing backlinks, unknown headings, the order of headings

build status

installation

Download the binary for your platform or install from source:

  • install Rust stable
  • cargo install --git https://github.com/kevgo/tikibase.git
  • add ~/.cargo/bin to your shell's $PATH

usage

  • while working on Markdown files, run tikibase p. This "pitstop" command fixes all auto-fixable issues and lists the remaining ones.
  • in your tests/CI: run tikibase check (lists all issues)
  • to see all available commands: tikibase help

configuration

Create a file tikibase.json in your Tikibase directory. Use the linked JSON Schema for documentation and auto-completion of the options. Here is an example:

{
  "$schema": "https://raw.githubusercontent.com/kevgo/tikibase/main/doc/tikibase.schema.json",
  "bidiLinks": true,
  "ignore": ["Makefile"],
  "sections": ["foo", "bar"],
  "titleRegEx": "\\((\\w+)\\)$",
  "bidiLinks": true,
  "standaloneDocs": false
}
  • bidiLinks enables the bi-directional links feature
  • ignore files or directories in the current directory to ignore
  • sections if provided, allows only the given section names in the given order
  • standaloneDocs set to true to allow documents without links
  • titleRegEx allows shortening links to other notes. If provided, titles of links in occurrences sections contain the value captured by the given regular expression from the note title instead of the full note title

related

  • VSCode Markdown IDE provides IDE-grade refactoring for Tikibases and runs this tikibase linter for you.
  • Obsidian: a more fully featured Markdown-based knowledge base including its own editor/viewer and many plugins. Easier to get started but - like all application-based solutions - will become outdated and unavailable in the future, especially since it isn't open-source
  • TiddlyWiki: nice non-linear micro-wiki, similar concerns about long-term durability