Наверняка многие из вас задумывались о том, как устроены шаблонизаторы, какого его внутреннее устройство и каким образом происходит преобразование в фрагменты HTML-кода, однако не догадывались о каких-то особенностях его реализации. Поэтому давайте реализуем упрощенную версию движка шаблонов и продемонстрируем как это работает «под капотом».
Читать полностью »
Рубрика «шаблонизатор» - 3
Пишем свой шаблонизатор на Python
2013-05-25 в 21:59, admin, рубрики: python, перевод, переводы, Программирование, Регулярные выражения, шаблонизатор, метки: python, перевод, Программирование, регулярные выражения, шаблонизаторMaskJS — как HMV* фреймворк
2013-05-16 в 10:40, admin, рубрики: html, javascript, Веб-разработка, фреймворк, шаблонизатор, метки: фреймворк, шаблонизатор
Разрабатывая MaskJS вот уже больше полугода, он превратился из DOM шаблонизатора в очень мощный, но при этом производительный веб фреймворк. В статье познакомлю вас с возможно интересными подходами к разработки. Уверен, будет интересно почитать о использовании сигналов и слотов вместо DOM событий. И как компоненты делают нашу жизнь проще. Маска легко интегрируется в уже готовый проект, и даже может быть использована вместе с любым другим фреймворком. Основным же отличием наверное является render flow
, где в процессе поэтапно создается Document Fragment / контроллеры / «биндинги». Собственно всю гибкость даже сложно передать, но я попробую, и приглашаю под кат.
Читать полностью »
Separate – Шаблонизатор для PHP
2013-02-21 в 13:31, admin, рубрики: php, Веб-разработка, шаблонизатор, метки: PHP, шаблонизаторПредставляю вашему вниманию PHP шаблонизатор, который я разрабатывал несколько лет и только недавно выложил в сеть.
Как все началось и зачем вообще нужен еще один шаблонизатор?
Smarty и другие популярные шаблонизаторы мне показались слишком громоздкими для простых проектов и я решил разработать собственный шаблонизатор. Первая версия появилась еще в 2004 году. В процессе разработки интернет проектов я постоянно внедрял новые идеи и прочие улучшения. В настояший момент движок шаблонизатора состоит из всего одного файла и все равно имеет ряд уникальных возможностей.
На сайте separate.esud.info/ вы можете скачать исходный код. Также там доступна подробная документация всех функций на трех языках – русском, английском и немецком. Я надеюсь что проект заинтересует людей и будет в будущем активно развиваться. Поэтому код я выложил в Github на сайте github.com/esud/separate
Подробное описание вы найдете на сайте ru.separate.esud.info/documentation/
Ниже я коротко опишу ключевые возможности.
NodeSmarty новый шаблонизатор для node.js (3.beta)
2013-02-12 в 12:45, admin, рубрики: html, javascript, node.js, nodejs, шаблонизатор, метки: html, javascript, nodejs, шаблонизаторНаверно каждый веб-разработчик слышал о шаблонизаторе Smarty (php). Но так как я частенько увлекаюсь JavaScript'ом, то решено было найти подобный шаблонизатор для этого языка, но серверного (node.js, ага). Первые ссылки в поисковике выдают такие шаблонизаторы, как: ECT, JUST, Mu. Все они, естественно, не подходили для меня, т.к. слишком далеко были от синтаксиса Smarty.
Чтож, раз хочется, а решений нет — то сделай. Выискивая время на работе и иногда получая по «шапке», родился проект NodeSmarty, который, в будущем, будет частично копировать синтаксис Smarty.
Snakeskin — шаблонный движок с поддержкой наследования
2013-02-04 в 10:04, admin, рубрики: javascript, шаблонизатор, метки: javascript, шаблонизаторВведение
Наверно каждый опытный JavaScript разработчик так или иначе писал свой шаблонный движок. Иногда это бывает по незнанию, что уже существует огромное количество схожих поделок, а иногда разработчик стремится реализовать все свои «хотелки» в своей собственной реализации. У меня был и первый и второй случай, причём сейчас я хочу рассказать именно о втором.
Читать полностью »
Вышло обновление JavaScript шаблонизатора ECT
2012-12-17 в 7:55, admin, рубрики: javascript, node.js, template engine, шаблонизатор, метки: javascript, node.js, template engine, шаблонизаторРовно три месяца назад я представил хабрасообществу JavaScript шаблонизатор ECT. Вчера для него вышло обновление, о котором я хочу рассказать в этой статье.
Вы знакомы с ECT?
ECT это JavaScript шаблонизатор со встроенным CoffeeScript синтаксисом (отсюда и название: Embedded CoffeeScript Templates). ECT изначально разрабатывался с упором на максимальную производительность и при этом он предоставляет разработчику богатый набор функций.
Что нового?
Попробуй БЭМ на вкус!
2012-12-12 в 14:18, admin, рубрики: css, html, javascript, templates, БЭМ, Веб-разработка, шаблонизатор, шаблоны, метки: css, html, javascript, templates, БЭМ, мастер класс, шаблонизатор, шаблоны Эта статья рассказывает о том, как создать проект с использованием БЭМ-технологий.
Мы шаг за шагом создадим страничку каталога товаров, пользуясь принципами БЭМ в CSS, возможностями писать декларативный JavaScript на фреймворке i-bem.js
и с использованием шаблонизатора BEMHTML
. Помогать делать всё это будут bem tools
, в частности — инструмент для разработки bem server
.
Важно: в статье нет особенных подробностей, её цель — получить проект максимально быстро. Текст, раскрывающий больше информации, пройдёт следующим постом.Читать полностью »
ECT — новый JavaScript шаблонизатор со вкусом кофе
2012-09-17 в 5:29, admin, рубрики: coffee script, javascript, node.js, template, шаблонизатор, метки: coffee script, javascript, node.js, template, шаблонизаторECT — это логическое развитие существующих подходов к шаблонизации под соусом высокой производительности. В начале года я публиковал свою разработку — шаблонизатор JUST. ECT начинался как его развитие, но через некоторое время различие в них стало слишком большим, поэтому появился новый продукт.
Синтаксис
Во время работы с JUST, который использует EJS-совместимый синтаксис, пришло понимание, что это не очень удобно. Хотелось упрощения, хотя бы, для условных операторов и циклов. Я начал развивать код в этом направлении, но вовремя остановился. Я сам очень плохо отношусь к подобным велосипедам в плане синтаксиса. Когда добавляешь подобный синтаксический сахар в свою разработку, это кажется очень крутым и удобным нововведением. Но разработчик, который видит его впервые, скорее выберет знакомое ему и понятное решение, чем будет разбираться в новом синтаксисе.
Логичным решением в данной ситуации стало использование CoffeeScript в качестве встраиваемого языка.Читать полностью »
Шаблоны *.docx с использованием скриптлетов Groovy
2012-04-19 в 6:26, admin, рубрики: docx, groovy, template, Программирование, разработка, шаблон, шаблонизатор, метки: docx, groovy, template, шаблон, шаблонизатор
В одном из своих проектов мне понадобилось автоматизированно формировать документы договоров для клиентов. Договор представляет собой юридический документ длиной около 10 страниц и является шаблоном: в нужных местах подставляются данные конкретного клиента.
Задача
Первичные требования были такими:
В сложном стилизованном документе doc или docx вывести нужную информацию в помеченных местах.
В дальнейшем они были уточнены и расширены:
- В сложном стилизованном документе docx вывести данные в помеченных местах.
- Разметка вывода данных должна быть похожа на скриптлеты:
${}, <%%>, <%=%>
. - Данными для вывода могут быть объект. Нужна возможность обращения к полям.
- Для вывода использовать один из скриптовых языков: Groovy, JavaScript.
- Нужно иметь возможность выводить списки объектов в таблицы, в каждой ячейке отображая поля.
Имеющиеся решения
Оказалось, что имеющиеся в области продукты (я говорю про платформу Java), не решают поставленную задачу. Ниже краткий обзор продуктов:
Jasper reports
В качестве шаблона использует файл xml-разметки *.jrxml. Файл разметки документа + данные (как из БД, так и Map параметров) отдаются процессору, который формирует любой из следующих форматов: PDF, XML, HTML, CSV, XLS, RTF, TXT.
Не устроило:
- Это не WYSIWYG, даже при наличии iReport — визуального средства формирования jrxml-файлов.
- Надо хорошо изучить JasperReports API, чтобы создать и стилизовать сложный шаблон.
- Не выводит в нужном формате. Можно и PDF, но хотелось бы иметь возможность потом поредактировать выходной документ.
Рано или поздно девелоперу, создающему сайты статусом выше «сайт-визитка», приходится сталкиваться с таким понятием как «шаблоны» или «шаблонизация» визуального представления (не шаблоны проектирования). Что это такое? Механизм шаблонов позволяет отделять визуальное представление веб-приложения (по-скольку работаю только с веб-приложениями, то и рассуждать буду в этом контексте) от бизнес-логики таким образом, чтобы при изменении, например, внутренней логики попутно не приходилось переделывать всю html-верстку. На этом поприще уже давно существует несколько отдельно стоящих флагманских решений, позволяющих создавать довольно гибкие приложения в плане разделения труда дизайнеров-верстальщиков и программистов, а также предотвращать запутанность кода в больших приложениях. Описывать все их нет смысла. Это уже сделано до меня и не один раз. Помимо этого, почти каждая CMS и фрэймворк имеет собственные решения для отделения логики приложения от логики представления. Читать полностью »