(всё описанное касается alterator версии 2.9 и старше)
Документ – основным кирпичик в построении интерфейса. Каждый документ есть виджет, и наоборот, каждый виджет есть некоторый документ. Простейшие документы представляют простейшие виджеты, например, кнопку, метку и так далее. Документы сложнее, композиция простейших, представляет комплексные виджеты – самостоятельные части диалога с пользователем. Кроме того каждый документ можно рассматривать ещё как некоторую программу на простом подмножестве языка программирования Scheme. Ну обо всём по порядку.
Документ прежде всего текстовый файл, размещающийся где-то на файловой системе.
Документы адресуются любым распространённым способом: через указание полного пути, через URI по правилам RFC-3986, через URI по правилам alterator.
Во вторую, как не странно, очередь документ это программа на подмножестве языка программирования Scheme.
Прежде чем мы увидим графическое воплощение документа, он загружается и исполняется интерпретатором.
Как в каждом языке программирования, часть документа можно скрывать от интерпретатора – делать комментарии.
Остаток строки после символа “;" интерпретатором не рассматривается. В дальнейшем изложении мы будем пользоваться комментарием для добавления пояснений в текст примеров.
C этой точки зрения документ представлен как множество вложенных друг в друга окружений. Каждое окружение не что иное как область видимости локальных переменных. Окружения отдельных документов не пересекаются и соответственно вы не можете использовать в одном документе вспомогательные функции, определённые в другом документе.
Для удобства управления окружениями предоставлено несколько базовых конструкций:
1. (document:insert <идентификатор>)
В результате происходит вставка «окружения» внутрь существующего, <идентификатор> – это идентификатор документа как файла, определённый одним из перечисленных выше способов.
Пример:
2. (document:envelop keyword), (document:end-envelop keyword) – для создания вложенного окружения вовсе не обязательно создавать отдельные файлы, достаточно окружить его инструкциями document:envelop и document:end-envelop.
Последняя конструкция не обязательна если вы хотите распространить вложенное окружение до конца файла.
Пример: