VITRAGE: Практика
· Немного о стилях парсинга
· Примеры использования
· Работающие сайты
· Хостинги
· Вопросы и ответы
· Задать вопрос
· E-mail
 
Теория
· Компиляция и установка
· Идеология VITRAGE
· Оптимизация HTML
· Создание виртуальных хостов
· Создание структуры доменов
· Ваш собственный язык гипертекстовой разметки
 
О модуле
· Что такое VITRAGE
· История модуля
· Загрузить модуль
· Документация целиком
· Загрузить документацию в формате MS Word
· Слово автора
· English version
 
Технология VITRAGE
Один из витражей города Иркутска
Исходный код
· VHTML-код этой страницы (в новом окне)
· VHTML-код файла vitrage (в новом окне)
 
· Немного о стилях парсинга

Для общей полноты сведений коснемся еще одного момента, связанного с эволюцией развития модуля VITRAGE.

Дело в том, что до версии 0.10 модуль VITRAGE осуществлял парсинг несколько иначе, чем сейчас. Старый стиль парсинга был "построчным", то есть объектами шагов работы VITRAGE были не тэги, а строки VHTML-файлов. Схема работы модуля была при этом такова: VITRAGE получал из VHTML-файла очередную строку (или описание тэга из файла конфигурации), после чего заменял в этой строке (или в описании тэга) все переменные на их значения, а уже затем начинал последовательную работу с тэгами. Эту схему ярко иллюстрирует следующий пример:

<%vitrage% A=1>
<%vitrage% A=2><%echo% str="$A$">

Очевидно, что после работы данного кода модуль должен вывести значение переменной A, то есть "2". Старый же стиль предполагает, что сначала во всей строке произойдет замена переменных на их значения (а значение переменной A на момент начала обработки второй строки примера равно "1"!), а затем уже будут исполнены тэги. Таким образом, в соответствии со старым стилем парсинга, модуль выведет для данного примера число "1".

Совершенно ошибочной в старом стиле парсинга была бы следующая конструкция:

<%vitrage% G="$%gt%$">

поскольку до выполнения тэга (на этапе замены переменных значениями) она была бы преобразована в

<%vitrage% G=">">

а это, согласно правилам парсинга, является нарушением вложенности знаков "<" и ">". Для вывода знаков "<" и ">" с использованием старого стиля парсинга применялись хитрости вида

<%var% 1="%gt%">

Оправданием для реализации именно такой схемы парсинга до некоторого времени был более простой код модуля и чуть более быстрая обработка VHTML-файлов, но впоследствии неудобства взяли верх над преимуществами, и версия 0.10 уже работала по-новому, используя новый стиль парсинга, названный "последовательным" (эта версия даже получила кодовое имя "stylish", то есть "стильная").

Для совместимости со старыми версиями, новые версии VITRAGE содержат полную поддержку старого стиля парсинга, а управление стилями осуществляется при помощи ключевого слова VGParseOldStyle, которое может принимать значения "Off" (по умолчанию; используется новый последовательный стиль) и "On" (будет использоваться старый стиль парсинга):

VGParseOldStyle On
VGParseOldStyle Off

"Отголоском" старого стиля парсинга в новом стиле стал встроенный тэг <%require%>, особенности действия которого описаны в разделе "Ваш собственный язык гипертекстовой разметки". Вероятнее всего, теперь это единственный случай, когда вам потребуется представление о старом построчном стиле парсинга.