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
Installing Leo on MacOS X Jaguar
Quick start
Chapter 3: Using Leo's Outlines
Creating headlines
Cutting and pasting 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
@encoding specifies encoding in derived files
@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
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
Inserting the time and date
Reformatting paragraphs
Setting preferences and leoConfig.txt
The Outline Menu
Creating and deleting headlines
Cutting and pasting 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
Overview
Getting commanders and frames
Getting and setting headline and body text
Traversing outlines
Updating the screen
Invoking commands from scripts
Getting and setting preferences
Functions for finding and changing text from scripts
Summary of the vnode class
Functions defined in leoGlobals.py
Redirecting output from scripts
Appendix to Chapter 7: Scripting the Borland version of Leo
Installing Python
Leo's Python window
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
Chapter 8: Customizing Leo
Overview
Using leoConfig.txt
Using plugins and hooks
Security warnings
Using convenience routines
Using leoConfig.leo and leoConfig.txt
Security considerations
The danger of trusting code in shared .leo files
Don't use rexec!
Using plugins and hooks
About plugins
About hooks
Convenience routines for hooks
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
Unicode
Unlimited undo
Appendices
Python code in leo.py
Error messages
Future directions
Glossary
Sentinel lines
Transferring Leo files between Macintosh and PC
Unicode notes
XML file format
XML file format 1
XML file format 2
An example Leo file
DTD