giuspen / cherrytree

cherrytree
https://www.giuspen.net/cherrytree/
Other
3.38k stars 461 forks source link

Outliner Node #2473

Open yorkshirelandscape opened 6 months ago

yorkshirelandscape commented 6 months ago

Is your feature request related to a problem? Please describe. I found CherryTree originally when looking for an alternative to the wonderful but very expensive OmniOutliner for MacOS. It would be amazing if you could implement some sort of outliner node.

Describe the solution you'd like I'd almost just like to see the tree explorer repeated in the editor window, but with the ability to edit each node directly, rather than entering a properties dialog. I'm not sure how much of the tree logic would be reusable, so I have no idea how much work this would be, but hopefully it would give you a head start.

By the way, I realize that this is not completely unrelated to #2122 and #1859, as outliners often employ the OPML format, but I felt that actually requesting outliner nodes was slightly different. Thanks for hearing me out and keep up the good work.

gitvectors commented 5 months ago

i am just another developer. There was at one time a discussion forum to explore CherryTree ideas (including an RSS feed) but now we only discuss "issues" or "feature requests". Not sure what applications you have in mind .. please expand with an example of target OPML .. but I can see how you might achieve OPML output without adding to developer's burden for yet another feature. Usually I find that an external script orchestrating CherryTree in different modes can solve my requirements. Look at pandoc output to OPML for a start (and I am not an OPML user). Pandoc to OPML can run in a CodeBox. And CherryTree .ctd is XML as is OPML. Thus you mght use Python XML.element.tree to parse XML . In short use a toolchain with CT as one link in the chain. Another tip is to use Recoll to index all your documents in your desktop. Then you can pickout CherryTree documents by query: ext.ctd - which means list all documents with only extension .ctd (CherryTree XML). From there you can launch toolchains to apply CherryTree outside the usual mode as "notes editor".

yorkshirelandscape commented 5 months ago

Wow. I hadn't even considered that CherryTree could be used that way. I suppose it makes sense when you think it through, but I'd imagined that codeboxes were for displaying code itself, not its output. I'll give the matter some thought.

As to what I’m envisioning, nothing complicated. Just a collapsible outline editor. Plain text. Just like the tree view except editable without entering a dialog. It's a great format for note-taking and project planning.

gitvectors commented 5 months ago

The one missing feature in CherryTree is a variable which contains the absolute path to the node in focus. var nodepath This should change dynamically as different nodes are navigated. This would then open up codebox Python (or other) script applied to the node containing the CodeBox.. As it is today the var "nodepath" has to be set manually in CodeBox script. Another useful feature would be for TOC to change dynamically so that updated documents are dynamically updated as nodes areshuffled and added. we can use an external script to refresh TOC and grab the paths to nodes. I use a UI emulator Actiona for the purpose of navigating the CherryTree UI. Hence the emphasis on tool-chains to extract more from CherryTree. Finally instead of OPML I would look to building a link between CherryTree and Zotero to define collections.. On this point "Just like the tree view except editable without entering a dialog" can you not allocate a node and then Toolbar > Insert > Insert TOC to index your nodes. I set my top node as ROOT and all nodes under ROOT are child nodes. But as I mention above TOC does not change dynamically and so I insert TOC dynamically when document structure is stable. i use Actiona for automation.