Outliner with drag/drop reordering
I am looking for an outliner tool (app) that would permit me to create an outline using either the Roman numeral (I. A. a., ii. ) or numeric format (1. 1.1 1.11 1.111). and that would support drag and drop reordering of items. I have searched unsuccessfully for such an app. I think this ought to be possible with Pythonista but I am not skilled enough to do that. Has anyone done this with Pythonista or seen an app to do this?
Ordinarily, I would expect that tab (or shft-tab) would promote (or demote) a line regardless of when it is hit. In other words if I am on a line and I do tab it would indent and change levels (likewise but reversed for shift -tab). If tab is needed in the text for some reason then promote/demote buttons could be used instead of tab but I have never needed tabs in my text.
@ihf I said you that this initial version was far from perfect. Of course we will need file new/save/load functions but they are not yet needed for testing thé édition part. Please, don't rush me
I didn't know that you used an iPhone.
Thus, we need to add buttons for tab and shift/tab. What do you prefer:
- in the title bar of the script
- in a supplementary row above the keyboard?
Please let me know and you will need to be patient: you will not get all functionalities briefly
@ihf example of what it could be on iPhone SE (small)
Icons would be at your own choice among iOS SFSymbols
@ihf If I can use shift-tab anywhere in a line, it is sure I can't use left-delete as key.
Thus I need to have a "new" key (like in my example just above).
So I also can use another key than tab for indentation, thus ok also in my example above.
So normal tab and normal left-delete will keep their original signification.
Ok with that and this additional row of specialized keys?
@cvp Firstly, please don't take any of my messages as indicating impatience. I am very grateful that you are taking on this project and am in no particular hurry at all. In so far as iPhone or iPad, I use both. As to special keys, I leave it to you for the best way to do it but I have no problem with dedicated keys given the absence of the tab key (when not using an external keyboard).
@ihf ok, sorry, I was afraid you could be hurry.
I'll go on with these dedicated keys, so you can have it on iPhone where there is no tab key.
After your future tests , we would decide how you prefer to use the script.
But I'm not yet far enough for a second version. I've been very busy this week-end, first sunny days since 3 weeks.
@ihf you will not have news before some days because we have our fist sunny days since a long time and I take some holidays.
@ihf I don't forget you. I'll send something testable, not perfect, end of next week, sorry for the delay.
@ihf Hello, I'm sorry but currently i can't concentrate well. Thus my script does not evolve a lot.
You will find in GitHub the last version but a lot of functionalities are still missing or buggy
You can already test the two additional keys but only at end of file because renumbering does not work correctly.
You can also test the Files sub-options new, open, save. This part of the script uses modules that you will also find in GitHub: File_Picker.py and Folder_Picker.py.
Thus here is outline.py.
The script uses any editable file (aaaa.bbb or aaaa) but creates a aaaa.content partner file with needed infos.
don't be angry if there are too many bugs, I try to find the motivation to go on...
@cvp if this is what you can do when you can’t concentrate well I can only imagine what happens if you have a cup of coffee (LOL). Do you want me to tell you about each bug I fall across or should I wait until you have a chance to do more testing of your own? One small thing, I noticed that when you start a new file you must hit tab before the outline begins. Unless you can see a reason for that, you might as well start the outline in the selected format immediately. Also would be nice if it continued with the last used file just to simplify continuing to edit an outline. I realize that move and copy, much less drag and drop, are still in the future, but what you have already done is very impressive.
Do you want me to tell you about each bug
Not yet please, I know there are a lot of bugs actually...
when you start a new file you must hit tab before the outline begins
Yes, because I thought that you want to start with a title line without outline.
I'll change that
what you have already done is very impressive.
Version V00.03 - at program end, outline.prm written with path and name of last edited file - automatic open last edited file at program start - automatic generation of first outline when new file
@ihf For those times when I don't have the motivation to think about automatic renumbering, can you explain how you see the move / copy / drag and drop?
@ihf how do you force a line to have same (invisible?) outline level than previous line?
If this functionality is allowed, the outline should be invisible but actually, the script displays
It in gray, just to be sure there is an outline
@cvp I created a new outline and enter a line (1.0), then a line under that (1.1), then CR which gave me (1.2), then a backtab made that 3.0 instead of 2.0
As far as move and copy, it was a pull down that said not implemented (in an earlier version). My hope is that you will somehow eventually be able to do drag and drop of parent and child nodes so that the outline can be reordered flexibly.
few anomalies that I thought were easiest to show you with a screen recording
It is good idea, and yes it works.
About the bugs, I knew them, coming from my "automatic renumbering" part, really not ready.
My hope is that you will somehow eventually be able to do drag and drop of parent and child nodes so that the outline can be reordered flexibly.
I understand that. But, I can't do that before he normal process which is buggy in its renumbering part.
Drop will need automatic renumbering.
Could you explain me how you see this drag and drop?
How do you want to select what to drag?
How do you want the dragging operation?
How do you want to indicate where to drop?
And I promise that I'll at least try to process this drag and drop