Serj Kalichev преди 1 година
родител
ревизия
8d96ec979b
променени са 1 файла, в които са добавени 41 реда и са изтрити 1 реда
  1. 41 1
      docs/klish3.ru.md

+ 41 - 1
docs/klish3.ru.md

@@ -93,6 +93,7 @@ Klish имеет два типа плугинов. Плугины для заг
 сборку с --prefix=/usr). Их имена 'kdb-<имя>.so', например
 '/usr/lib/klish/dbs/kdb-libxml2.so'.
 
+
 ## Плугины исполняемых функций
 
 Каждая команда klish выполняет какое-либо действие или несколько действий сразу.
@@ -115,4 +116,43 @@ Klish умеет получать символы только из плугин
 * script - Исполнение скриптов. Учитывает шебанг (shebang) для определения
 какой интерпретатор использовать. Таким образом могут выполняться не только
 shell скрипты, но и скрипты на других интерпретируемых языках. По умолчанию
-используется интерпретатор shell.
+используется интерпретатор shell.
+
+Пользователи могут писать свои плугины и использовать собственные символы в
+командах klish. Установленные плугины находятся в '/usr/lib/klish/plugins'
+(если конфигурировать сборку с --prefix=/usr). Их имена 'kplugin-<имя>.so',
+например '/usr/lib/klish/plugins/kplugin-script.so'.
+
+
+## Структура XML конфигурации
+
+Основным способом описания klish команд на сегодняшний день являются XML файлы.
+В данном разделе все примеры будут основаны на XML элементах.
+
+
+### Области видимости VIEW
+
+Команды организованы в "области видимости", называемые VIEW. Т.е. каждая команда
+принадлежит какому-либо VIEW и в нем определена. При работе в klish всегда
+существует "текущий путь". По умолчанию, при запуске klish текущим путем
+назначается VIEW с именем "main". Текущий путь определяет какие команды в данный
+момент видны оператору. Текущий путь можно менять командами навигации. Например
+перейти в "соседний" VIEW, тогда текущим путем станет этот соседний VIEW,
+вытеснив старый. Другая возможность - "уйти вглубь", т.е. зайти во вложенный
+VIEW. Тогда текущий путь станет двух-уровневым, подобно тому, как можно зайти во
+вложенную директорию в файловой системе. Когда текущий путь имеет более одного
+уровня, оператору доступны команды самого "глубокого" VIEW, а также команды всех
+вышележащих уровней. С помощью команд навигации можно выходить из вложенных
+уровней. При смене текущего пути используемая команда навигации определяет будет
+ли VIEW текущего пути вытеснен на том же уровне вложенности другим VIEW, либо
+новый VIEW станет вложенным и в текущем пути появится еще один уровень. То, как
+VIEW определены в XML файлах не влияет на то, может ли VIEW быть вложенным.
+
+При определении VIEW в XML файлах, одни VIEW могут быть вложены в другие VIEW.
+Не надо путать эту вложенность с вложенностью при формировании текущего пути.
+VIEW, определенный внутри другого VIEW добавляет свои команды к командам
+родительского VIEW, но при этом может адресоваться и отдельно от родительского.
+Кроме этого существуют ссылки на VIEW. Объявив такую ссылку внутри VIEW, мы
+добавляем команды того VIEW, на который указывает ссылка, к командам текущего
+VIEW. Можно определить VIEW со "стандартными" командами и включать ссылку на
+этот VIEW в другие VIEW, где требуются эти команды, не переопределяя их заново.