⚡️ Ideas
Bruce F. Donnelly Bruce F. Donnelly Aug 23, 2023

Create a command to "flash" tags under a node

Explain the problem as you see it

People are messy and want to enter information in different ways. First, we might list an author's books, and some might have quotes:

My list of authors
Arthur Arturo #author
How to Write a Book #book
How to Get Paid for Writing a Book #book
You might think you don't need a lawyer, which is why your publisher drank champagne at your book launch. #quote
Why Most Writers Need Day Jobs #book
It can be embarrassing for both parties when a diner recognizes her bussboy from a book jacket. This is when you speak in tongues and hide in the kitchen. #quote
...

Second, we might list authors of books:

My list of books
How to Get Paid for Writing a Book #book
Arthur Arturo #author
Bob Lawson, Atty. #author
You might think you don't need a lawyer, which is why your publisher drank champagne at your book launch. #quote
...

Third, we might list the author and book under a quote:

My list of quotes
You might think you don't need a lawyer, which is why your publisher drank champagne at your book launch. #quote
Arthur Arturo, #author; How to Get Paid for Writing a Book #book.

This is why it's smart to fill in auto-initialized values when, and only when, nodes are created. Otherwise, the data might change depending on context. Good job, Tana! However, this assumes users always add information in the same way. Since there's no evidence of brain meat evolving a proper logic gate, this may be a bad assumption.

Why is this a problem for you?

First, it's a problem with the Readwise integration. I gather that Readwise can't properly initialize fields because of limitations in Tana's API. It's also a problem for me when I want to create a tagged node, e.g., a quote, before the node (a book in this case) from which it expects to pull information.

Suggest a solution

Please note:
I have three suggestions, of which this is the first. I will largely repeat the above text, so sorry for the repetition. As you note in your philosophy, it's a long way from problem to solution, and I want to present options.

Create a command to "flash" tags under a node the user chooses, and include that node in the metadata for that tag. This would do a couple of things. It would re-initialize the tags, so that they filled in their auto-initialized values. Second, it would mark one location as canonical. How would this work? Let's take a list of books. It is in the format

My list of books
[Book Title] #book
[Author Name] #author
...
[Quote] #quote.
...
[Another Book Title] #book
[Another Author Name] #author
[Another Quote] #quote
...

The "flash" command would would go like this:

  1. The user places the cursor in the node that is the ancestor to all the nodes s/he wants initialized. It need not be a tagged node. In this case, it would be "My list of books."
  2. The user types control/command K and then, "flash nodes tagged #quote below this node."
  3. The UI would throw up a warning saying that this will change data in x-number of nodes, but reminds the user that it can be undone.
  4. The user presses <enter> to agree.
  5. All the nodes tagged #quote get "flashed" and their auto-initialized values get inserted.
  6. The user checks a random #quote node to see whether it is done correctly.
  7. If the user makes a mistake, the user can then hit "undo" until s/he sees the new value go away.