This topic has been percolating awhile due to comments from the usual suspects.
I'm thinking that Leo might support @view nodes. These nodes would, in effect, support *temporary* clones. The idea: 1. Within any external file (and especially files derived from @auto), we might identify nodes with views using something like: #...@leo-view: <gnx> This is an unbreakable link to the view node, rather than identification of the node within the external file. Of course, such a link will be "broken" if the indicated node does not exist in the .leo file. This is similar to what happens with clones now. 2. @view nodes would be illegal within any kind of @<file> tree. 3. When reading an external file, Leo would create a child clone for every #...@leo-view sentinel in the external file. 4. Leo would never write cloned children of @view nodes to the .leo file. Thus, there is little to be gained by creating files (like leoProjects.txt) just to hold @view nodes, and little to be lost by banning @view nodes from any @<file> tree. 5. We might want a command that writes "clean" @auto external files, without any @#leo-view sentinels. That's actually a nit because the links created by such sentinels are not essential. This idea shows that cloned nodes are not essential in external files, and particularly not essetial in @auto files. In that case, we could use @auto for *all* files, provided that we create a lightweight markup for outline organization. This can be done using the following sentinels: #...@leo+ #...@leo- The first precedes the first child of a node with children, the second follows the last child of a node with children. These sentinels properly nest. It might be possible to elide these sentinels when the @auto import code would create children anyway. Details unclear at present, but if this can be done we would need these sentinels only for organizer nodes. In short, @auto becomes more interesting if we can eliminate clones within @auto trees. @view nodes might be a way to do that. Please note: this scheme does *not* eliminate clones from Leo and does not change Leo's internal data structures in any way. It merely makes permanent clones less necessary. If permanent clones are desired, they can be used as at present. As always, your comments are welcome. Edward
-- You received this message because you are subscribed to the Google Groups "leo-editor" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en.
