Leo User's Guide
Summary Table of Contents
Title Page
Table of Contents
Front Matter
FAQ
Chapter 1: Introducing Leo
Chapter 2: Installing Leo
Chapter 3: Using Leo's Outlines
Chapter 4: Writing Programs in Leo
Chapter 5: Using Leo's Commands
Chapter 6: Leo and Literate Programming
Chapter 7: Scripting Leo with Python
Chapter 8: Customizing Leo
Chapter 9: History of Leo
Chapter 10: Theory of Operation
Appendices
Complete Table of Contents
Title Page
Table of Contents
Front Matter
Preface
Acknowledgments
Leo's design goals
Legal notices
FAQ
What is the best way to learn to use Leo?
Where are the simple examples about how to use Leo?
How can I create JavaScript comments in derived files?
How can I make a derived file start with a shebang line?
What are the differences between @root and @file trees?
Why should I use clones?
Chapter 1: Introducing Leo
Overview of Leo
Leo's main window
Body text define chunks
Outlines organize chunks
Clones manage tasks
Outlines Generate Derived Files
Chapter 2: Installing Leo
System requirements
Installing leo.py
Installing the Windows version of Leo
Quick start
Chapter 3: Using Leo's Outlines
Creating headlines
Expanding and contracting headlines
Moving, dragging and reorganizing headlines
Marking headlines
Opening URL's automatically
Cloning headlines
Resizing panes
Undoing operations
Chapter 4: Writing Programs in Leo
Overview
Sections and section definitions
Organizing @file trees
More about directives
@color and @nocolor control syntax coloring
@comment sets comment delimiters in @root and @unit trees
@delims sets sentinel delimiters in @file trees
@first and @last allow leading and trailing lines in @file trees
@language specifies the target language
@path, @pagewidth and @tabwidth set preferences
Appendix 1 to Chapter 4: Using @rawfile and @silentfile Trees
Appendix 2 to Chapter 4:Using @root Directives, Tangling and Untangling
@file vs. @root trees
Sections and section definitions
Tangling @root trees with the Tangle commands
Untangling @root trees with the Untangle commands
@verbose, @terse, @quiet and @silent directives
Chapter 5: Using Leo's Commands
The File Menu
Loading, saving and restoring files
Communicating with external editors
Tangling an outline: producing derived files
Tangling and untangling: the interface with the IDE
Untangling: updating an outline
Import files into Leo
Exporting files from Leo
Quitting Leo
The Edit Menu
Cutting, pasting and selecting text and outlines
Executing Python scripts in body text
Shifting body text
Extracting sections from body text
Converting leading tabs and spaces in body text
Finding matching brackets and parentheses
Finding and changing text
Finding locations in outlines corresponding to line in derived files
Reformatting paragraphs
Setting preferences and leoConfig.txt
The Outline Menu
Creating and deleting headlines
Expanding and contracting headlines
Moving and reorganizing headlines
Marking headlines
Cloning nodes
The Window Menu
Resizing panes
Cascading & minimizing windows
Toggling the active pane and the orientation of the Leo window
The Help Menu
Getting Leo's version
Reading documentation
Configuring Leo
Chapter 6: Leo and Literate Programming
Why I like literate programming
How Leo improves literate programming
How Leo changes the notion of literate programming
Chapter 7: Scripting Leo with Python
Installing Python
Terminology
Type conventions
Leo's Python window
A basic script
Traversing outlines
Getting and changing body text
Creating objects & changing properties
Updating the screen
Functions
The commands class
File menu commands
Edit menu commands
Outline menu commands
Window menu commands
Menu enablers
Commands Utilities
The LeoPyWindow class
The Preferences class
The vnode class
Pure Python methods
Chapter 8: Customizing Leo
Overview
Using leoConfig.txt
Using Python "hooks" in customizeLeo.py
Security warnings concerning customizeLeo.py
Using convenience routines called from hooks
Using leoConfig.leo and leoConfig.txt
Security considerations involving customizeLeo.py
The danger of trusting code in shared .leo files
Don't use rexec!
Protect your copy of customizeLeo.py!
Using customizeLeo.py
About hooks
Convenience routines for customizeLeo.py
Convenience functions for periodic actions
Convenience methods for menus
Putting the Leo icon in Leo windows
Chapter 9: History of Leo
Beginnings
Versions, and more versions
Designing @file trees
Deciding to do Leo2
A prototype
User interaction
The write code
The read code
The load/save code
Attributes, mirroring and dummy nodes
Clones
Error recovery, at last
Chapter 10: Theory of Operation
Overview
Nodes
Drawing and events
Clones
Find and change commands
Tangle and untangle commands
Unlimited undo
Appendices
Python code in leo.py
Error messages
Future directions
Glossary
Sentinel lines
Transferring Leo files between Macintosh and PC
XML file format
XML file format 1
XML file format 2
An example Leo file
DTD