Skip to content
/ qualia Public

An extensible graph-based knowledge store.

Notifications You must be signed in to change notification settings

tejasvi/qualia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qualia

An extensible graph based knowledge store.

Features

  • Vim based plain-text file UI.
  • Fuzzy search.
  • No syntax.
  • Multi-parent nodes.
  • End-to-end encryption.
  • Syncing with Git.
  • Realtime sync using Firebase.
  • Robust conflict resolution.
  • Automated backups.

Quick start

  1. Run in browser

    • Uses recommended config for best experience.
    • It may take a couple of minutes to load if not used by someone recently.
    • After startup click on Terminal in the middle.
  2. Install locally

    • Add Plug 'tejasvi/qualia' to Vim config and then restart.
    • Do :PlugInstall|UpdateRemotePlugins.
    • Run with vi .q.md or :e .q.md.
    • Shortcuts use <Leader> which is assumed to be Space in the readme.

Usage

File name corresponds to a specific node. The node descendants are displayed in form of nested list under the current node's content.

Current node content.
Can contain multiple lines.
* First child content.
  [Image](https://i.imgur.com/6O265V5.jpg)
* Second child content
    * Further descendants can be displayed.
      ```
      print("Second child's child")
      ```
What is Vim?
Vim is a text editor with a "normal" mode and an editing mode. Cursor movement and scrolling can be done with mouse.
i to start editing.
Esc to switch back to "normal" mode.
Ctrl+o to go to last location.
yy to copy current line.
p to paste below current line.
<< and >> to indent left and right.

Following shortcuts apply to the node under cursor.

Action Shortcut
Toggle descendants Spacej
Hoist node Spacek
Invert links (transpose) Spacel

To add a child node, create a list item. To duplicate a node, copy and paste the node content lines. To unlink, delete the lines.

How it works?
Each node line contains a unique identifier concealed using Vim's :h conceal. To toggle identifier visibility press co.

Trivia

  • Files are used for displaying content instead of storing.
  • File names are "pointers" to nodes and file path is irrelevant.
    E.g. Node "a" can be opened with vi a.q.md from anywhere.
  • Spacep to toggle parsing of buffer changes. Useful during advanced node manipulation.
  • Space/ to fuzzy search nodes containing specific term and Space? to fuzzy search all nodes.
  • SpaceL to open inverted connection graph and SpaceK to hoist node in a new buffer.
  • :ListOrphans to list unaccessible nodes not linked by others. :RemoveOrphans to delete orphan nodes.
  • The node connections form directed cyclic graph with ordered vertices.
  • See config.py for advanced configuration.
  • Qualia is currently sparse on documentation due to planned decentralized community support.

Comparison with existing tools

Vimflowy

  • Limited markdown syntax.
  • Node can not be simultaneously expanded and collapsed at different locations.
  • Ancestor node can not be added as a descendant.
  • Does not support multi-line content in a node.
  • Limited node graph manipulation capabilities.
  • No E2E encryption during sync.
  • Vim _emulation_ vs Vim.

Workflowy

  • Not markdown.
  • Not keyboard-centric.
  • Paid and closed-source.
  • Data loss possible during sync conflict resolution.
  • Limited node graph manipulation capabilities.
  • Multi-line notes are second-class.
  • No E2E encryption during sync.

Roam Research

  • Paid and closed-source.
  • Not markdown.
  • Not key-board centric.
  • Limited node graph manipulation capabilities.
  • Extremely slow UI.
  • No E2E encryption during sync.
  • Data loss possible during sync conflict resolution.

Obsidian

  • Closed-source.
  • Transclusion only in preview mode.
  • Not keyboard-centric.
  • UX suitable only for multi-line notes.
  • Limited node graph manipulation capabilities.

About

An extensible graph-based knowledge store.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published