KOutliner

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

Return to the Index

This card can also be read via Gemini.

   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.