A система веб-шаблонов в веб-публикация позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страницы, например, результаты поиска. Это повторно использует статические элементы веб-страницы при определении динамических элементов на основе параметров веб-запроса. Веб-шаблоны поддерживают статическое содержимое, обеспечивая базовую структуру и внешний вид. Разработчики могут реализовать шаблоны из систем управления контентом, фреймворков веб-приложений и.
Система веб-шаблонов состоит из следующего:
Шаблон и ресурсы контента обрабатываются и объединяются шаблоном Электронный движок для массового производства веб-документов. Для целей этой статьи веб-документы включают любой из различных форматов вывода для передачи через Интернет через HTTP или другой Интернет-протокол.
Веб-разработчики могут использовать шаблоны от любого человека или организации для создания веб-сайта. После покупки или загрузки шаблона они заменяют всю общую информацию в веб-шаблоне своей личной, организационной информацией или информацией о продукте. Шаблоны обычно используются для:
Различные агентства и организации используют системы веб-шаблонов для массового производства контента, когда более медленные методы производства менее осуществимы.
Для вводного обзор, возьмем для примера новостной сайт. Рассмотрим «статический веб-сайт», где все веб-страницы являются статическими, созданными веб-дизайнером. Было бы очень однообразно менять отдельные страницы так часто, как меняются новости. Типичная стратегия автоматизации «повторяющейся работы» веб-дизайнера с использованием шаблонов может быть следующей:
Общей целью опытных веб-разработчиков является разработка и развертывание гибких и простых в обслуживании приложений. Важным моментом при достижении этой цели является отделение от бизнес-логики от логики представления. Разработчики используют системы веб-шаблонов (с разной степенью успеха) для поддержания этого разделения.
Для веб-дизайнера, когда каждая веб-страница берется из веб-шаблона, они могут представить себе модульную веб-страницу, структурированную с помощью компонентов, которые можно изменять независимо друг от друга. Эти компоненты могут включать в себя верхний колонтитул, нижний колонтитул (GNB), локальную панель навигации и контент, такой как статьи, изображения, видео и т. Д.
Для программистов язык шаблонов предлагает более ограниченную логику, только для адаптации презентаций и решений, а не для сложных (бизнес модель ) алгоритмов.
Для других членов «команды сайта» система шаблонов позволяет веб-мастерам сосредоточиться на техническое обслуживание, поставщики контента должны сосредоточиться на содержании и дать им всем больше надежности.
Более того, он имеет следующие преимущества при его использовании:
Одной из трудностей в оценке разделения ответственности является отсутствие четко определенных формализмов для измерения того, когда и насколько хорошо это действительно выполняется. Однако существуют довольно стандартные эвристики, заимствованные из области программной инженерии. К ним относятся «наследование » (основанное на принципах объектно-ориентированного программирования ); и «создание шаблонов и генеративное программирование » (в соответствии с принципами разделения MVC ). Точное различие между различными руководящими принципами является предметом споров, и некоторые аспекты различных руководств имеют определенную степень сходства.
Одним из основных аргументов в пользу «эффективного разделения» является то, что потребность в максимальной гибкости кода и ресурсов, выделенных для логики представления. Требования клиентов, изменение предпочтений клиентов и желание представить «свежее лицо» уже существующего контента часто приводят к необходимости радикально изменить внешний вид веб-контента, не нарушая как можно меньше базовой инфраструктуры.
Различие между «презентацией» (интерфейс) и «бизнес-логикой » (инфраструктура) важно, потому что:
Не все потенциальные пользователи веб-шаблонов могут нанять разработчиков для разработки системы. Кроме того, некоторые могут захотеть использовать Интернет, но не обладают достаточными техническими знаниями. Таким образом, ряд разработчиков и поставщиков выпустили веб-шаблоны специально для нетехнических специалистов. Повторное использование веб-шаблонов также важно даже для высококвалифицированных и технически опытных разработчиков, но особенно важно для тех, кто полагается на простоту и «готовые» веб-решения.
Такие «готовые» веб-шаблоны иногда бесплатны, и их легко сделать внутри страны. Однако специализированные веб-шаблоны иногда продаются в Интернете. Хотя существует множество коммерческих сайтов, предлагающих веб-шаблоны за лицензионную плату, есть также бесплатные источники с открытым исходным кодом.
Поскольку модель обычно хранится в реляционной базе данных, оставшимися компонентами архитектуры MVC являются управление и представление. В простейшей из систем эти две системы не разделены. Однако, применяя принцип разделения проблем, можно полностью разделить взаимосвязи.
Например, шаблон представления может выглядеть так:
Сайты Система веб-шаблонов - Web template system
Затем шаблон элемента управления загружает представление, а затем использует адресацию xpath для вставки компонентов из базы данных., например:
preserveWhiteSpace = 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 ()"; $ entry = $ xpath->query ($ query); foreach ($ entry как $ entry) {$ entry->parentNode->replaceChild ($ titlenode, $ entry); } echo $ doc->saveXML (); ?>
Веб-браузер и веб-сервер представляют собой архитектуру клиент-сервер. Сайты часто также используют веб-кеш для повышения производительности. Пять типов систем шаблонов классифицируются в зависимости от того, когда они заменяют заполнители реальным контентом и собирают страницы.
Языки шаблонов могут быть:
Исходный код шаблонизатора может быть проприетарным или открытым исходным кодом.
Многие системы шаблонов являются компонент более крупной платформы программирования или фреймворка. Их называют «системой шаблонов платформы». В некоторых системах шаблонов есть возможность замены на другой язык шаблонов или механизм.
Поддержка языков программирования, таких как Perl, Ruby, C и Java обработка шаблонов либо изначально, либо с помощью дополнительных библиотек и модулей. JavaServer Pages (JSP), PHP и Active Server Pages (ASP с VBScript, JScript или другим languages) сами по себе являются примерами движков веб-шаблонов. Эти технологии обычно используются в системах шаблонов на стороне сервера, но могут быть адаптированы для использования на «пограничном» прокси-сервере или для генерации статических страниц.
часто используют системы веб-шаблонов для создания только статических веб-страниц. Их можно рассматривать как готовые веб-дизайны, используемые для массового производства «печенек» веб-сайтов для быстрого развертывания. Они также обычно включают темы вместо стилей CSS. Как правило, язык шаблонов используется только с программным обеспечением редактора.
FrontPage и Dreamweaver когда-то были самыми популярными редакторами с подсистемами шаблонов. Веб-шаблон Flash использует Macromedia Flash для создания визуально интерактивных сайтов.
Системная метка / имя | Платформа / редактор | Примечания |
---|---|---|
Dreamweaver | Macromedia | . Встроенный итеративный язык. |
Участвовать в разработке | Macromedia | Клиента. |
Flash | Macromedia | Разработка Flash. |
FrontPage | Microsoft | . Встроенный итеративный язык. |
Nvu | Linux / Nvu | . |
Pelican | Сообщество с открытым исходным кодом | поддерживает Markdown или reStructuredText. Написано на Python (язык программирования). |
Мета-язык веб-сайтов | Unix-подобный |
Многие серверные системы шаблонов имеют возможность публиковать выходные страницы на сервере, где опубликованные страницы статический. Это распространено в системах управления контентом, например Vignette, но не считается генерацией вне сервера. В большинстве случаев эта «опция публикации» не влияет на систему шаблонов, и это может быть выполнено внешним программным обеспечением, например Wget.
Люди начали использовать динамические страницы на стороне сервера, созданные из шаблонов с помощью уже существующего программного обеспечения, адаптированного для этой задачи. Этим ранним программным обеспечением были препроцессоры и макроязыки, адаптированные для использования в сети, работающие на CGI. Далее, простой, но актуальной технологией было прямое выполнение в модулях расширения, начатое с SSI.
Многие системы шаблонов обычно используются в качестве систем шаблонов на стороне сервера:
Метка / имя системы | Платформа / фреймворк | Примечания |
---|---|---|
Blade | PHP | Public. Часть Laravel |
CheetahTemplate | Python | Public. Встроенный сложный язык. |
Django | Python | Используйте «язык шаблонов Django». |
FreeMarker | Java | Public. |
Facelets | Java EE | Public. Часть JavaServer Faces |
Genshi | Python | Public |
Haml | Ruby или Other | Public. |
Java | общедоступный. | |
Jinja2 | Python | Public. Встроенный сложный язык. |
Малыш | Python | |
Lasso | LassoSoft, LLC | Собственный. Интерпретируемый язык программирования и сервер |
Mustache | ActionScript, C ++, Clojure, CoffeeScript, ColdFusion, D, Erlang, Fantom, Go, Java, серверный JavaScript, Lua, .NET, Objective-C, Perl, PHP, Python, Ruby, Scala, Tcl | Public. |
Базовый Серверная сторона включает (SSI) | Основные директивы фиксируют «стандарт». | Встроенный простой язык, если исключить директиву exec . |
Smarty | PHP | Public. Встроенный сложный язык. |
Template Toolkit | Perl | Public. Встроенный сложный язык. |
Язык атрибутов шаблона (TAL) | Zope, Python, Java, Perl, PHP, XSLT | Public; a.k.a. Шаблоны страниц Zope (ZPT) ; см. также Синтаксис выражений TAL (TALES), Расширение макросов TAL (METAL) |
Tiles | Java | Public. Поддерживает несколько языков шаблонов (JSP, Velocity, Freemarker, Mustache) из различных фреймворков (сервлет, портлеты, стойки, пружина). |
Thymeleaf | Java | Public. |
Топ-сайт | Python | Public. «По состоянию на 20 февраля 2008 года этот проект больше не находится в активной разработке.» |
Twig | PHP | |
PHPlib | PHPlib | Public. Встроенный итеративный язык. |
WebMacro | Java | Public. Встроенный итеративный язык. |
WebObjects | Java | Используйте WebObjects Builder в качестве движка. |
Скорость (Jakarta / Apache) | Java | Public. Используйте VTL - язык шаблонов скорости. |
Vignette | Собственный. | Коммерческое решение. Встроенный сложный язык. |
XSLT (стандартный язык) | Любой с синтаксическим анализатором XSLT | Стандартный. Управляемый событиями язык программирования. |
XQuery (стандартный язык) | Любой с анализатором XQuery | Standard. Встроенный программируемый язык. |
Технически методология встраивания языков программирования в HTML (или XML и т. Д.), Используемая во многих «серверных языках сценариев», также является шаблонами. Все они являются встроенными сложными языками.
Системная метка / имя | Notes |
---|---|
Active Server Pages (ASP) | Proprietary (Microsoft platform ). См. Также: VBScript, Javascript, PerlScript и т. Д. Расширения для ASP. |
eRuby | Public (Ruby ). |
Язык разметки ColdFusion (CFM) | Public (Lucee, Railo, OpenBD ). Собственный (Adobe ColdFusion ). |
JavaServer Pages (JSP) | Public, Java platform. |
Active Perl | Public. |
PHP | общедоступный. |
OpenACS | Public (Tcl ). |
Существуют также препроцессоры, используемые как серверные механизмы шаблонов. Примеры:
Препроцессор | Примечания |
---|---|
Препроцессор C | Общедоступный. Встроенный итеративный язык. |
M4 | Общедоступный. Встроенный сложный язык. |
Edge-Side шаблоны и системы включения. «Пограничная сторона» относится к веб-серверам, которые находятся в пространстве между клиентом (браузером) и исходным сервером. Их часто называют «обратными прокси-серверами». Перед этими серверами обычно стоит задача уменьшения нагрузки и трафика на исходных серверах путем кэширования контента, такого как изображения и фрагменты страниц, и его эффективной доставки в браузер.
Basic Edge Side Includes (ESI) - это язык, подобный SSI. ESI был реализован для сетей доставки контента. Язык шаблонов ESI также может быть реализован в веб-браузерах с использованием JavaScript и Ajax или через «надстройку» браузера.
Многие веб-браузеры могут применять таблицу стилей XSLT к XML-данным который преобразует данные в документ XHTML, тем самым обеспечивая функциональность шаблона в самом браузере.. Другие системы реализуют функциональность шаблона в браузере, используя JavaScript или другой язык клиентских сценариев, в том числе:
Самая простая форма - это включения (HTML-фреймы). В остальных случаях необходимы динамические веб-страницы.
Примеры:
Концепции:
| Стандарты: | Программное обеспечение: |
.