Анатомия шаблонов BloggerИсточник: habrahabr drtitoff
ВступлениеВ Сети, как оказалось, не так уж и много информации относительно того, как создавать свои собственные темы оформления для блоговой платформы от Google, во всяком случае, в Рунете. Есть какие-то куцые посты про то, как настроить отдельное свойство конкретного виджета, да и только. Посему, в этой статье я решил консолидировать знания на данную тему. Базовые элементы шаблонаВ общем случае шаблон Blogger представляет собой XML-файл, содержащий описание HTML-страницы (CSS-форматирование также включено в этот файл). Выглядит это примерно так (некоторые детали опущены для простоты):
Блоки Итак, основной составляющей любого шаблона Blogger является его тело - Каждая секция в шаблоне открывается и закрывается специальным тегом, выглядит это примерно так:
Тег <b:section> может иметь следующие атрибуты (обязательным является только id):
Секции могут содержать только виджеты: если нужно вставить дополнительный код между виджетами в рамках одной секции, то эту секцию придется разбить на несколько частей. Виджет, по сути, представляет собой одинарный тег, который вставляется в том месте, где на странице должно отобразиться содержимое этого виджета: само наполнение хранится в базе данных Blogger"а и извлекается оттуда во время рендеринга на стороне сервера. Ниже представлено несколько примеров виджетов:
Виджет может иметь следующие атрибуты (только первые два из которых являются обязательными):
А вот и обещанные типы виджетов, которые вы можете использовать в своем шаблоне:
Каждый из них может быть описан в краткой (представленной выше) или расширенной форме, детализируя содержимое. О том, как настроить и видоизменить тот или иной виджет, речь пойдет в следующем разделе. Пока что хочу отметить, что после применения шаблона к блогу все элементы
Расширение и модификация виджетовПросто натыкать виджетов в тему - не интересно. Интересно кастомизировать их в соответствии со своими нуждами. Для этого, прежде всего, необходимо заменить одинарный тег на двойной:
О том, что можно поместить посредине, речь пойдет дальше.
ВставкиНаполнение виджета содержится в блоке "includable" в следующем формате:
Атрибутов всего два: id и var. C id мы знакомы, а var - это еще один идентификатор, который служит для того, чтобы ссылаться на данный блок во внутренних секциях (об этом чуть дальше). Каждый виджет должен иметь один includable с id='main'. Чаще всего это будет единственный элемент, который будет содержать всю необходимую информацию. Если вы опишете больше одного внутреннего блока, то они не будут отображаться автоматически. Например, если вы создали блок с id='new', то для его отображения в main вам нужно будет написать Тег Ниже представлен простой пример комбинации includable-блоков (о циклах речь пойдет чуть ниже):
Один блок includable может вставляться в нескольких местах страницы или не вставляться нигде, если пока его не нужно отображать.
ДанныеИтак, мы добрались до ключевого элемента из тех, которые нас интересуют, до данных:
Это несколько примеров того, как просто можно использовать тег data. В первом случае мы просто подставляем значение заголовка в необходимом месте, а во втором - атрибут url элемента photo (это похоже на доступ к полю объекта в ООП). То, какие "поля" есть у каких "объектов" в Blogger мы рассмотрим чуть позже.
ЦиклыДля записи циклов в шаблонах Blogger используется тег
Как видим, все довольно просто: в качестве var указывается переменная, служащая итератором, а в values мы записываем коллекцию, которую будем перебирать. Наглядный пример:
ВетвлениеУсловия, как не парадоксально, в Blogger записывают с помощью тегов
Тега В качестве условия может быть использовано любое выражение, принимающее значения true или false. Несколько примеров напоследок:
Data-тегиКак было сказано ранее, существует множество предопределенных тегов, позволяющих извлекать данные из базы Blogger"a. Все они записываются в виде: Важно помнить, что data-теги, касающиеся определенного виджета, могут быть доступны исключительно в рамках этого виджета: например, нельзя, обратиться к photo.url, находясь внутри виджета BlogArchive, потому что он "не знает" ни о какой фотографии, а тем более о ее адресе. Однако существует исключение - так называемые, глобально доступные данные. Информацию из этой категории можно получить в любом месте шаблона, обращаются к ней в такой форме:
Остальные теги данных не являются глобальными и делятся на категории в соответствии с существующими в Blogger"е виджетами:
Я не буду описывать каждую из категорий, так как все они очень похожи. Прочитать подробно про них можно здесь.
ЗаключениеВот, пожалуй, и все. Теперь вы имеет общее представление об архитектуре темы оформления для Blogger. На всякий случай подскажу, где можно увидеть примеры шаблонов, и как загрузить свой. Для этого необходимо зайти в настройки вашего блога, в раздел "Шаблон". Там нужно нажать на кнопку "Редактировать HTML". Вуаля - перед вами откроется окно с кодом примененного на данный момент шаблона. |