Skip to content

kevgo/tikibase

Repository files navigation

Tikibase: the un-database

build status

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 Zettelkasten-like knowledge base consistent by finding and fixing:

  • missing backlinks: if a document links to another document, the other document must also link back to the first document
  • unknown or unordered headings: you can define the allowed headings and in which order they should occur - this helps keep a knowledge base organized
  • unreferenced files: all Markdown files must link to at least one other file

In addition, Tikibase provides the usual Markdown linting like:

  • broken links/images pointing to non-existing local files or anchors
  • documents linking to themselves
  • inconsistent heading capitalization and levels
  • duplicate headings
  • empty sections
  • missing footnote definitions and references

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

About

long-term knowledge management solution

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •