Система веб-шаблонов
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Преобразование данных |
---|
Концепции |
Языки трансформации |
Техники и трансформации |
Приложения |
Связанный |
Система веб-шаблонов в веб-публикациях позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страниц , например результатов поиска. При этом повторно используются статические элементы веб-страницы при определении динамических элементов на основе параметров веб-запроса . Веб-шаблоны поддерживают статический контент, обеспечивая базовую структуру и внешний вид. Разработчики могут реализовывать шаблоны из систем управления контентом , инфраструктур веб-приложений и редакторов HTML .
Обзор
[ редактировать ]Система веб-шаблонов состоит из следующего:
- Механизм шаблонов : основной обрабатывающий элемент системы; [1]
- Ресурс контента : любой из различных типов потоков входных данных , например, из реляционной базы данных , файлов XML , каталога LDAP и других видов локальных или сетевых данных;
- Ресурс шаблона : веб-шаблоны , указанные в соответствии с языком шаблона ;
Ресурсы шаблонов и контента обрабатываются и объединяются механизмом шаблонов для массового создания веб-документов. Для целей этой статьи веб-документы включают в себя любой из различных выходных форматов для передачи через Интернет через HTTP , HTTPS или другой интернет-протокол .
Шаблонизатор
[ редактировать ]Пример
[ редактировать ]Поскольку модель обычно хранится в реляционной базе данных, остальными компонентами архитектуры MVC являются элементы управления и представления. В простейших системах эти две системы не разделены. Однако, адаптировав принцип разделения интересов , можно полностью разделить отношения.
Например, шаблон представления может выглядеть так:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Sites</title></head>
<body><h1 data-xp="title"><!-- placeholder --></h1></body>
</html>
Затем шаблон элемента управления загружает представление и использует XPath. адресацию [ оригинальное исследование? ] для вставки компонентов из базы данных, например:
<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->Load('view.html');
$titlenode = $doc->createTextNode("Like this");
$xpath = new DOMXPath($doc);
$xpath->registerNamespace("h", "http://www.w3.org/1999/xhtml");
$query = "//h:*[@data-xp='title']/comment()";
$entries = $xpath->query($query);
foreach ($entries as $entry) {
$entry->parentNode->replaceChild($titlenode, $entry);
}
echo $doc->saveXML();
?>
Виды шаблонных систем
[ редактировать ]Веб-браузер и веб-сервер представляют собой архитектуру клиент-сервер . Сайты часто также используют веб-кеш для повышения производительности. Пять типов систем шаблонов классифицируются в зависимости от того, когда они заменяют заполнители реальным контентом и собирают страницы.
- На стороне сервера – замена во время выполнения происходит на веб-сервере.
- На стороне клиента – замена во время выполнения происходит в веб-браузере.
- Edge-side – замена во время выполнения происходит на прокси-сервере между веб-сервером и браузером.
- Внешний сервер – статические веб-страницы создаются в автономном режиме и загружаются на веб-сервер; нет замены во время выполнения
- Распределенный – замена во время выполнения происходит на нескольких серверах.
Языки шаблонов могут быть:
- Встроенное или управляемое событиями.
- Простой, повторяемый, программируемый или сложный.
- Определено консорциумом, определено частным образом или де-факто определено открытой реализацией. Право собственности влияет на стабильность и достоверность спецификации. Однако в большинстве юрисдикций языковая спецификация не может быть защищена авторским правом, поэтому контроль редко бывает абсолютным.
Исходный код шаблонизатора может быть проприетарным или открытым .
Многие системы шаблонов являются компонентами более крупной платформы или структуры программирования. Их называют «системой шаблонов платформы». Некоторые системы шаблонов имеют возможность замены другого языка шаблонов или механизма. [ нужна ссылка ]
Языковая поддержка
[ редактировать ]Языки программирования, такие как Perl , Ruby , C и Java, поддерживают обработку шаблонов либо изначально, либо через дополнительные библиотеки и модули. Страницы JavaServer (JSP), PHP и активные серверные страницы (ASP с VBScript , JScript или другими языками) сами по себе являются примерами механизмов веб-шаблонов. Эти технологии обычно используются в системах шаблонов на стороне сервера, но могут быть адаптированы для использования на «граничном» прокси-сервере или для создания статических страниц.
Генераторы статических сайтов
[ редактировать ]Генераторы статических сайтов — это механизмы, которые используют файлы ввода плоского текста, такие как markdown и asciidoc, для создания статической веб-страницы . Примеры этого включают Jekyll (Liquid, Ruby ), Hugo ( шаблоны Go ) и Pelican ( Jinja2 , Python ).
Статические HTML-редакторы
[ редактировать ]Редакторы HTML часто используют системы веб-шаблонов для создания только статических веб-страниц . Их можно рассматривать как готовый веб-дизайн , используемый для массового создания типовых веб-сайтов для быстрого развертывания. Они также обычно включают темы вместо стилей CSS . В общем, язык шаблонов используется только с программным обеспечением редактора. [5]
FrontPage и Dreamweaver когда-то были самыми популярными редакторами с подсистемами шаблонов. Веб-шаблон Flash использует Macromedia Flash для создания визуально интерактивных сайтов.
Многие серверные системы шаблонов имеют возможность публиковать выходные страницы на сервере, где опубликованные страницы являются статическими . Это распространено в системах управления контентом , таких как Vignette , но не считается генерацией на внешнем сервере. В большинстве случаев эта «опция публикации» не мешает системе шаблонов и может быть создана с помощью внешнего программного обеспечения, такого как Wget .
Серверные системы
[ редактировать ]Люди начали использовать серверные динамические страницы , созданные на основе шаблонов с уже существующим программным обеспечением, адаптированным для этой задачи. Это раннее программное обеспечение представляло собой препроцессоры и макроязыки , адаптированные для использования в Интернете и работающие на CGI . Далее простой, но актуальной технологией стало прямое исполнение на модулях расширения, начатое с SSI .
Многие системы шаблонов обычно используются как системы шаблонов на стороне сервера :
Метка/имя системы | Платформа/фреймворк | Примечания |
---|---|---|
Лезвие | PHP | Общественный. Часть Ларавеля |
ГепардШаблон | Питон | Общественный. Встроенный сложный язык . |
Джанго | Питон | Используйте «язык шаблонов Django». |
FreeMarker | Ява | Общественный. |
Фасеты | Джакарта, EE | Общественный. Часть Jakarta Faces |
Генши | Питон | Общественный |
ветчина | Руби или другое | Общественный. |
Гамлеты | Ява | Общественный. |
Джинджа2 | Питон | Общественный. Встроенный сложный язык . |
Ребенок | Питон | |
Лассо | ЛассоСофт, ООО | Собственный. Интерпретируемый язык программирования и сервер |
Усы | ActionScript , C++ , Clojure , CoffeeScript , ColdFusion , D , Erlang , Fantom , Go , Java , серверный JavaScript , Lua , .NET , Objective-C , ooc , [6] Perl , PHP , Python , Ruby , Scala , Tcl | Общественный. |
Базовые серверные компоненты (SSI) | Базовые директивы фиксируют «стандарт». | Встроенный простой язык , если исключить exec директива.
|
Умник | PHP | Общественный. Встроенный сложный язык . |
Набор инструментов для шаблонов | Перл | Общественный. Встроенный сложный язык . |
Язык атрибутов шаблона (TAL) | Zope , Python , Java , Perl , PHP , XSLT | Общественный; также известные как Шаблоны страниц Zope (ZPT) ; см. также Синтаксис выражений TAL (TALES), Расширение макросов TAL (METAL). |
Плитка | Ява | Общественный. Поддерживает несколько языков шаблонов (JSP, Velocity, Freemarker, Mustache) из различных платформ (сервлетов, портлетов, Struts, Spring). |
Тимелиф | Ява | Общественный. |
Топсайт | Питон | Общественный. «По состоянию на 20 февраля 2008 г. этот проект больше не находится в активной разработке». [7] |
Ветка | PHP | |
PHPlib | PHPlib | Общественный. Встроенный итеративный язык . |
ВебМакрос | Ява | Общественный. Встроенный итеративный язык . |
Веб-объекты | Ява | Используйте WebObjects Builder в качестве движка. |
Скорость | Ява | Общественный. Используйте VTL — язык шаблонов скорости . |
Виньетка | Собственный. | Коммерческое решение. Встроенный сложный язык . |
XSLT (стандартный язык) | Любой с парсером XSLT | Стандарт. Язык программирования, управляемый событиями . |
XQuery (стандартный язык) | Любой с парсером XQuery | Стандарт. Встроенный программируемый язык . |
Технически, методология встраивания языков программирования в HTML (или XML и т. д.), используемая во многих «языках сценариев, включаемых на стороне сервера», также является шаблонами. Все они являются встроенными сложными языками .
Метка/имя системы | Примечания |
---|---|
Активные серверные страницы (ASP) | Собственный ( платформа Microsoft ). См. также: VBScript , Javascript, PerlScript и др. расширения для ASP. |
eRuby | Публичный ( Рубин ). |
Язык разметки ColdFusion (CFM) | Публичные ( Lucee , Railo , OpenBD). Собственный ( Adobe ColdFusion ). |
Страницы сервера Джакарты (JSP) | Общественный, Джакарта, EE . |
Активный Перл | Общественный. |
PHP | Общественный. |
OpenACS | Публичный ( Tcl ). |
Существуют также препроцессоры, используемые в качестве серверных механизмов шаблонов . Примеры:
Препроцессор | Примечания |
---|---|
Препроцессор C | Общественный. Встроенный итеративный язык . |
М4 | Общественный. Встроенный сложный язык . |
Краевые системы
[ редактировать ]Edge-Side шаблоны и системы включения. «Пограничная сторона» относится к веб-серверам, которые находятся в пространстве между клиентом (браузером) и исходным сервером. Их часто называют серверами «обратного прокси». Этим серверам обычно поручено снизить нагрузку и трафик на исходных серверах путем кэширования контента, такого как изображения и фрагменты страниц, и эффективной доставки его в браузер.
Basic Edge SideIncludes (ESI) — это язык, похожий на SSI. ESI был реализован для сетей доставки контента. Язык шаблонов ESI также может быть реализован в веб-браузерах с использованием JavaScript и Ajax или через «плагин» браузера.
Клиентские системы
[ редактировать ]Многие веб-браузеры могут применять таблицу стилей XSLT к данным XML, которая преобразует данные в документ XHTML, тем самым обеспечивая функциональность шаблона в самом браузере.
Другие системы реализуют функциональность шаблона в браузере с помощью JavaScript или другого языка сценариев на стороне клиента , в том числе:
Распределенные системы
[ редактировать ]Самая простая форма — включения (HTML-кадры). В других случаях динамические веб-страницы необходимы .
Примеры:
См. также
[ редактировать ]Концепции: | Стандарты: | Программное обеспечение: |
Ссылки
[ редактировать ]- ^ «Шаблонный движок» . вики phpwact.org. Архивировано из оригинала 4 декабря 2012 года . Проверено 7 января 2013 г.
- ^ Нимейер, Патрик (2002). Изучение Java . Севастополь: О'Рейли. ISBN 0-596-00285-8 .
- ^ Манолеску, Драгош (2006). Языки шаблонов проектирования программ 5 . Чтение: Аддисон-Уэсли Профессионал. ISBN 0-321-32194-4 .
- ^ Фаулер, Мартин (2003). Шаблоны архитектуры корпоративных приложений . Бостон: Аддисон-Уэсли. ISBN 0-321-12742-0 .
- ^ Макдональд, Мэтью (2015). Создание веб-сайта: недостающее руководство . Глава 8 > Размещение одного и того же контента на нескольких страницах > Веб-шаблоны > Поле для заметок: O'Reilly Media, Inc. ISBN 9781491936177 . Проверено 19 января 2016 г.
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ "{{усы}}" . Проверено 15 октября 2013 г.
- ^ Джодибернс. «Система шаблонов Topsite» . Проверено 15 октября 2013 г.
9. Бесплатные темы для веб-сайтов электронной коммерции Блоги и информационный портал MG Technologies с темами для веб-сайтов.
Внешние ссылки
[ редактировать ]- библиотек шаблонов JavaScript за 2009 год Сравнение
- Обеспечение строгого разделения модели и представления в шаблонизаторах
- Подход двойной модели для достижения эффективного разделения модели и представления в веб-приложениях на основе шаблонов
- Сравнение шаблонизатора PHP с графическими диаграммами
- Сравнения/тесты некоторых шаблонизаторов Python и некоторые общие мысли о шаблонизаторах.
- web-mode.el — это основной инструмент emacs для редактирования веб-шаблонов.