угу, вот поэтому я хочу как-нить сесть и сделать light-версию Смарти...
А я уже делаю, могу дать исходник, только он пока что местами сыроват и пока что реализует не все нужные функции, вот что уже есть:
1. Компиляция шаблонов.
2. Модульность.
3. Отлов ошибок в синтаксисе шаблона. (кстати это у меня сделано лучше чем в Смарти)
4. Фильтры (до компиляции, после, output)
5. Логические инструкции (if, else)
6. Блоки (если "это" так можно назвать)
7. Параметры для инструкций можно задавать в любом порядке.
8. Альтернативный вариант записи массивов {$array[key]} == {$array.key}
9. Уровень контроля за ошибками, запись ошибок в лог, любые разделители вокруг инструкций, PHP код в шаблоне(Y/N), и другие мелкие фичи.
А самое главное, это то что в нём не надо делать $smarty->assign('var', 'var_content'); Используется глобальное пространство имён, если какую-нибудь переменную нельзя ни к коем случае выводить(например пароль админа), делается это так: $tpl->BlockVar('admin_pass'); и компилятор не пропустит эту переменную.
Весит это всё(вместе с парсером и плагинами) 40кб, а сам подключаемый класс - 10кб.