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?
@ihf no idea about an app but it is sure that it would be possible in Pythonista.
How do you imagine that? A full editor with support of fonts, colors etc...
or a simple TextView where each set of successive tabs should be replaced by an outline style?
Not a script of some hours but not so difficult in this last case.
@cvp I would be happy with something that would let me enter and easily edit an outline. Aesthetic features would be nice but are not absolutely essential. The key is something that understands one or two outline formats and allows for promotion demotion and drag and drop reordering of Parent and child nodes. For years I used an app called Notebook on the NeXT computer and later on the Mac. Sadly, it is no longer maintained and is not compatible with the latest OSX. It was far and away the best note taking and outliner app I have used. I have tried to get several vendors who have note taking apps and primitive outlining to add these basic features but so far to no avail. There are some mind map apps out there that may do what I am looking for but they all seem to have a subscription model which I am not interested in. I often find that organizing my thoughts with an outline is very effective. Obviously, I could use some thing like onenote but as feature rich as it is, it has no ability to easily move nodes within the outline.
@ihf I agree to try to develop a script for you, but
- you should be ready to answer to a lot of questions
- nice functionalities would be for later
- font selection
- color selection
- outline style selection
- drag and move of lines with automatic red-outlining (do we say that?)
- you should be very very patient
- you should be ready for testing because I hate that
- and surely a lot of other conditions
Of course, you will be the master and I don't promise anything.
My first questions before starting a skeleton:
- is tab the begin of indentation with outline?
- is it possible to have outline in a line that does not begin with a tab (ex: azerty 1. Level 1)
ihf last edited by ihf
@cvp Wow, that's quite a nice offer. Of course, I would be happy to test whatever you write and I am in no hurry. Typically, the way outliner/notetaking apps work is that you have a blank page which could just have ordinary text but if you change mode (click a button) to enter outline mode, then each line typed before a CR is formatted to be part of the outline using the outline format chosen (assuming you support more than 1). Tab before the line puts the typed line at the next level of the outline and each successive line adds another item at the current outline level. Back tab before typing the line goes back up one level (for each time it is used)
For example, if the format is the Alphanumeric.variety:
I. Highest level A. Child node B. Second Child node II. Second level. A. Child node B. 2nd child i. Next level ii. etc. a. etc. or in the Decimal format 1.0 Item 2.0 Item 2.1 Child 2.2 Child 2.2.1 Child at next level
Here is a description of several formats: https://en.wikipedia.org/wiki/Outline_(list)
If I were to select one format to start with, it would be the Decimal format. There are many aesthetic niceties in outlining apps (none of which is absolutely essential). For example some outlines give the ability to click on a symbol next to the item to hide all child nodes thus making it possible to see only certain levels of a complex outline.
How do you tap that on Pythonista keyboard? Left delete should be ok because we delete so a level of indentation.
Yes, Back tab would be on an external keyboard. a button added to the editor (often how it is done) or left delete would also be good.
left delete would also be good.
I don't know why I asked that, I'm not yet so far...🤔
@ihf As tab generated an indentation/outline, is it allowed to use tab at other places,
Yes, it would only be at the beginning of the line that it would change the level/indentation.
@ihf Just to show'that I don't forget you. But I don't yet have a version that I could give you for initial tests. Only normal characters, tab and linefeed are "supported" (this word does not mean bugfree).
As soon that A version supports backspace, I'll post it, only to be sure I don't go far from your hopes.
For info, outlines will be colored (via AttributedText) only to differentiate with typed characters.
The format button is only there to be nicer, actually only decimal is supported
Version size = 231 lines, just to prove it does almost nothing.
@ihf 30 minutes later, it now supports (partially?) alphanumeric format
But quid if higher than Z,z,....?
don't worry actually about alignment of outlines, not yet even thought
@ihf and now, traditional (I postpone the moment when I'll have to develop the backspace 🙄)
mikael last edited by
@cvp, suggestion: use TableView for easy reordering, swipe left & right to change outline level.
Copying would need extra support, though.
@mikael I had hesitated because this choice has also other consequences...
I have already begun (400 lines) with a TextView.
But you are perhaps right.
I have to choose quickly before I'm to far.
I'll decide this week-end, I hope, because enough busy with my smala visiting me.
swipe left & right to change outline level.
Normally, tab increases level
Left delete decreases level
Quicker than swiping, I think
mikael last edited by
@cvp, true, if you have an external keyboard. iPhone keyboard does not even have a tab key. 😁
@mikael is that not a tab key? Ha ok, sorry, this is an iPad...
@mikael and user does not really need a left tab key.
Left tab is used to set cursor at previous tab, that's not the case here, it could need to delete a tab to decrease level, thus left delete is good for that