.. rst3: filename: html/preface.html .. |---| unicode:: U+02015 .. for quotes :trim: .. |br| raw:: html
############################# Technical introduction to Leo ############################# .. Use full links here so links are active in LeoDocs.leo .. _`clones`: tutorial-pim.html .. _`leonine`: leonine-world.html .. _`Python API`: tutorial-scripting.html .. _`Scripting basics chapter`: tutorial-basics.html#scripting-basics Leo puts hierarchy (outline structure) at the center of everything. This structure helps you create, manage, and revise any kind of document, including computer programs, documentation, to-do lists, and novels. Leo can write external files automatically from select parts of the outline. Leo outlines may contain programs in any programming or markup language, including Python, C++, JavaScript, Rust, Markdown, and restructuredText. **Multiple views of data** Writers and programmers often want to view or manipulate the same text in different ways, depending on context. Leo's `clones`_ lets you create multiple different views of data within the *same* outline. You can organize code by functionality in one view and by file in another. You can see documentation from as many points of view as you like. **Integrated Python Scripting** Leo is fully scriptable in Python. Any outline node can contain a Python script that accesses the outline’s data directly. Such `leonine`_ scripts also have full access to all of Leo's source code via a straightforward `Python API`_. Leonine scripts and plugins can create new Leo commands. See Leo's `scripting basics chapter`_ for more details. **Summary** Traditional editors *simulate* hierarchy through comments, naming conventions, and the hierarchy of external files. In contrast, Leo puts hierarchy (outline structure) at the center of everything. As a result, Leo excels in managing complex text, including computer programs.