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 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)
@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.
@ihf This is very clear. of course nice things would be for later, surely easier that base process.
I terminate first for @RocketBlaster05 , then I'll begin to study your script. (Small) News tomorrow.
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 🙄)
@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
@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
@mikael and another problem is that you need a TextField at each row...
Sincerely, except move/drag features, I'm not sure of which is the best.
But you can have a TextView that resizes to fit the paragraph, and TableView rows that also resize to their contents.
@mikael Agree, not easy to choose. I'll actually go on with TextView until I meet to much problems.
Sure TableView could be easier for some functionalities.
You disturb me because I had hesitated two days before I took my decision 😢