KOutliner

Created: 2020-09-22T01:38:44+00:00

Return to the Index

1. First impression was, "I have org-mode why do I care about this?"

1a. Annoyed that "it isn't org-mode."

1a1. Key bindings like C-j instead of Alt-Ret.

2. I do like that each "cell" has its own path. It is possible to
say "go to cell 1.2.3" or "1b3," wheras in org you can only go
to a named headline.

2a. In a sense org is designed to be used with yet more tools. Tools
like counsel and helm make it easier to select nodes
interactively when you go to refile or such.

2b. These tools are powerful but add more complexity to the emacs
installation.

3. Easily broken, tries to be clever

3a. In org what you see is mostly all there is. Then formatting
operators are used to make parts of that pretty. And code
folding is used to hide things you don't want to see. There
are fragments of ex. "property drawers" here and there.

3b. org is basically a helper that edits text that looks org-ish,
but hides nothing from you unless it's been asked to. You can
easily create and manipulate structure with non-org functions
as long as they "look org-y" in the end.

3c. Kotl wants to take things over and misses a few
spaces. Sometimes when creating a new node while in a node
with multiple lines, you will get another node element in the
wrong spot. The clever editing routines then prevent you from
fixing the markup.

4. Uses up some of your magic

4a. Kotl consists of separate header, content, data, metadata
pages which are hidden using narrow. This means you cannot
use the narrowing for your own purposes, as one can do in org
to focus on particular subtrees.

5. Based around the NLS/Augment design

5a. I think this is where kotl really starts to make more
sense. Compared to org-mode it is not that special. Org had
more utilities, more support, recognition, even some tools
outside of emacs support it. But NLS/Augment is about
paragraph-level "statements" and not big headlines with contents.

5b. For example in org you can link to a headline, and possibly
use unique ids to track headlines as they get refiled
around. But the contents of those headlines does not exist
from a logistical standpoint.

5c. In kotl and in NLS/Augment, each "statement" or paragraph is
it's own "headline." This does not strictly matter up front.

5d. Where each thing having its own identifiers starts to matter
is that you can link between one paragraph to another
paragraph and that link stays alive when the paragraph is
moved around in the document.

5e. So strictly kotl is worse; it does not do TODOs like org does
unless you bring your own scripting. It does not have all the
extreme navigation aids like helm-org-rifle. It does not have
extensive support to publish documents or outlines with.

5f. Kotl becomes interesting instead through the lens of
NLS/Augment: when conjoined with the "buttons" support of
hyperbole and other documents written with those buttons in
mind.

5f1. You write documents in outlines such that each paragraph
is numbered. Those documents then explain some particular
thing and perhaps they cite other things. The citations
are implicit or explicit "buttons" which link back to say,
an e-mail message thread where some decision was made. The
outline then ties all the relevant messages together with
buttons and is itself a new document that can be referenced.

5f2. So think org-mode, but each paragraph silently has its own
UUID that can be linked to from anywhere else in the
project.

6. Uses serial numbers to identify all things, but then also has
relative paths.

6a. These are written to the file but hidden through emacs
magic. So each bullet point actually begins with some "0145"
type number and then the contents of that cell.

6a1. The leading zero signifies an absolute ID.

6b. Unique serials identify the bullet point, content and
structure (via indentation) but meta-data is kept on a
separate hidden "page."

6b1. The meta-data is a list of s-expressions which hold the
serial number for the cell they refer to.