У меня есть очередной вопрос к вам, мои уважаемые читатели. Задумался я над таким феноменом, как шаблонные движки, в простонародье templating engines. Следующие варианты мне встречались:
Html с вкраплениями своего языка
Примеры: собственные шаблоны веб-фреймворка (
django templates), универсальные шаблонные движки (
velocity,
freemarker), в т.ч. и
(
Read more... )
Comments 15
Reply
Reply
Reply
Reply
Тут все, как по Марксу.
Довелось мне как-то раз писать документацию к одному движку типа "HTML с вкраплениями языка". И заказчик сказал примерно следующее: вы только не пишите, что у нас там язык программирования. А то нам кодерам придется платить, как программистам.
Reply
2. XSLT как бы стандарт, но очень уж трудно найти верстальщика.
Reply
К слову, когда мне в Ruby потребовался "наколенный" шаблонизатор для подстановки значений переменных и выражений в HTML, то на его написание с нуля ушло 20 минут. ;)
Reply
Что заставляет людей выдумывать свой птичий язык? Понятно, что для убогой (Java) это необходимость, но для нормальных языков вроде python? Неужели он настолько сложен для дизайнеров?
Проще читается. К примеру можно взять jstl и jsp обеспечивающих аналогичный функционал и сравнить. Так-как обладает усеченным функционалом проще объяснить верстальщику и дизайнеру где тут что. Опять же для php к примеру это излишне :)
Когда они уже угомонятся и хотя бы синтаксис какой-нибудь стандартный/общий будут использовать?
Никогда :)
Существуют ли нормальные реализации варианта 3, лишенные выписанных недостатков?
Тут опять имеется все та же проблема что и у XML конфигураций. Разделение самой настройки и предмета настройки. В Java это сильно облегчается аннотациями. Если идти по этому пути получится или пункт 1 или пункт 2.
Существуют ли какие-нибудь продвинутые разработки про поддержку аякса (то есть чтобы удобно гонять туда-сюда html-сниппеты и джаваскрипты всякие) в вариантах 1-2? Я к этому скорее скептически отношусь, но вдруг я чего-то ( ... )
Reply
Пункт 3 - это натягивание ужа на глобус. Рано или поздно скотинка лопается. В пунктах 1 и 2 имеем два противоречия: безопасность - мощность и простота - изучение полноценного языка. Дополнительно к этому для унивесальных шаблонизаторов встает проблема выбора синтактсиса и разметки, не интерферирующей с синтаксисом выхода (отсюда всяческие «{{-» и «[[*»). Еще этим синтаксическим уксусом отгоняют любителей писать логику внтури шаблонов.
ИМХО, самый удобный вариант в пункте 2. В ERB все неплохо, в Web.py (templetor) все тоже неплохо, пока целевой язык разметки пофигистически относится к пробельным элементам; проблемы у Web.py начинаются с RST и прочими благодаря пробельно-отступному освенциму в самом Пайтоне.
Так что везде есть дроубэки. Надо выбирать что-нибудь простое и динамичное, с возможностью докрутить до нужного, не сломав себе голову, вплоть до второй версии проекта или его смерти :)
Reply
Leave a comment