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: Clones accelerate your work flow by focusing your attention on the task at hand. Once you have gathered the relevant nodes, there is 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!