Skip to content
/ org-xob Public

org-exobrain. A knowledge management system inspired by zettlekasten, wikis, and all that's great about org-mode.

Notifications You must be signed in to change notification settings

vv111y/org-xob

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

org-exobrain (org-xob)

WIP: org-exobrain. A knowledge management system inspired by zettlekasten, wikis, and all that’s great about org-mode.

Screenshots

Coming soon…

Contents

Installation

MELPA not available for this release

If you installed from MELPA, you’re done. Just run one of the commands below.

Manual

Install these required packages:

  • org-super-links
  • org-ql (coming soon, can be skpped for now)
  • Other I believe these are part of current emacs versions: org, org-element, org-id, cl, cl-lib

Then put this file in your load-path, and put this in your init file:

(require 'org-xob.el)

File Setup

You need to set org-xob-dir, default value is “~/xob”. xob only looks at files in this directory.

There are 4 file types used by xob:

  • xob general knowledge base (KB) files. This is intended for long term material.
  • xob agenda files which are added to org-agenda-files. All ‘activity’ based content goes in these files and the files are treated as normal org files.
  • xob log files. These are similar to agenda files. All day node entries are added here in a date tree. When editing a xob node from a KB file, temporal based material (scheduling, clocking, etc) is sent instead to its corresponding entry in the day node. Only the current log file is added to org-agenda-files.
  • xob archive files. Any material sent here is ignored by the xob system and not included in agenda files.

Files are recognized by property headings loocated in the top 1K of the file:

#+PROPERTY: xob t lets xob know to use this file #+PROPERTY: xob-current-file t Current files are those where new material is sent: #+PROPERTY: xob-log t identifies a xob log file #+PROPERTY: xob-agenda t identifies a xob agenda file #+PROPERTY: xob-archive t identifies a xob archive file

If no current file is found for either of the file types, then a new numbered file is created and set as current.

(Coming soon) Likewise, if a file gets too big (based on org-xob-max-KB-filesize), then a new file of that type is created. Default file size value is 2^19 or 524,288 bytes.

Org Setup

org-xob fully relies on org-id and UUID formatted IDs. Please make sure that:

org-id-link-to-org-use-id is set to either: t, create-if-interactive, or create-if-interactive-and-no-custom-id

org-id-method is set to uuid

Usage

The central idea is presentation management where xob buffers are not associated with files but are instead treated like windows; they are a place where material is displayed and possibly edited. As such, all content is copied from the original location and pasted into a xob buffer. For current release v0.5, to edit a xob node (note, entry) an indirect buffer is created and narrowed to that entry. Next release will likely also copy the content and then provide syncing capabilities. This approach allows for great flexibility in interacting with your org files. Unlike zettlekasten approaches, there is no restriction on using a tree structure, you are free to have org headings in a node, vice-versa, and even nest nodes. Contextual material from both backlinks and forlinks are presented in a dedicated context buffer under ‘source’ headings. ie all backlinks go under the node backlinks heading, and similarly for the forlinks. You can alter what is displayed, simply the headings, their first paragraph, top section, subheadings, or the full content of that node. Future release will allow for associated material from other sources, such as org-ql searches, or internet content.

Commands

All commands will start org-xob if it has not started already. General commands are applicable anywhere, Edit buffer commands are relevant in the edit buffer, and Context buffer commands are relevant in that buffer.

Opening a current or new node via org-xob-get-node will open it in an edit buffer. All contextual material is sent to the context buffer. The edit buffer is a clone that is narrowed to the node entry. The context buffer is not read-only so that the headlines can be re-ordered to preference. Any additional content you enter will be ignored, except demoting source headings will screw up insertion of sub-tree content (will be fixed soon).

If the xob system is running, a timer will open a new log day entry at 12:00am. Opening any node for editing will add an entry to the log. (Coming soon): clocking, scheduling, and other org temporal material will apply to the log entry of a node, not the node itself. This applies to knowledge base nodes, not to nodes that are in designated agenda files.

General Commands
org-xob-get-nodeOpen or create node for editing
org-xob-insert-linkInsert a xob link (to a node) at point
org-xob-open-dayGo to the current day log entry
org-xob-todo-at-pointCreate a todo item, insert xob link to here
org-xob-remove-nodeRemove entry from system, but do not delete contents
Node Conversion
org-xob-heading-to-nodeConvert regular org entry to a xob node
org-xob-log-doneConvert a todo entry into a log entry
org-xob-add-node-labelsAdd labels in property drawer (not links)
org-xob-change-node-typeChange node type in property drawer
System Management
org-xob-startRequired: Start the xob system
org-xob-stopStopping saves state and cleans up
org-xob-rebuildGo through all xob files and rebuild xob data structures
Edit Buffer
org-xob-toggle-sidelineToggle the sideline window on/off
org-xob-show-backlinksShow node backlinks in context buffer
org-xob-show-forlinksShow node forlinks in context buffer
org-xob-ql-search(N/A) show ql search results in context buffer
org-xob-refresh-contextRefresh all the context sources in context buffer
Context Buffer
org-xob-clear-headingClear heading contents
org-xob-to-summaryShow first paragraph
org-xob-to-sectionShow section before first subheading
org-xob-to-node-treeShow only tree structure of source item
org-xob-to-full-nodeShow the complete source item
org-xob-refresh-contextRefresh context item at point

Tips

  • (Coming soon) You can customize settings in the package-name group.

Changelog

0.5

Initial release.

Credits

This package would not have been possible without the following packages:

  • org, org-id, org-element
  • org-super-links
  • org-ql

Development

Bug reports, feature requests, suggestions — I’ll try to keep up, please be patient, thanks.

License

GPLv3

About

org-exobrain. A knowledge management system inspired by zettlekasten, wikis, and all that's great about org-mode.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published