Giter VIP home page Giter VIP logo

org-brain's Introduction

org-brain http://melpa.org/packages/org-brain-badge.svg

org-brain implements a variant of concept mapping in Emacs, using org-mode. It is heavily inspired by a piece of software called The Brain (but currently with a more limited feature set), you can view an introduction to that program here.

You can think of org-brain as a combination of a wiki and a mind map, where each wiki page / mind-map node is an org-mode file which resides in your org-brain-path (a directory containing all your org-brain files). These files are called entries. Entries can link to other entries, and you can then view the network of links as a mind map, using M-x org-brain-visualize.

PINNED:  Index


               / Python              Game development / Game design
               / Programming books           |
   Programming / Emacs                       |
         |                                   |
         *-----------------*-----------------*
                           |
                           V
                    Game programming

Game Maker  Unity

-----------------------------------------------

- https://en.wikipedia.org/wiki/Game_programming

/* Gamasutra Articles
   - Passing Through Ghosts in Pac-Man
   - In-House Engine Development: Technical Tips

/* Brainchildren

Above is a visualization of the game programming entry (as can be seen in the middle). Above the entry title we can see that the entry has two parents (other entries which link to game programming): programming and game development. You can also see the siblings and which parent they come from: python, programming books, emacs, and game design. Below the entry title we can see the children of the entry: Game Maker and Unity. At the very top you’ll find pinned entries (entries which will be shown independent of the visualized entry).

At the bottom the entry’s table of contents (headlines in the buffer) is shown: Gamasutra Articles and Brainchildren. You can also see the resources of the entry: the two Gamasutra articles and the Wikipedia link. Resources can be org-mode links in the entry file, or org attachments.

The parents, children, siblings, headlines and resources are all links; they can be pressed to visualize other entries, visit resources etc.

Setup and requirements

The easiest way is to get org-brain from MELPA. If you do not want to do that, here’s the steps to install it manually:

  1. org-brain requires Emacs 25, org-mode 9 and dash. These need to be part of your Emacs.
  2. Download org-brain.el, add it to your load-path, and put (require 'org-brain) in your init-file.
  3. Configure org-brain-path (defaults to /brain in your org-directory) to a directory where you want to put your org-brain files.

Usage

You can use M-x org-brain-open to open an entry (or create a new one) in your org-brain for editing. In order to link to other entries, use an org-mode link with brain: type, its easiest to use C-c C-l brain: TAB or M-x org-brain-insert-link. If you want to pin an entry, add a line #+BRAIN_PIN: in the entry file.

M-x org-brain-agenda can be used to run org-agenda on your org-brain files. You might also want to rename one of your entries; use M-x org-brain-rename-entry to do this. This will only change the filename and entry name, not the #+TITLE of the entry.

You can use M-x org-brain-visualize to choose an entry which will be visualized. While in org-brain-visualize-mode you can easily navigate your org-brain, add children/parents etc, using the following keybindings:

j / TABGoto next link
k / S-TABGoto previous link
cAdd child
pAdd parent
lAdd resource link
C-yPaste resource link
aAdd resource attachment
oOpen and edit the visualized entry
fFind/visit another entry to visualize
rRename this, or another, entry

When adding children or parents using org-brain-visualize, you can add multiple entries by using org-brain-batch-separator, ; by default, to separate the entries. For instance pressing c and then guitar; mandolin;banjo would add guitar, mandolin and banjo as children. Currently it isn’t possible to use completion when batch entering children/parents, so it is best used for adding non-existing entries.

If you add children to a file with org-brain-visualize, the links to the child entries will be added under the first headline in the file with the brainchildren tag. If this headline doesn’t exist, a headline named Brainchildren will be created and will be given the tag. If you want another default name for these headlines, you can customize org-brain-children-headline-default-name.

If you add resources via org-brain-visualize they will be entered inserted under the current heading in the visualize buffer (link resource will be added as list items at the top of the heading in the entry file). If you’re not under a heading in the visualize buffer, the resources will be added to Brainchildren, as in the case with adding new children.

Other useful packages

There’s some missing functionality in org-brain, which could be useful, especially regarding finding text etc. However, there are many other packages for org-mode which might implement some of the features you seek. Below are some suggestions (feel free to create an issue or send a pull request if you have more examples).

An Emacs mode for quickly browsing, filtering, and editing directories of plain text notes, inspired by Notational Velocity.

You can add the function below to your init-file.

(defun org-brain-deft ()
  "Use `deft' for files in `org-brain-path'."
  (interactive)
  (let ((deft-directory org-brain-path)
        (deft-recursive t)
        (deft-extensions '("org")))
    (deft)))

It searches both headings and contents of entries in Org buffers, and it displays entries that match all search terms, whether the terms appear in the heading, the contents, or both.

You can add the function below to your init-file.

(defun helm-org-rifle-brain ()
  "Rifle files in `org-brain-path'."
  (interactive)
  (helm-org-rifle-directories (list org-brain-path)))

org-board is a bookmarking and web archival system for Emacs Org mode, building on ideas from Pinboard. It archives your bookmarks so that you can access them even when you’re not online, or when the site hosting them goes down.

Disclaimer

org-brain is a new package, and it may have speed issues if the number of org-mode entries get high (I haven’t tried it with thousands of entries).

org-brain's People

Contributors

kungsgeten avatar trevoke avatar rsuhada avatar

Watchers

Pavel Tokarev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.