⚡️ Ideas
Bruce F. Donnelly Bruce F. Donnelly Aug 20, 2024

Long-form node

Explain the problem as you see it

If Tana wants to be used for note-taking and outlining, it needs to make writing essays easy. Some of the best learners write essays to learn. An outliner builds an outline for an essay or thesis, so Tana needs a workflow that gets the user to one.

Meanwhile, Tana is heavily structured, so free-form & long-form writing couldn't be more out of character. If you write an essay separately without linking back, you might write in Word on the side. Users should be able to drill down from a claim back to notes and sources.

Why is this a problem for you?

I want to be able to take notes, summarize them into points, and arrange them into essays, theses, and so on. I can get to an outline in Tana, but then I have to go outside Tana to write it out. I want to drill down from a readable page to the original notes and highlights.

Suggest a solution

Superficially, this sounds like it only requires some tweaks. Line breaks inside a node
would be useful for some nodes, but it wouldn't help to close the gap between an outline and formatted written output. Long-form writing in Tana is a great idea, but it needs to address the structure of an outline.

I would create a kind of node that formats an outline:

  1. The user would highlight an outline and use a command to insert it into a long-form node.
  2. Initially, the bullets would appear within the long-form node just as in the original outline. They would render it as a single unbroken paragraph of inline text.
  3. The user could then use tags to wrap individual lines or sets of lines in tags. One tag would be <contextual text>, for text used only in the node--for connecting sentences and so on. Another would be <sentence>, which would supply a contextual period if one is missing and a contextual capital first letter if it isn't capitalized. <paragraph> is obvious, as is the numbered list tag, and so on.
  4. A contextual <break> could be inserted inside a node.
  5. Eventually, the user should be able to create their own contextual tags that "extend" various tags. For example, a <thesis-paragraph> wrapper would wrap the first part of the outline before the first outdent, but it would also be a reminder of the paragraph's structural place in the outline. A <point-sentence> and a <counterpoint-sentence> wrapper would remind the writer of points and counterpoints. If desired, a node tagged #hypertag could be wrapped with an <inline-quote> tag if it is short and a <quote-paragraph> tag if it is long. Each could have its own user-defined contextual text added. E.g., an <inline-quote> would be supplied with contextual quote marks around it and ellipses if it doesn't have a period at the end or a capital letter at the beginning.
  6. The long-form node should have a toggle to turn rendering on or off. It could be a three way switch: rendered, tags shown, and tags hidden. Thus, a single node could be toggled between rendered and non-rendered formats.
  7. As a bit of error-catching, a rendered node that is not wrapped in a tag would retain its bullet. That is, a rendered node with a <break> tag in the middle would be rendered with the break, but it would retain its bullet--unless the user wraps it in a <sentence>, a <paragraph> tag, etc.
  8. The rendered version of a tag should be capable of being cut-and-pasted into conventional text with line breaks, etc.

Perhaps I fleshed this out too much, but the key pieces are,

  • a long-form text node for long-form text;
  • tags either akin to XML tags or as XML tags that live _contextually _in the node and both to give it structure and to tell Tana how to render them;
  • one tag is a <break> tag that could be inserted _contextually _inside a node;
  • the option to view long-form nodes in their rendered form or not either/both globally by default or with a toggle in the long-form node; and
  • contextual text that lives only in the node.

Some version of this would be huge. Incidentally, table views in Tana could be turned into properly tagged tables suitable for cutting and pasting.

⁨1⁩ ⁨Comment⁩

I am also hoping for a way to take writing past the outlining and into the final flow of prose.
I use the outlining as an intermediate step in most cases, but the final "thinking on paper" happens when it is written out in coherent prose. And of course, the coherent prose is the actual outcome needed to be delivered elsewhere.

Likewise, I need a place to be able to PASTE long form / prose I grabbed from elsewhere. For example, the content of an email or post that I need as instructions for a task, or because I am typing up a reply to it.
In many cases it is just a couple of paragraphs.

I don't even need the long form / free form text to be part of the Tana graph as such.
Meaning, it does not need to have all the tag referencing and all the other stuff there. As long as the object itself can be tagged.
Also, it would not be a hard requirement to have the content incorporated in searches. (Just like PDF content is not incorporated).

Even if we could just be able to easily imbed a 3rd party editor into the graph - with content storage somewhere else than the graph, that would be a great advantage. For basic text editing.

If it needed to be more advanced later, a different object could be introduced.