The Leonine World¶
Leonine refers to Leo’s unique way of organizing data and programs. This has many implications:
Browsing: Leo remembers your outline organization. Class browsers don’t. Doh!
The big picture: Outline nodes hide messy details, revealing the big picture at all times.
Programming: Leo outlines naturally organize programs into modules, classes and functions. Leonine sources are their own design document. How you organize outlines is a choice in a new design space.
User-defined types: Headlines naturally describe a node’s contents: headlines naturally define types. Leo’s core supports types such as @button, @rst, @suite, @url, etc. Plugins define @bookmark, @graph, @html and @task types. Scripts can easily define other types.
Testing: Leo’s @test nodes creates a unique unit-testing framework:
- @test nodes focus on the real test code.
- It is easy to run only the @test nodes in a particular suboutline.
- @test scripts can easily use data in their children.
Work flow: The clone-find commands gather all match a pattern under a single node. No need to keep searching for them. You can change the clones, and the original nodes change as well. This is a great way to fix bugs or to write books.
Databases: Leo’s clones create new opportunities for scriptable databases. In my brother Speed’s outlines, suboutlines are SQL queries!