Система веб-шаблонов

редактировать
Система веб-публикации, которая позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страниц Базовый процесс для серверной системы веб-шаблонов : содержимое (из базы данных ) и «спецификации представления» (в веб-шаблоне ) объединяются (через шаблонизатор ) для массового производства веб-документов.

A система веб-шаблонов в веб-публикация позволяет веб-дизайнерам и разработчикам работать с веб-шаблонами для автоматического создания пользовательских веб-страницы, например, результаты поиска. Это повторно использует статические элементы веб-страницы при определении динамических элементов на основе параметров веб-запроса. Веб-шаблоны поддерживают статическое содержимое, обеспечивая базовую структуру и внешний вид. Разработчики могут реализовать шаблоны из систем управления контентом, фреймворков веб-приложений и.

Содержание

  • 1 Обзор
  • 2 Мотивы и типичное использование
    • 2.1 Приложения
    • 2.2 Массовое производство
    • 2.3 Стандартизация стиля
    • 2.4 Разделение проблем
    • 2.5 Гибкое представление
    • 2.6 Возможность повторного использования
  • 3 Пример
  • 4 Типа систем шаблонов
    • 4.1 Генераторы статических сайтов
    • 4.2 Серверные системы
    • 4.3 Пограничные системы
    • 4.4 Клиентские системы
    • 4.5 Распределенные системы
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

Обзор

Система веб-шаблонов состоит из следующего:

  • A шаблонизатор : основной обрабатывающий элемент системы;
  • Ресурс контента: любой из различных типов входных потоков данных, например из реляционной базы данных, XML файлы, LDAP каталог и другие виды локальных или сетевых данных;
  • ресурсов шаблона: веб-шаблоны, указанные в соответствии с языком шаблонов ;

Шаблон и ресурсы контента обрабатываются и объединяются шаблоном Электронный движок для массового производства веб-документов. Для целей этой статьи веб-документы включают любой из различных форматов вывода для передачи через Интернет через HTTP или другой Интернет-протокол.

Мотивация и типичное использование

Приложения

Веб-разработчики могут использовать шаблоны от любого человека или организации для создания веб-сайта. После покупки или загрузки шаблона они заменяют всю общую информацию в веб-шаблоне своей личной, организационной информацией или информацией о продукте. Шаблоны обычно используются для:

  • отображения личной информации или повседневных действий, как в блоге;
  • продажи продуктов в Интернете;
  • отображения информации о компании или организации
  • отображения семейной истории
  • Отображение галереи фотографий
  • Размещение музыкальных файлов, таких как файлы MP3, в Интернете для воспроизведения через веб-браузер
  • Размещение видео в Интернете для всеобщего просмотра
  • Настройте личную область входа в систему в Интернете

Массовое производство

Различные агентства и организации используют системы веб-шаблонов для массового производства контента, когда более медленные методы производства менее осуществимы.

Для вводного обзор, возьмем для примера новостной сайт. Рассмотрим «статический веб-сайт», где все веб-страницы являются статическими, созданными веб-дизайнером. Было бы очень однообразно менять отдельные страницы так часто, как меняются новости. Типичная стратегия автоматизации «повторяющейся работы» веб-дизайнера с использованием шаблонов может быть следующей:

  1. выбрать систему веб-шаблонов для поддержки веб-сайта ;
  2. группировать новости с различными требованиями к презентации;
  3. укажите «стандарты представления» с помощью веб-шаблонов для каждой группы новостей;
  4. укажите ресурс содержимого для создания или обновления содержимого каждого элемента новостей.

Стандартизация стиля

Разделение проблем

Общей целью опытных веб-разработчиков является разработка и развертывание гибких и простых в обслуживании приложений. Важным моментом при достижении этой цели является отделение от бизнес-логики от логики представления. Разработчики используют системы веб-шаблонов (с разной степенью успеха) для поддержания этого разделения.

Для веб-дизайнера, когда каждая веб-страница берется из веб-шаблона, они могут представить себе модульную веб-страницу, структурированную с помощью компонентов, которые можно изменять независимо друг от друга. Эти компоненты могут включать в себя верхний колонтитул, нижний колонтитул (GNB), локальную панель навигации и контент, такой как статьи, изображения, видео и т. Д.

Для программистов язык шаблонов предлагает более ограниченную логику, только для адаптации презентаций и решений, а не для сложных (бизнес модель ) алгоритмов.

Для других членов «команды сайта» система шаблонов позволяет веб-мастерам сосредоточиться на техническое обслуживание, поставщики контента должны сосредоточиться на содержании и дать им всем больше надежности.

Более того, он имеет следующие преимущества при его использовании:

  • Простота изменения дизайна: вариации представления в шаблонах являются "содержанием инвариантный », что означает, что веб-дизайнер может обновить презентацию, не заботясь о более широкой инфраструктуре.
  • Простота локализации интерфейса: меню и другие стандарты представления легко сделать единообразными для пользователей, просматривающих сайт. Использование Breadcrumb (навигация) делает любой веб-сайт более удобным и гибким.
  • Возможность работать над дизайном и кодом одновременно разными людьми по отдельности. Это может быть выполнено, пока все коды в шаблонах имеют чистый дизайн, а каждый блок или раздел веб-сайтов написан с индивидуальной системой комментариев.
  • Адаптивный веб-дизайн теперь является обязательным фактором для любого веб-сайта. Все должно выполняться без каких-либо изменений в адаптивном дизайне.
  • Легкость документации. Удобная документация экономит больше времени на понимание всего шаблона, а также ускоряет процесс модификации. Профессиональные дизайнеры веб-сайтов уделяют большое внимание документации.

Одной из трудностей в оценке разделения ответственности является отсутствие четко определенных формализмов для измерения того, когда и насколько хорошо это действительно выполняется. Однако существуют довольно стандартные эвристики, заимствованные из области программной инженерии. К ним относятся «наследование » (основанное на принципах объектно-ориентированного программирования ); и «создание шаблонов и генеративное программирование » (в соответствии с принципами разделения 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.

Многие системы шаблонов обычно используются в качестве систем шаблонов на стороне сервера:

Метка / имя системыПлатформа / фреймворкПримечания
BladePHP Public. Часть Laravel
CheetahTemplate Python Public. Встроенный сложный язык.
Django Python Используйте «язык шаблонов Django».
FreeMarker Java Public.
Facelets Java EE Public. Часть JavaServer Faces
Genshi Python Public
Haml Ruby или OtherPublic.
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 (стандартный язык)Любой с анализатором XQueryStandard. Встроенный программируемый язык.

Технически методология встраивания языков программирования в 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-системы

Edge-Side шаблоны и системы включения. «Пограничная сторона» относится к веб-серверам, которые находятся в пространстве между клиентом (браузером) и исходным сервером. Их часто называют «обратными прокси-серверами». Перед этими серверами обычно стоит задача уменьшения нагрузки и трафика на исходных серверах путем кэширования контента, такого как изображения и фрагменты страниц, и его эффективной доставки в браузер.

Basic Edge Side Includes (ESI) - это язык, подобный SSI. ESI был реализован для сетей доставки контента. Язык шаблонов ESI также может быть реализован в веб-браузерах с использованием JavaScript и Ajax или через «надстройку» браузера.

Клиентские системы

Клиентские и распределенные (децентрализованные) системы шаблонов.

Многие веб-браузеры могут применять таблицу стилей XSLT к XML-данным который преобразует данные в документ XHTML, тем самым обеспечивая функциональность шаблона в самом браузере.. Другие системы реализуют функциональность шаблона в браузере, используя JavaScript или другой язык клиентских сценариев, в том числе:

Распределенные системы

Самая простая форма - это включения (HTML-фреймы). В остальных случаях необходимы динамические веб-страницы.

Примеры:

См. Также

Концепции: Стандарты:
  • UIML (язык разметки пользовательского интерфейса)
  • XSLT (преобразование расширяемого языка таблиц стилей)
Программное обеспечение:

Ссылки

.

Внешние ссылки

Последняя правка сделана 2021-06-20 10:30:29
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте