` | PARSER | документация |

parser

faqfaq
авторыавторы
документациядокументация

в действиив действии
куда говоритькуда говорить
жаргонжаргон

скачатьскачать

примерыпримеры
форумфорум

документация

Введение

Кому и зачем нужен Парсер?

В языке разметки гипертекстовых документов HTML нет переменных. Не предусмотрены в нем условные операторы, циклы, процедуры и другие средства, свойственные языкам программирования. Это делает работу HTML-кодера относительно простой, но очень увеличивает ее объем. Так, публикуя на каждой странице сайта номер контактного телефона, мы обеспечиваем себе необременительное занятие для рук в случае его изменения. При появлении на сайте нового раздела приходится обновлять списки навигационных ссылок во всех остальных разделах. Если все страницы сайта имеют единообразную структуру, например композиционно состоят из верхнего колонтитула, основного текста и нижнего колонтитула, то для ее изменения потребуется основательно перелопатить весь сайт.

Чем сложнее устроены страницы сайта, чем чаще изменяется содержимое, тем больше работы приходится выполнять HTML-кодерам. Обновление сайта становится весьма трудоемким мероприятием, а количество ошибок в коде и опечаток в тексте страниц возрастает. Эту проблему часто пытаются решить методом, который одна колоритная руководительница проекта обозначала термином “замена ручного труда женским”. Однако рост феминистических настроений прежде всего и в несколько меньшей степени приведенные выше практические соображения лишают подобный подход всяческой привлекательности.

В Студии Лебедева почти каждый день завершаются те или иные проекты. Неудивительно, что необходимость программы, которая взяла бы на себя большую часть рутинной работы по кодированию страниц, достаточно быстро стала для нас очевидной. Конечно, существовало и существует немало языков программирования, предназначенных для написания скриптов, генерирующих HTML-страницы. Но мы хотели получить решение, которое дало бы возможность автоматизировать работу HTML-кодера, а не заменить последнего программистом. Поэтому в 1997 г. мы сами взялись за дело и разработали первую версию Парсера. Затем на протяжении нескольких лет Парсер совершенствовался и развивался, а мы успешно использовали его при создании сайтов. Теперь мы дарим такую возможность вам.

Парсер автоматизирует создание и обновление сайтов, страницы которых схожи по оформлению, содержанию или структуре. Применение Парсера позволяет HTML-кодеру единожды описать повторяющиеся элементы информационного наполнения и разметки страниц, а затем ссылаться на них в коде каждой страницы сайта. Средствами Парсера можно дать описание структуры, а затем использовать его для формирования единообразно устроенных страниц. При этом если мы изменяем описание структуры или элемента разметки, то в дальнейшем все страницы генерируются с учетом внесенных корректив.

Парсер пригоден для решения большинства задач, которые обычно требуют программирования CGI-скриптов, например, для формирования страниц с результатами запросов к реляционным базам данных. В Парсере предусмотрены средства для работы с полями форм, строками запроса, переменными окружения веб-сервера. Немаловажно, что использование этих возможностей не требует высокой квалификации в области программирования. Задача данного руководства — помочь HTML-кодеру научиться создавать с помощью Парсера интерактивные веб-сайты, а также снабдить его необходимой справочной информацией.

Как это работает?

Парсер устанавливают на сервере. Веб-сервер конфигурируют таким образом, что HTML-файлы до пересылки их браузеру (или любому другому клиенту) обрабатываются Парсером. Если в тексте файла обнаруживаются операторы Парсера, последний выполняет их разбор и заменяет вычисленными значениями. Например, вызов оператора ^uri[] будет заменен адресом обрабатываемой страницы, вызов ^date[] — текущей датой, вызов ^macro[vsyo_na_svete] — результатом разбора макроса vsyo_na_svete, что бы он в себе ни таил. Остальной текст, в том числе тэги языка HTML, остается без изменений.

Может показаться, что по сути дела Парсер выполняет поиск и замену в пересылаемых веб-сервером HTML-файлах, только операция замены устроена сложнее, чем в текстовых процессорах. Это взгляд очень упрощенный, граничащий с ересью, но доля истины в нем есть, поскольку в элементарных случаях именно это и происходит. Далее, переходя от простого к сложному и от правил к исключениям из них, мы увидим, что для многих операторов это не совсем так, а для шаблонов страниц, в которых главенствующую роль играют не операторы, а макросы, совсем не так.

Как научиться делать сайты с помощью Парсера?

Прежде всего мы рекомендуем внимательно прочитать Главу 1. В ней разъясняются основные понятия: оператор, макрос, шаблон страницы, таблица, уровень обработки. Приводимые в этой главе примеры лишены практического смысла, зато иллюстративны и не загромождены лишним кодом. Тем не менее каждый пример может быть приведен в действие, если это необходимо для усиления педагогического эффекта.

В Главе 2 на примере несложного сайта показано, каким образом Парсер используется для описания структуры страниц и решения некоторых распространенных практических задач. Пожалуйста, разберитесь в этом примере, иначе в дальнейшем вам придется изобрести велосипед и не один.

Глава 3 систематически описывает все операторы Парсера. Она будет служить вам справочником при составлении кода страниц.

Глава 4 обобщает опыт применения Парсера и содержит рекомендации по составлению внятного и работоспособного кода.

Приложения содержат сведения, необходимые для установки Парсера, и другую справочную информацию.

О том, как с помощью Парсера решаются всевозможные частные задачи, читайте в разделе FAQ.

Прежде чем продолжить изучение Парсера, сделаем одно важное замечание относительно способа подачи материала, принятого в данном руководстве. Как вы убедитесь, в Парсере одни и те же конструкции могут давать разный эффект в зависимости от того, каким образом вы их употребляете. Говоря о таких конструкциях, мы не будем стараться сразу, одной общей формулировкой охватить все возможные варианты, так как их перечисление не прибавит ясности, но, напротив, загромоздит текст. Вместо этого мы сформулируем общее правило, а затем постепенно опишем возможные исключения.

Кодер, помни!

Парсер чувствителен к регистру. Например, вызовы ^var[VSYO_NA_SVETE] и ^var[vsyo_na_svete] будут восприниматься как разные.

Парсер учитывает пробельные символы. В отличие от традиционных языков программирования, Парсер не всегда игнорирует пробелы, символы табуляции и символы перевода строки. Например, вызов

^macro[show_news; ^date[];
          2
]

в качестве значения первого аргумента передаст макросу show_news текущую дату, предваряемую лишним пробелом, а в качестве значения второго аргумента — строку 2, окруженную символами перевода строки.

Условные обозначения

оператор Термины
Замечание... Сведения, на которые рекомендуется обратить особое внимание
Внимание!.. Предостережения
Пример Примеры
mnogo_deneg Цитируемый код
^menu[<H1>^item[id]</H1>] Листинги
> Символ табуляции


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева
`