В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Преобразование данных |
---|
Концепции |
Языки трансформации |
Techniques and transforms |
Applications |
|
Related |
Система веб-шаблонов в веб-публикации позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страниц , таких как результаты поиска. Это повторно использует статические элементы веб-страницы, определяя динамические элементы на основе параметров веб-запроса . Веб-шаблоны поддерживают статический контент, предоставляя базовую структуру и внешний вид. Разработчики могут реализовывать шаблоны из систем управления контентом , фреймворков веб-приложений и 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 = new DOMDocument ; $doc -> preserveWhiteSpace = false ; $doc -> Load ( 'view.html' ); $titlenode = $doc -> createTextNode ( "Нравится" ); $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 (); ?>
Веб-браузер и веб-сервер представляют собой архитектуру клиент-сервер . Сайты часто также используют веб-кэш для повышения производительности. Пять типов систем шаблонов классифицируются на основе того, когда они заменяют заполнители реальным контентом и собирают страницы.
Языки шаблонов могут быть:
Исходный код шаблонизатора может быть как проприетарным, так и открытым .
Многие системы шаблонов являются компонентом более крупной платформы или фреймворка программирования. Их называют «системой шаблонов платформы». Некоторые системы шаблонов имеют возможность замены другого языка шаблонов или движка. [ необходима цитата ]
Такие языки программирования, как Perl , Ruby , C и Java, поддерживают обработку шаблонов как изначально, так и через дополнительные библиотеки и модули. JavaServer Pages (JSP), PHP и Active Server Pages (ASP с VBScript , JScript или другими языками) сами по себе являются примерами веб-шаблонизаторов. Эти технологии обычно используются в серверных системах шаблонизации, но могут быть адаптированы для использования на прокси-сервере «edge-side» или для генерации статических страниц.
Генераторы статических сайтов — это движки, которые используют плоские текстовые входные файлы, такие как markdown и asciidoc, для генерации статической веб-страницы . Примерами этого являются Jekyll (Liquid, Ruby ), Hugo ( шаблоны Go ) и Pelican ( Jinja2 , Python ).
HTML-редакторы часто используют системы веб-шаблонов для создания только статических веб-страниц . Их можно рассматривать как готовый веб-дизайн , используемый для массового производства "шаблонных" веб-сайтов для быстрого развертывания. Они также обычно включают темы вместо стилей CSS . В общем, язык шаблонов используется только с программным обеспечением редактора. [5]
FrontPage и Dreamweaver когда-то были самыми популярными редакторами с подсистемами шаблонов. Веб-шаблон Flash использует Macromedia Flash для создания визуально интерактивных сайтов.
Многие серверные системы шаблонов имеют возможность публиковать выходные страницы на сервере, где опубликованные страницы являются статическими . Это распространено в системах управления контентом , таких как Vignette , но не считается генерацией вне сервера. В большинстве случаев эта «опция публикации» не мешает системе шаблонов , и ее можно реализовать с помощью внешнего программного обеспечения, например Wget .
Люди начали использовать динамические страницы на стороне сервера , сгенерированные из шаблонов с помощью уже существующего программного обеспечения, адаптированного для этой задачи. Это раннее программное обеспечение было препроцессорами и макроязыками , адаптированными для веб-использования, работающими на CGI . Затем, простой, но актуальной технологией стало прямое выполнение, выполненное на модулях расширения, начатое с SSI .
Многие системы шаблонов обычно используются в качестве серверных систем шаблонов :
Метка/имя системы | Платформа/фреймворк | Примечания |
---|---|---|
Лезвие | PHP | Публичный. Часть Laravel |
CheetahTemplate | Питон | Публичный. Встроенный сложный язык . |
Джанго | Питон | Используйте «язык шаблонов Django». |
FreeMarker | Ява | Публичный. |
Фейслеты | Джакарта ЭЭ | Общественность. Часть Джакарты Лица |
Генши | Питон | Публичный |
Хамл | Рубин или другой | Публичный. |
Гамлеты | Ява | Публичный. |
Джинджа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 Page Templates (ZPT) ; см. также TAL Expression Syntax (TALES), Macro Expansion TAL (METAL) |
Плитка | Ява | Публичный. Поддерживает несколько языков шаблонов (JSP, Velocity, Freemarker, Mustache) из различных фреймворков (servlet, portlets, struts, spring). |
Тимелист | Ява | Публичный. |
Топсайт | Питон | Публично. «По состоянию на 2008-02-20 этот проект больше не находится в стадии активной разработки». [7] |
Веточка | PHP | |
PHPlib | PHPlib | Публичный. Встроенный итеративный язык . |
Веб-Макрос | Ява | Публичный. Встроенный итеративный язык . |
Веб-объекты | Ява | Используйте WebObjects Builder в качестве движка. |
Скорость | Ява | Публичный. Используйте VTL - язык шаблонов Velocity. |
Виньетка | Запатентовано. | Коммерческое решение. Встроенный сложный язык . |
XSLT (стандартный язык) | Любой с XSLT-парсером | Стандартный. Событийно-управляемый программируемый язык . |
XQuery (стандартный язык) | Любой с парсером XQuery | Стандарт. Встроенный программируемый язык . |
Технически, методология встраивания языков программирования в HTML (или XML и т. д.), используемая во многих "серверных включаемых скриптовых языках", также является шаблонами. Все они являются Embedded complex languages .
Метка/имя системы | Примечания |
---|---|
Активные серверные страницы (ASP) | Проприетарный ( платформа Microsoft ). См. также: VBScript , Javascript, PerlScript и т. д. расширения для ASP. |
eRuby | Публичный ( Рубин ). |
Язык разметки ColdFusion (CFM) | Публичные ( Lucee , Railo , OpenBD). Проприетарные ( Adobe ColdFusion ). |
Страницы сервера Джакарта (JSP) | Общественность, Джакарта EE . |
Активный Перл | Публичный. |
PHP | Публичный. |
OpenACS | Публичный ( Tcl ). |
Существуют также препроцессоры, используемые в качестве серверных шаблонизаторов . Примеры:
Препроцессор | Примечания |
---|---|
препроцессор C | Публичный. Встроенный итеративный язык . |
М4 | Публичный. Встроенный сложный язык . |
Системы шаблонов и включений Edge-Side. «Edge-side» относится к веб-серверам, которые находятся в пространстве между клиентом (браузером) и исходным сервером. Их часто называют серверами «обратного прокси». Эти серверы обычно выполняют задачу по снижению нагрузки и трафика на исходных серверах путем кэширования контента, такого как изображения и фрагменты страниц, и доставки его в браузер эффективным способом.
Basic Edge Side includes (ESI) — это язык, подобный SSI. ESI был реализован для сетей доставки контента. Язык шаблонов ESI также может быть реализован в веб-браузерах с использованием JavaScript и Ajax или через «плагин» браузера.
Многие веб-браузеры могут применять таблицу стилей XSLT к данным XML, которая преобразует данные в документ XHTML, тем самым предоставляя функциональность шаблона в самом браузере.
Другие системы реализуют функциональность шаблона в браузере с помощью JavaScript или другого клиентского языка сценариев, включая:
Самая простая форма — это трансклюзии (HTML-фреймы). В других случаях необходимы динамические веб-страницы .
Примеры:
Концепции: | Стандарты: | Программное обеспечение: |
{{cite book}}
: CS1 maint: location (link)9. Бесплатные темы для сайтов электронной коммерции MG Technologies Блоги и информационный портал тем для сайтов.