Система веб-шаблонов в веб-публикации позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страниц , например результатов поиска. При этом повторно используются статические элементы веб-страницы при определении динамических элементов на основе параметров веб-запроса . Веб-шаблоны поддерживают статический контент, обеспечивая базовую структуру и внешний вид. Разработчики могут реализовывать шаблоны из систем управления контентом , инфраструктур веб-приложений и редакторов HTML .
Система веб-шаблонов состоит из следующего:
Ресурсы шаблонов и контента обрабатываются и объединяются механизмом шаблонов для массового создания веб-документов. Для целей этой статьи веб-документы включают в себя любой из различных выходных форматов для передачи через Интернет через HTTP , HTTPS или другой интернет-протокол .
Поскольку модель обычно хранится в реляционной базе данных, остальными компонентами архитектуры MVC являются элементы управления и представления. В простейших системах эти две системы не разделены. Однако, адаптировав принцип разделения интересов, можно полностью разделить отношения.
Например, шаблон представления может выглядеть так:
<!DOCTYPE html> < html xmlns = "http://www.w3.org/1999/xhtml" > < head >< title > Сайты </ title >/ head > < body >< h1 data-xp = " title" > <!-- заполнитель --> </ h1 >/ body > </ html >
Затем шаблон элемента управления загружает представление, а затем использует адресацию XPath [ оригинальное исследование? ] для вставки компонентов из базы данных, например:
<?php $doc = новый DOMDocument ; $doc -> saveWhiteSpace = false ; $doc -> Загрузить ( 'view.html' ); $titlenode = $doc -> createTextNode ( «Вот так» ); $xpath = новый DOMXPath ( $doc ); $xpath -> RegisterNamespace ( "h" , "http://www.w3.org/1999/xhtml" ); $query = "//h:*[@data-xp='title']/comment()" ; $entries = $xpath -> запрос ( $query ); foreach ( $entries as $entry ) { $entry -> parentNode -> replaceChild ( $titlenode , $entry ); } echo $doc -> saveXML (); ?>
Веб-браузер и веб-сервер представляют собой архитектуру клиент-сервер . Сайты часто также используют веб-кеш для повышения производительности. Пять типов систем шаблонов классифицируются в зависимости от того, когда они заменяют заполнители реальным контентом и собирают страницы.
Языки шаблонов могут быть:
Исходный код шаблонизатора может быть проприетарным или открытым .
Многие системы шаблонов являются компонентами более крупной платформы или структуры программирования. Их называют «системой шаблонов платформы». Некоторые системы шаблонов имеют возможность замены другого языка шаблонов или механизма. [ нужна цитата ]
Языки программирования , такие как Perl , Ruby , C и Java, поддерживают обработку шаблонов либо изначально, либо через дополнительные библиотеки и модули. Страницы JavaServer (JSP), PHP и активные серверные страницы (ASP с VBScript , JScript или другими языками) сами по себе являются примерами механизмов веб-шаблонов. Эти технологии обычно используются в системах шаблонов на стороне сервера, но могут быть адаптированы для использования на «периферийном» прокси-сервере или для создания статических страниц.
Генераторы статических сайтов — это механизмы, которые используют файлы ввода плоского текста, такие как markdown и asciidoc, для создания статической веб-страницы . Примеры этого включают Jekyll (Liquid, Ruby ), Hugo ( шаблоны Go ) и Pelican ( Jinja2 , Python ).
Редакторы HTML часто используют системы веб-шаблонов для создания только статических веб-страниц . Их можно рассматривать как готовый веб-дизайн , используемый для массового создания типовых веб-сайтов для быстрого развертывания. Они также обычно включают темы вместо стилей CSS . В общем, язык шаблонов используется только с программным обеспечением редактора. [5]
FrontPage и Dreamweaver когда-то были самыми популярными редакторами с подсистемами шаблонов. Веб-шаблон Flash использует Macromedia Flash для создания визуально интерактивных сайтов.
Многие серверные системы шаблонов имеют возможность публиковать выходные страницы на сервере, где опубликованные страницы являются статическими . Это распространено в системах управления контентом , таких как Vignette , но не считается генерацией на внешнем сервере. В большинстве случаев эта «опция публикации» не мешает системе шаблонов и может быть создана с помощью внешнего программного обеспечения, такого как Wget .
Люди начали использовать серверные динамические страницы , созданные на основе шаблонов с уже существующим программным обеспечением, адаптированным для этой задачи. Это раннее программное обеспечение представляло собой препроцессоры и макроязыки , адаптированные для использования в Интернете и работающие на CGI . Далее простой, но актуальной технологией стало прямое исполнение на модулях расширения, начатое с SSI .
Многие системы шаблонов обычно используются как системы шаблонов на стороне сервера :
Технически, методология встраивания языков программирования в HTML (или XML и т. д.), используемая во многих «языках сценариев, включаемых на стороне сервера», также является шаблонами. Все они являются встроенными сложными языками .
Существуют также препроцессоры , используемые в качестве серверных механизмов шаблонов . Примеры:
Edge-Side шаблоны и системы включения. «Пограничная сторона» относится к веб-серверам, которые находятся в пространстве между клиентом (браузером) и исходным сервером. Их часто называют серверами «обратного прокси». Этим серверам обычно поручено снизить нагрузку и трафик на исходных серверах путем кэширования контента, такого как изображения и фрагменты страниц, и эффективной доставки его в браузер.
Basic Edge SideIncludes (ESI) — это язык, похожий на SSI. ESI был реализован для сетей доставки контента. Язык шаблонов ESI также может быть реализован в веб-браузерах с использованием JavaScript и Ajax или через «плагин» браузера.
Многие веб-браузеры могут применять таблицу стилей XSLT к данным XML, которая преобразует данные в документ XHTML, тем самым обеспечивая функциональность шаблона в самом браузере.
Другие системы реализуют функциональность шаблона в браузере с помощью JavaScript или другого языка сценариев на стороне клиента , в том числе:
Самая простая форма — включения (HTML-кадры). В других случаях необходимы динамические веб-страницы .
Примеры:
{{cite book}}
: CS1 maint: location (link)9. Бесплатные темы для веб-сайтов электронной коммерции Блоги и информационный портал MG Technologies с темами для веб-сайтов.