Site Creator предназначен для автоматизации разработки сайтов. Может применяться как для разработки полностью статических сайтов, так и для динамических с прекомпиляцией.
Оригинальная технология генерирования веб-страниц и простота скриптового языка упрощают разработку и сопровождение сайтов среднего класса до всех мыслимых пределов.
Site Creator − это инструмент для профессионального веб-программиста при разработке сайта. Последующую поддержку сайта может осуществлять работник с минимальными навыками владения html и текстового редактора.
Основой функционирования Site Creator являются макросы. Макрос продставляет из себя правило трансляции с несколькоми параметрами.
Макросы составляются в библиотеки макросов, которые физически предствалены в виде текстовых файлов.
Имеется ряд предопределённых макросов для служебных нужд.
Макросы обявляются в файле "macro" (по умолчанию) или ином, определённом пользователем.
При запуске трансляции Site Creator обходит файлы сайта в соответствии с их списком и транслирует каждую страницу.
@@
".%%
".include имя_файла
macro имя_макроса {{ тело макроса %%1 тело макроса %%2 тело макроса }}
строка_комментария
Строка комментария не должна входить в тело объявления макроса
@@имя_макроса
@@имя_макроса{{значение1}{значение2}{значение3}}
@@year
@@month
@@day
@@root
@@self
@@generator
@@data
@@table
@@eval
@@if{{Параметр1}{Параметр2}{Значение}}
Файл с данными представляет собой текстовый файл, разделителем элементов в котором является символы TAB, CR+LF, CR (в простейшем случае отдельные строки). Пустые элементы не считаются значимыми. В образцах строки можно использовать параметры %%cell − следующее значение данных и %%line − значение образца строки предыдущего уровня. Первыми заполняются значения нижнего уровня, заполнение производится в порядке появления.
При обработке списка так же можно использовать параметры %%count − счетчик строк верхнего уровня и %%eof − признак конца потока данных.
Примеры использования:
<ul>
@@data{{data.txt}{<li>%%cell}}
</ul>
<table>
@@data{{table.txt}{<td>%%cell</td><td>%%cell</td>}{<tr>%%line</tr>}}
</table>
<table>
@@data{{table.txt}{<td>%%cell</td><td>%%cell}{<tr @@if{{%%cell}{0}{bgcolor=red}}>%%line</tr>}}
</table>
<table> @@data{{table.txt}{ <td>%%cell</td> <td>%%cell</td> <td>%%cell</td> }{ @@if{{%%count}{1}{ <th>%%line</th> // заголовок таблицы (1я строка) }{ @@if{{eof}{1}{ <tf>%%line</tf> // футер таблицы (последняя строка) }{ <tr>%%line</tr> // тело таблицы }} }} }} </table>
Начиная с версии 2.7.0 в SC имеется вычислитель математических выражений. Вычислитель используется вызовом макроса @@eval{{}}. Пример @@eval{{2*(4+3)}}, макрос вернет значение 14. В выражениях можно подставлять значения %%count или данные из внешних файлов.
Список основных поддерживаемых операций
Операция Формула(ы) Пример использования ----------------------------------------------------------------------- Больше > a > b Больше или равно >= a >= b Меньше < a < b Меньше или равно <= a <= b Не равно <> != # a <> b Равно = a = b ----------------------------------------------------------------------- Сложение + a + b Вычитание - a - b Логическое ИЛИ or || | a or b Логическое ТОЛЬКО ИЛИ xor \ a xor b Умножение mul * a mul b Деление div / a div b Остаток от деления mod % a mod b Логическое И and && & a and b Поразрядный сдвиг вправо shr >> a shr b Поразрядный сдвиг влево shl << a shl b ----------------------------------------------------------------------- Возведение в степень ^ a ^ b Факториал ! a! ----------------------------------------------------------------------- Модуль ABS abs(a) Квадрат SQR sqr(a) Корень квадратный a>0 SQRT sqrt(a)Числа в десятичном (DEC) виде набираются обычным образом, в шестнадцатеричном (HEX) имеют следующий вид: $<ЧИСЛО> или 0<ЧИСЛО>h, в двоичном (BIN): <ЧИСЛО>b, в восьмеричном (OCT): <ЧИСЛО>o, в экспоненциальном виде (EXP): <ЧИСЛО>e<СТЕПЕНЬ>, где степень может быть как положительная, так и отрицательная.
@@table{{FileName}{LineLimit}{Rec1}{Rec2}...}
Адресация колонок таблицы ##1, ##2, ##3, ...
FileName - имя файла с данными
LineLimit - число строк, требующихся для вывода (если не задано, то выводятся все)
Пример:
@@table{{data.txt}{}{<tr><td>##1</td><td>##2</td></tr>}}
Допускается вложенный вызов @@table при обращении к разным файлам данных.
При запуске программы без параметров предполагаются следующие умолчания:
Файл с именами обрабатываемых файлов: files
Корневой файл с определениями макросов: macros
Директория готового проекта: ready
Формат запуска:
sc.exe [-l:filelist] [-m:macros] [-g:gendir] [-d]
Без параметров эквивалентно:
sc.exe -l:files -m:macros -g:ready
sc.exe -?
для справки
Ключ -d запускает оптимизацию размера html файла (удаление лишних пробелов и переводов строк), что уменьшает размер выходного html файла и делает его нечитаемым.
Интерфейсная версия отличается от консольной возможностью генерировать страницы сайта "на лету", то есть по мере написания макросов и содержимого страниц.
Это значительно упрощает первоначалные стадии разработки сайта (процесс написания и отладки макросов, а так же при последующей выверке и правке содержимого сайта).
При запуске программы появляется значок в трее. При вызове контекстного меню на нём можно открыть окно проектов, либо окно сообщений. Информация, выводимая в окне сообщений эквивалентна информации, выводимой в консольной версии.
В окне проектов содержатся все рабочие проекты. Свойства проекта вызываются посредством двойного нажатия левой клавиши мыши на проекте. У каждого проекта определяется список обрабатываемых файлов, библиотеки макросов и каталог вывода соответственно. Так же возможна установка флажка оптимимзации HTML и флажка автоматической сборки сайта по мере измененния исходных страниц или библиотек макросов.
File not found
Unable write to
Recursive including
Invalid include syntax
Invalid macros definition
Macros redeclared
Too many macroses
Undeclared identifier
Invalid macros name in
Invalid argument in
Invalid argument for @@data in
Keyword %%cell not found in
Invalid expression in @@eval
ok