Zavala - An open source outliner for Macs, iPads, and iPhones

Started by Maurice Parker on 1/9/2021
MadaboutDana 4/4/2024 10:35 am
Sorry, Maurice, I meant to reply to your e-mail – yes, switching from one outline to another is MUCH faster! Bravo!

On the other hand, backlinks are still showing a distressing tendency to disappear...
Maurice Parker 5/26/2024 9:27 pm
Zavala 2.5 has been out for a while now. I'm pretty sure the backlinks bug was fixed in it.

On big change in 2.5 was the ability to enter Outline Mode by using the ESC key. You can now also select using the arrow keys as well.

Another big change was how Splitting and Joining works. You can now Split a row by using the Return key while in the middle of a Topic. You can also Join now by deleting or backspacing at the end or beginning of a row respectively. Many thanks to all that contributed to the Splitting Items thread here. It convinced me that even though I don't like changing behaviors, this was a big enough improvement to go ahead with it. I especially like that you don't need special commands to Split and Join rows on iOS.
Maurice Parker 5/26/2024 9:30 pm
Zavala 2.6 - Beta 1 has been uploaded to TestFlight. https://testflight.apple.com/join/iFbND23m

This release features Typewriter scrolling which has been requested a couple times. I'd appreciate any feedback as to how well my implementation of it stacks up to other editors out there.
MadaboutDana 5/27/2024 1:11 pm
I’m just about to test some longer text (so I can check out the Typewriter feature), but in the meantime, am (very) impressed by:

a) the enormously improved speed of switching between outlines (now seamless);
b) the consistency of backlinks (they stay where they are, even in my iCloud corpus!)

Bravo!

Maurice Parker wrote:
Zavala 2.6 - Beta 1 has been uploaded to TestFlight.
https://testflight.apple.com/join/iFbND23m

This release features Typewriter scrolling which has been requested a
couple times. I'd appreciate any feedback as to how well my
implementation of it stacks up to other editors out there.
MadaboutDana 5/27/2024 1:37 pm
Heh, initially I tried the Jesse Grosjean approach, copying and pasting the entire text of Moby Dick into one outline. This didn’t work, because the text was pasted as a single outline item (rather than automatically turning each paragraph into a separate outline item/row), which meant I got an error message from CloudKit telling me that it can only deal with a maximum of 750 child rows.

Fair enough! But it might be worth looking at the default pasting behaviour... next time I’ll convert Moby Dick into an OPML file before attempting to import it ;-)

So I pasted in a couple of chapters instead, and upon inserting my own deathless prose in the middle, found that Typewriter mode works very well – my words of wisdom remained rock steady in the (vertical) middle of the screen while I was typing, and if I mouse-scrolled to another part of the chapter but then started typing again (having left the cursor in the paragraph I was composing), the editor immediately returned to that paragraph and centred it in the middle of the screen.

So far, excellent!

MadaboutDana wrote:
I’m just about to test some longer text (so I can check out the
Typewriter feature), but in the meantime, am (very) impressed by:

a) the enormously improved speed of switching between outlines (now
seamless);
b) the consistency of backlinks (they stay where they are, even in my
iCloud corpus!)

Bravo!

Maurice Parker wrote:
Zavala 2.6 - Beta 1 has been uploaded to TestFlight.
>https://testflight.apple.com/join/iFbND23m
>
>This release features Typewriter scrolling which has been requested a
>couple times. I'd appreciate any feedback as to how well my
>implementation of it stacks up to other editors out there.
Maurice Parker 5/27/2024 4:38 pm
Bill, it should have given you a row per paragraph if you are in Outline Mode. If you are in Edit Mode and the cursor is in a Topic, Zavala will paste the whole thing in a single Row.

I have Moby Dick in an OPML file if you need it. Just email me. Zavala handles it easily when using the Local Account. Scrolling is very smooth. When you import it into the iCloud Account, you will hit the 750 row limit that iCloud imposes.

Thanks for the feedback on my Typewriter mode implementation.
MadaboutDana 5/28/2024 8:43 am
Ah yes, of course – I’d totally forgotten about Outline mode! I’ll give that a go straight away!

Cheers!
Bill

Maurice Parker wrote:
Bill, it should have given you a row per paragraph if you are in Outline
Mode. If you are in Edit Mode and the cursor is in a Topic, Zavala will
paste the whole thing in a single Row.

I have Moby Dick in an OPML file if you need it. Just email me. Zavala
handles it easily when using the Local Account. Scrolling is very
smooth. When you import it into the iCloud Account, you will hit the 750
row limit that iCloud imposes.

Thanks for the feedback on my Typewriter mode implementation.
robertom 5/30/2024 12:07 pm
Hi Maurice,

Congratulations on Zavala! I’ve been using outliners for a long time, and Zavala just feels… right! It’s a pleasure to write with it.

But I have a question. When I split a paragraph with subtopics, the new line appears after the subtopics at the same hierarchical level as the paragraph.

Instead, I think the new line should be the first subtopic because it is still connected to the paragraph. When it goes to the end of a list of topics, I have to stop and put it in the right order.

However, maybe others prefer it the current way and I’m just mistaken.

Cheers,

Roberto
satis 5/30/2024 2:17 pm


robertom wrote:
When I split a paragraph with subtopics, the new
line appears after the subtopics at the same hierarchical level as the
paragraph.

Instead, I think the new line should be the first subtopic

All outliners I've used split the current row at the insertion point to create a row at the same level as the original line. Have you used an outliner that works differently?

One partial exception is OmniOutliner, in which the default is for new to indent via Return as subtopics **only** if there are children attached. (And you can switch that off via the radio button to Always at the same level.)
Maurice Parker 5/30/2024 5:07 pm
I had originally thought that it didn't make sense to allow Splits and Joins to happen across different levels. Roberto's question got me thinking and I've since changed my mind.

I think it is more consistent for Split to work the same as Add Row Below. The rules for Add Row Below is that if there is no child Row, then add the Row at the current level. If there is a child Row, but the current Row is collapsed, then add at the current level. If there is a child Row and the current Row is expanded, then add as the first child Row of the current Row.

This sounds very close to what Satis describes for OmniOutliner. I don't have an OmniOutliner license, so I can't be sure.

Since the last rule contradicts my idea of restricting Splits and Joins across levels, I think all Splits and Joins should work across levels. Just trying to be as consistent as possible.

The current Zavala build in TestFlight has this change in it. https://testflight.apple.com/join/iFbND23m

I'd appreciate it if people would test the behavior and see if it is more natural feeling than before. I'd also appreciate just any testing. I knocked this out kind of fast when I should have been doing something else. Something could have broke. I'll test more extensively when I get a chance, but any help here would be greatly appreciated.
satis 5/31/2024 5:58 am


Maurice Parker wrote:
I think it is more consistent for Split to work the same as Add Row
Below. The rules for Add Row Below is that if there is no child Row,
then add the Row at the current level. If there is a child Row, but the
current Row is collapsed, then add at the current level. If there is a
child Row and the current Row is expanded, then add as the first child
Row of the current Row.

This makes sense. As I noted you can also turn off that behavior in OmniOutliner's Settings.

Opal (formerly Acta, a Mac outliner I started using in 1987), which is free from the original dev ( https://a-sharp.com/opal/ ), only splits via menu or key-command, but through its Topic menu it offers splits to sister, daughter, or aunt levels, using the same commands as creating new topics/subtopics/supertopics. A new Sister is Return, splitting to a new sister-level is Option-Return. (It gets a little hairy for splitting up to an Aunt level though: Option-Shift-Command-A)
Maurice Parker 6/12/2024 3:23 pm
Zavala 2.6 is now in production. It added Typewriter scrolling and Row level linking.

Zavala 2.7 Beta 1 is now in TestFlight. https://testflight.apple.com/join/iFbND23m

2.7's big new feature is Nested Tags. You could always use slashes to separate elements of a Tag name, but now when you do so, Zavala automatically folds (collapses) them in the Sidebar. This is similar to Bear and some other note taking apps.

I felt that Zavala's organizational capabilities were too limited, but I didn't want to complicate it more than necessary. I strongly considered adding support for Folders, but felt that Folders+Tags was more complexity than I liked. I like Nested Tags because if you don't use them they're just not there. I like that users have progressive functionality for organizing Outlines. No Tags, basic Tags, and now Nested Tags.

I'll be adding a section to Help when 2.7 goes to production on Tagging that helps explain different ways to use Tags.

As always, I'd appreciate any feedback on new features. I always like to refine and fix them before sending them out to users.
MadaboutDana 6/13/2024 9:04 am
Excellent! Thanks, Maurice – nested tags is one of the best possible ways to organise stuff (as you say, using them is entirely optional!). Great decision!
Maurice Parker 6/18/2024 12:39 pm
Zavala 2.7 is now live and in production. This is the version that supports Nested Tags.

Another bigger thing I worked on was interoperability with other applications. Zavala now supports pasting and dropping of Markdown unordered lists. This means that you can drag from OmniOutliner to Zavala and Zavala will automatically format the dragged Rows correctly. You can also do this from a list in macOS's Notes app. Actually any app that supports generating a Markdown unordered list will work.

This might be the last of the 2.x series for Zavala. Minor bug fix releases will still happen as needed of course.

I really feel like Zavala is a lot more stable and feature complete than it was a year ago when 2.0 was released. This gives me some breathing room to update Zavala internally to Apple's latest API's and technologies. Zavala 3.0 will probably work towards supporting the Apple Intelligence stuff announced at WWDC this year.
MadaboutDana 6/18/2024 1:20 pm
Heh, I’m impressed! I’ve just been dragging and dropping lists from Bike into Zavala and vice versa. Works very smoothly in both directions!

I shall experiment with other Markdown apps!
Maurice Parker 9/20/2024 4:32 pm
Zavala 3.0 is now in TestFlight: https://testflight.apple.com/join/iFbND23m

On the surface it might not look like this should be a major software release. There are only a couple of new features. A lot has changed under the hood though. I adopted Swift Structured Concurrency. Long story short, this will reduce the number of very difficult to debug, runtime crashes. So Zavala is now more stable than ever. Doing this was a lot of work and anytime that much work is involved, bugs inevitably creep in. I think I've found all the bugs, but developers always think that. ;-)

Fun stuff that was added:

* Apple Intelligence Writing Tools are now supported when running macOS 15.1 or iOS 18.1 (currently Beta only) on devices that support Apple Intelligence. Writing Tools use Artificial Intelligence to proof read or rewrite your sentences. For example, you can tell Writing Tools to make your notes you took at a work meeting more professional and it will replace your text with a more professional version.

* I also added a Group Rows command. Select one or more contiguous rows and use Group Rows to add an empty row and indent the selected rows under it.

* Sorting rows is now also possible in Zavala. Select two or more contiguous rows and select Sort Rows to have them sorted alphabetically. Like most things this is animated and provides a kinda cool effect if you are sorting enough items.

As always testing and feedback are always appreciated. Zavala is an Open Source project and testers are a big part of the process of getting an Open Source project ready to be released. Zavala is free and always will be. If you are a Zavala user and want to give back to the project, providing feedback is the way to do it!
Maurice Parker 10/9/2024 5:00 pm
Zavala 3.0 is now available. I wrote a little about the release and the future of Zavala on my blog. https://vincode.io/2024/10/09/zavala.html
SheetPlanner 10/11/2024 11:03 pm
Nice job Maurice.

Maurice Parker wrote:
Zavala 3.0 is now available. I wrote a little about the release and the
future of Zavala on my blog. https://vincode.io/2024/10/09/zavala.html
Maurice Parker 1/6/2025 10:04 pm
It's been a bit since I've posted an update here about what is happening with Zavala.

Version 3.1 is out. There were lots of little bug fixes and enhancements in that release. The main feature implemented in 3.1 was the ability to sort the Documents View in different ways. You can now specify ascending or descending and sort on Title, Created, and Updated.

Zavala 3.2 is now in TestFlight: https://testflight.apple.com/join/iFbND23m

The main feature in 3.2 is automatic line numbering. There is a new Setting in the Outline Get Info dialog that allows you to select the line numbering style. There are None, Simple, Decimal, and Legal. I had some fun implementing this feature. I did have some trouble finding a definitive resource on how Legal should be done especially at deeper levels. Any feedback on how I did it would be appreciated.
MadaboutDana 1/8/2025 1:57 pm
Great news, Maurizio! Your industry and the steady evolution of Zavala do you credit!

Cheers!
Bill
Maurice Parker 1/8/2025 6:31 pm
Thanks Bill. I've been steadily adding features and making it faster and more stable for years now. Maybe someday it will get popular, but I'm not holding my breath. Mostly I just want to make something I can be proud of.

-Maurice

MadaboutDana wrote:
Great news, Maurizio! Your industry and the steady evolution of Zavala
do you credit!

Cheers!
Bill
MadaboutDana 1/13/2025 3:04 pm
Well, that in itself is a jolly good reason for doing something ;-)

Maurice Parker wrote:
Thanks Bill. I've been steadily adding features and making it faster and
more stable for years now. Maybe someday it will get popular, but I'm
not holding my breath. Mostly I just want to make something I can be
proud of.

-Maurice

MadaboutDana wrote:
Great news, Maurizio! Your industry and the steady evolution of Zavala
>do you credit!
>
>Cheers!
>Bill
Andy Brice 1/21/2025 3:22 pm


Maurice Parker wrote:
Thanks Bill. I've been steadily adding features and making it faster and
more stable for years now. Maybe someday it will get popular, but I'm
not holding my breath. Mostly I just want to make something I can be
proud of.

Maurice

As a fellow developer, I commend your attitude. A refreshing change from the 'move fast and break things' approach.

--
Andy Brice
https://www.hyperplan.com
https://www.easydatatransform.com
https://www.successfulsoftware.net


Maurice Parker 1/7/2026 2:43 pm
Satis wrote in the OmniOutliner 6 is Out topic:

Although I’ve used Zavala for some light outlines, and I enjoyed playing with my registered copy of Bike, those apps’ bizarre ?
decision to send you to a new subheading when using the Return key kept me from using them regularly. (I have decades of
outline use and expectation for Return to deliver a new ‘sister’ item and not a ‘daughter’.)

I believe that this is a Settings option in OmniOutliner. I've avoided adding it as a Setting in Zavala because I'm doing my best to keep Zavala simple and not have so many Settings that users feel overwhelmed. I didn't realize that how Return worked when used on a parent row with children was preventing people from using Zavala.

I've created a GitHub issue to add this feature and it will _probably_ be in the upcoming 4.0 release of Zavala.
satis 1/7/2026 6:35 pm
Thanks Maurice. The two Mac outliners I started using in the 80s, which always added a new row at the same level (like when writing paragraphs), were Acta from David Dunham (which amazingly is still available, as freeware), and MORE from David Winer (which lives on in spirit as WordLand [in beta], a browser-based outline-based text editor for Wordpress that can output OPML)

https://www.a-sharp.com/acta/

https://this.how/wordland/

https://www.youtube.com/watch?v=8n6N9wOaGI4


In Winer's intro to outlines he definitively says to hit Return to create a sibling item.

https://outlinerhowto.opml.org/

(To be fair, practically everything Winer ever writes or says is expressed definitively - one reason he's often ignored.)

At any rate I far more often am making 'sibling' list rows (which I might then fill in with sub-entries later) than a main item followed immediately by a 'child' sub-entry (whose design means hitting Return a 2nd time creates a grandchild sub-sub-item, which seems like a relatively uncommon occurrence). My muscle memory is for writing at sibling/paragraph level, and using key commands for child and 'aunt' sub- and parent-rows.

A year ago I asked Jesse about this wrt Bike and he thought using a Return to continue at the same row level was "confusing" and suggested "creating an AppleScript or Shortcuts Action and associating it with a keyboard shortcut." Instead I moved on.

I believe that this is a Settings option in OmniOutliner.

OmniOutliner's **General Settings > Keyboard** has a setting ‘New rows are created…” from which you can choose between ‘Always at the same level’ and ‘Indented if there are children’. But I don’t believe there ever was a setting or occasion when hitting Return created a new child row from either a *single entry* or from a *new sub-item*.