Ruby on Rails → Шаблонизатор Slim — альтернатива Haml'y
Давно хотел попробовать Haml, но всё не было времени. Но вот недавно обнаружил новый шаблонизатор, который мне сразу понравился. По словам создателей, он взял лучшее от Jade и Haml. Основная задача — сократить объем кода, при этом не делая его страшным и непонятным.
Вот так выглядит пример шаблона с использованием Slim:
Вот так выглядит пример шаблона с использованием Slim:
doctype html
html
head
title Slim Examples
meta name="keywords" content="template language"
body
h1 Markup examples
#content.example1
p Nest by indentation
= yield
- unless items.empty?
table
- for item in items do
tr
td = item.name
td = item.price
- else
p No items found
#footer
| Copyright © 2010 Andrew Stone
= render 'tracking_code'
script
| $(content).do_something();Веб-разработка → Эти бесчисленные парадигмы, концепции, инструменты и фреймворки из песочницы
Мое мировоззрение, как программиста, сформировалось еще во времена консольных приложений и текстовых пользовательских интерфейсов, на смену им пришли графические оконные GUI, а сейчас я наблюдаю уже третий виток технологий, связанный с глобальной сетью. Каждый раз, конечно же, приходилось менять не только любимый язык программирования, но и весь технологический стек, с наработками, заготовками и достаточно обширными библиотеками, кои сейчас гордо зовутся фреймворками. Резать приходилось по живому, нещадно и решительно.
Веб-разработка → Шаблонизатор. Обрамление конструкций
Складывается впечатление, что стандарт синтаксиса шаблона – это то, что мы используем в качестве обрамления управляющих конструкций (скобочки, процентики, вопросики). Это неверно. Символы, в которые мы заключаем ту или иную запись шаблона, это всего лишь способ связать данные с логикой. Тут сложно установить какой-то стандарт. А вот логика воспроизведения той или иной конструкции должна быть заранее оговорена, и именно тогда мы сможем делать совместимые друг с другом шаблоны для разных языков программирования.
Но сегодня мы всё же поговорим про эти самые скобочки. Не забудем и про сигилы для переменных.
Примеров ограничения конструкций шаблонизатора превеликое множество. Угловые, фигурных, квадратные, круглые скобки в сочетаниях друг с другом и с такими символами как %, ?, $, #… В общем вы знаете, что специальных символов достаточно много, а комбинаций их использования еще больше.
Но сегодня мы всё же поговорим про эти самые скобочки. Не забудем и про сигилы для переменных.
Примеров ограничения конструкций шаблонизатора превеликое множество. Угловые, фигурных, квадратные, круглые скобки в сочетаниях друг с другом и с такими символами как %, ?, $, #… В общем вы знаете, что специальных символов достаточно много, а комбинаций их использования еще больше.
Веб-разработка → Стандарты синтаксиса шаблонизаторов. Первые шаги
Для затравки и предметного обсуждения нужна точка отсчета. В шаблонизаторе нас интересуют поддерживаемые типы конструкций, способ их обрамления, какие-то возможности (препросмотр без компиляции).
Основные типы конструкций для управления выводом в шаблоне:
Уже этих конструкций с лихвой достаточно, чтобы реализовать большинство проектов. И само собой мы их видим почти в каждом шаблонизаторе, с теми или иными отличиями и особенностями. Но давайте поразмыслим, какие в теории возможности они должны позволять использовать, и как эти реализации должны выглядеть в идеале.
Основные типы конструкций для управления выводом в шаблоне:
- Переменные.
- Условные операторы.
- Операторы циклов.
- Инклуды, блоки.
- Наследование.
Уже этих конструкций с лихвой достаточно, чтобы реализовать большинство проектов. И само собой мы их видим почти в каждом шаблонизаторе, с теми или иными отличиями и особенностями. Но давайте поразмыслим, какие в теории возможности они должны позволять использовать, и как эти реализации должны выглядеть в идеале.
Веб-разработка → Стандарты синтаксиса шаблонизаторов
Перестали ли вы слышать от новичков вопрос: «какой выбрать шаблонизатор?». Не думаю.
Единственное что можно с уверенностью сказать, что периодически некоторые решения становятся популярны в определенных кругах, но они по большей части органичение их области применения, это язык программирования. Перечислять плюсы существования каких-либо стандартов не нужно. Все понимают, «от этого хорошо будет всем». Придумать, закрепить, применить их – вот эта задача, далеко не тривиальная, но ведь решаемая.
Давайте начнем двигаться к этому.
Единственное что можно с уверенностью сказать, что периодически некоторые решения становятся популярны в определенных кругах, но они по большей части органичение их области применения, это язык программирования. Перечислять плюсы существования каких-либо стандартов не нужно. Все понимают, «от этого хорошо будет всем». Придумать, закрепить, применить их – вот эта задача, далеко не тривиальная, но ведь решаемая.
Давайте начнем двигаться к этому.
Веб-разработка → Javascript шаблонизатор с серверной частью на perl
Мы начали с ( javascript шаблонизатора), что использовать один и тот же шаблон на стороне клиента и на стороне сервера, это удобно. Готовых рализаций такого подхода кот наплакал. Кровь приливает к голове, мы решаемся написать своё решение.
Пусть у нас есть шаблоны, от нашего шаблонизатора. На сервере они обрабатываются perl'ом. В конечном итоге мы хотим некоторые из имеющихся шаблонов, или их частей, не вынесенных в отедельный файл, использовать на стороне клиента. Необходимо с минимальными затратами(в потерере функциональности) воспроизвести процедуры генерации html. В результате обработки шаблонов, мы хотим получить наборы предварительно указанных шаблонов и блоков, оформленных в виде библиотеки javascript. Сказано – сделано.
Обрисуем исходные данные и задачу
Пусть у нас есть шаблоны, от нашего шаблонизатора. На сервере они обрабатываются perl'ом. В конечном итоге мы хотим некоторые из имеющихся шаблонов, или их частей, не вынесенных в отедельный файл, использовать на стороне клиента. Необходимо с минимальными затратами(в потерере функциональности) воспроизвести процедуры генерации html. В результате обработки шаблонов, мы хотим получить наборы предварительно указанных шаблонов и блоков, оформленных в виде библиотеки javascript. Сказано – сделано.
JavaScript → Велосипедим, или Django-like Javascript Templates
Одним из компонентов нашего проекта Shopium.ua является административный интерфейс, который строится как полностью выполняющийся на клиенте rich internet application.
Для отрисовки данных приходящих с сервера в HTML нам часто нужен Javascript-шаблонизатор.
Различных шаблонизаторов для Javascript существует предостаточно. Даже в библиотеке ExtJS которую мы используем для своего проекта их целых два, однако их синтаксис и возможности каждого далеки от идеала.
К хорошему быстро привыкаешь, и мы быстро привыкли к синтаксису шаблонов Jinja2 который мы используем для генерации HTML на стороне сервера. И захотели такой же,но с перламутровыми пуговицамино для Javascript.
И сформировали к нему такие требования:
Для отрисовки данных приходящих с сервера в HTML нам часто нужен Javascript-шаблонизатор.
Различных шаблонизаторов для Javascript существует предостаточно. Даже в библиотеке ExtJS которую мы используем для своего проекта их целых два, однако их синтаксис и возможности каждого далеки от идеала.
К хорошему быстро привыкаешь, и мы быстро привыкли к синтаксису шаблонов Jinja2 который мы используем для генерации HTML на стороне сервера. И захотели такой же,
И сформировали к нему такие требования:
XSLT → Другая книга про XSLT
Вашему вниманию предлагается небольшая по объему книга (можно называть это брошюрой), посвященная XSLT и его использованию в качестве языка шаблонизатора при создании сайтов на UMI.CMS.
Это не реклама «еще одной cms», и «еще одного шаблонизатора», а лишь предложение познакомиться с одним из подходов к использованию технологии XSLT при создании сайтов, где в качестве системы управлением контента взята UMI.CMS.
Это не реклама «еще одной cms», и «еще одного шаблонизатора», а лишь предложение познакомиться с одним из подходов к использованию технологии XSLT при создании сайтов, где в качестве системы управлением контента взята UMI.CMS.
Веб-разработка → Универсальный нумератор как шаблонная функция Mako
Думаю все сталкивались с необходимостью создания «номеров страниц» для сайта. В Pylons где то был нумератор (в webhelpers) но функциональность его мне не понравилась. Если делать нумератор достаточно быстрым и гибким (не просто все номера) то код получается не маленьким и его клонирование усложняет шаблоны. И тут к нам приходят на помощь шаблонные функции Mako.
Персональные блоги → Шаблонизатор: Subversion + DOM-parser в деле
“Долбанный будильник!” – выругнулся в подушку Хэкер и, не поднимая головы, потянулся рукой к находившемуся рядом столу. Стоявшие на нем пустые пивные бутылки с грохотом покатились на пол, пока рука Хэкера щупала пространство на столе, пытаясь достать этот ужасный девайс, но тщетно.
Поднявшись и расправившись с будильником, сидя на краю кровати, Хэкер посмотрел в зеркало, висевшее напротив. ”Паршиво выглядишь”, – подумал он.
Сегодня он должен высказать свои соображения по шаблонизатору перед Высшим Хэкерским Советом, однако, этих соображений — ровно, как и желания присутствовать на совете — не было.
Хэкер поднялся с кровати. Умывшись холодной водой и походив взад-вперед по комнате, он задумчиво посмотрел в окно. В доме, что напротив, рабочие под присмотром дамочки с собачкой меняли окна фасада.
“Окна, окна… – думал Хэкер. – Окна – это Windows; Windows, Windows....Windows – это тормоза, тормоза — это черепаха; черепаха, черепаха… черепаха — это Subversion клиент...Subversion??? “
“Эврика! ” – воскликнул Хэкер. Решение пришло само собой. Теперь он знал, что он будет предлагать на совете.
Поднявшись и расправившись с будильником, сидя на краю кровати, Хэкер посмотрел в зеркало, висевшее напротив. ”Паршиво выглядишь”, – подумал он.
Сегодня он должен высказать свои соображения по шаблонизатору перед Высшим Хэкерским Советом, однако, этих соображений — ровно, как и желания присутствовать на совете — не было.
Хэкер поднялся с кровати. Умывшись холодной водой и походив взад-вперед по комнате, он задумчиво посмотрел в окно. В доме, что напротив, рабочие под присмотром дамочки с собачкой меняли окна фасада.
“Окна, окна… – думал Хэкер. – Окна – это Windows; Windows, Windows....Windows – это тормоза, тормоза — это черепаха; черепаха, черепаха… черепаха — это Subversion клиент...Subversion??? “
“Эврика! ” – воскликнул Хэкер. Решение пришло само собой. Теперь он знал, что он будет предлагать на совете.