The Leonine World — Leo 5.7 documentation

# 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!