Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Leo — это текстовый редактор и органайзер с открытым исходным кодом, в котором клоны (виртуальные копии узлов структуры) являются центральным инструментом организации, навигации, настройки и программирования.
Leo is an open source text editor/outliner that features clones (virtual copies of outline nodes) as a central tool of organization, navigation, customization and scripting.
Языки
Лео может манипулировать текстом или кодом на любом человеческом или компьютерном языке программирования (например, Python, C, C++, Java), поскольку Лео является языково-независимой или "адаптируемой LPE" (средой программирования, основанной на литературном подходе). Предусмотрено выделение синтаксиса для многих различных языков программирования. В панели обзора Лео отображается дерево узлов данных. Узлы содержат заголовки, основной текст и другую информацию. Заголовки естественно служат описанием основного текста. Например, узлы @file – это узлы, заголовок которых начинается с @file. Деревья Лео фактически являются направленными ациклическими графами; узлы могут иметь более одного родительского узла. Лео называет такие узлы клонами. Клоны отображаются в нескольких местах в панели обзора. Представления (views) – это просто узлы, чьи дочерние узлы содержат клоны. Один обзор может содержать произвольное количество представлений узлов, содержащихся в нем.
Leo can manipulate text or code in any human or computer programming language (e. g., Python, C, C++, Java), as Leo is a language independent or "adaptable LPE" (literate programming environment). Syntax highlighting is provided for many different programming languages. Leo's outline pane shows a tree of data nodes. Nodes contain headlines, body text, and other information. Headlines naturally serve as descriptions of the body text. For example, @file nodes are nodes whose headline starts with @file. Leo trees are in fact directed acyclic graphs; nodes may have more than one parent. Leo calls such nodes clones. Clones appear in several places in the outline pane. Views are simply nodes whose children contain clones. A single outline may contain arbitrarily many views of the nodes contained therein.
Внешние файлы
@file узлы представляют внешние файлы – файлы в файловой системе компьютера, отличные от файла конспекта. При сохранении конспекта Лео автоматически перезаписывает все измененные @file деревья во внешние файлы. Комментарии, называемые сигнальными строками, во внешних файлах представляют структуру конспекта. Когда Лео читает конспект, эти комментарии позволяют Лео воссоздать @file деревья, используя только данные из внешнего файла. @auto и @clean узлы представляют внешние файлы без использования сигнальных комментариев. При чтении @auto узлов Лео использует программную структуру внешнего файла для создания @auto дерева. При чтении @clean узлов Лео использует структуру конспекта для создания @clean дерева.
@file nodes represent external files, files on the computer's file system other than the outline file. When saving an outline Leo automatically writes all changed @file trees back to the external files. Comments, called sentinel lines, in external files represent the outline structure. When Leo reads an outline, these comments allow Leo to recreate @file trees using only the data in the external file. @auto nodes and @clean nodes represent external files without using sentinel comments. When reading @auto nodes, Leo uses the program structure of the external file to create the @auto tree. When reading @clean nodes, Leo uses the structure of the outline to create the @clean tree.
Сценарий
Контур или иерархическая структура Leo отличается от сети переплетенных фрагментов программы и документации, связанных с классическими инструментами литературного программирования. Тело любого узла Leo может содержать скрипт Leo – скрипт Python, выполняемый в контексте контура Leo. Простой API предоставляет скриптам Leo полный доступ ко всем данным в загруженных контурах, а также полный доступ к исходному коду Leo. API включает в себя итераторы Python, позволяющие скриптам легко обходить контуры. Скрипты могут состоять из любого дерева узлов. Язык разметки, аналогичный noweb, указывает Leo, как создавать скрипты из (частей) контура. Заголовки управляют и направляют выполнение скриптов. Например, узлы @button создают команды, определенные пользователем. Leo выполняет скрипт узла @button в контексте любого другого узла контура.
Leo's outline or hierarchical structure is distinct from the web of interleaved program and documentation "chunks" associated with classic literate programming tools. The body text of any Leo node may contain a Leo script, a Python script executed in the context of a Leo outline. A simple API gives Leo scripts full access to all data in loaded outlines, as well as full access to Leo's own source code. The API includes Python iterators that allow scripts to traverse outlines easily. Scripts may be composed of any tree of nodes. A markup language similar to noweb tells Leo how to create scripts from (parts of) an outline. Headlines control and guide scripts. For example, @button nodes create user defined commands. Leo executes the script of an @button node in the context of any other outline node.