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:
- The user would highlight an outline and use a command to insert it into a long-form node.
- 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.
- 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.
- A contextual <break> could be inserted inside a node.
- 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.
- 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.
- 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.
- 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.