Leo (text editor)
4138641
222285385
2008-06-28T14:42:37Z
75.133.87.12
{{Infobox Software
| name = Leo: Literate Editor with Outlines
| screenshot = [http://sourceforge.net/project/screenshots.php?group_id=3458&ssid=22298 Screenshots]
| caption =
| developer = Edward K. Ream
| latest_release_version = 4.5 beta 1
| latest_release_date = 2008-6-28
| operating_system = [[Cross-platform]]
| genre = [[Text editor]], [[Outliner]]
| license = [[Python (programming language)|Python]] License
| website = [http://webpages.charter.net/edreamleo/front.html Leo's home]
}}
'''Leo''' ('''L'''iterate '''E'''ditor with '''O'''utlines) is a [[text editor]] that features [[outliner|outlines]] with clones as its central tool of organization and navigation.
== Language ==
Leo is written in [[Python (programming language)|Python]] and uses the [[Tk (computing)|Tk]] GUI toolkit. It is fully scriptable using Python and can be extended with plugins.
== Leo outlines and clones ==
In Leo, outlines are hierarchical tree structures that are used to work with and manage text files -- including code.
Clones are outline nodes that are automatically kept identical throughout a Leo outline. They can be thought of as pointers to the same content: By editing one, all the other clones of that outline element update as well.
This feature turns the outline tree structure into a [[directed acyclic graph]] structure.
Outline nodes may be named or unnamed. Leo creates output files in a process called "tangling". Tangling starts at the top-level node of the output file. The contents of the top-level node are copied to the output file. Named nodes are inserted at the point of reference, as in macro languages; unnamed nodes are inserted as the result of Leo's @others directive. Tangling is a recursive process--inserted nodes may contain @other directives and references to named nodes, and so on.
== Literate programming and Leo ==
Leo supports formats used in [[literate programming]]<ref>[http://webpages.charter.net/edreamleo/design.html leo Documentation - Chapter 6: Leo and Literate Programming]</ref>, and uses some ideas of the concept. The main idea is the concurrent development of [[Source code|code]] and [[documentation]] by keeping the two close together, while maintaining independence from the code sequence by using named outline elements called chunks.
== External links ==
{{portal|Free software|Free Software Portal Logo.svg}}
*[http://webpages.charter.net/edreamleo/front.html Leo's homepage]
*[http://sourceforge.net/projects/leo/ Leo at SourceForge]
*[http://sourceforge.net/project/screenshots.php?group_id=3458&ssid=22298 Screenshots]
== References ==
<references/>
[[Category:Free text editors]]
[[Category:Free software programmed in Python]]
[[Category:SourceForge projects]]
[[Category:Outliners]]