A процессор шаблонов (также известный как шаблонизатор или анализатор шаблонов ) - это программное обеспечение, предназначенное для объединения шаблонов с моделью данных выдать результаты документов. Язык, на котором написаны шаблоны, известен как язык шаблонов или язык шаблонов . Для целей этой статьи результирующий документ - это любой форматированный вывод, включая документы, веб-страницы или исходный код (в исходном коде поколение ) целиком или по частям. Механизм шаблонов обычно входит в состав системы веб-шаблонов или инфраструктуры приложений, а также может использоваться как препроцессор или фильтр.
Механизмы шаблонов обычно включают функции, общие для большинства высокоуровневых языков программирования, с упором на функции обработки простого текста.
К таким функциям относятся:
Хотя процессоры шаблонов обычно представляют собой отдельную часть программного обеспечения, используемую как часть системы или фреймворка, простые языки шаблонов обычно включаются в функции обработки строк языков программирования общего назначения и в программы обработки текста, в частности или текстовые процессоры. Языки шаблонов, как правило, являются простыми языками с заменой, в отличие от более сложных средств в полнофункциональных процессорах шаблонов, но могут содержать некоторую логику.
Простые примеры включают, найденные во многих языках программирования, и фрагменты, найденные в ряде текстовых редакторов и. В текстовых процессорах часто используются шаблоны, а автоматическое заполнение шаблонов часто называют объединением писем.
Наглядный пример дополнительного характера синтаксического анализа, а шаблон - это команда s
(замена) в текстовом процессоре sed, исходящая из функции поиска и замены в текстовом редакторе. Команды подстановки имеют вид s / regexp / replace /
, где regexp
- это регулярное выражение, для синтаксического анализа ввода и замена
- простой шаблон для вывода, либо буквальный текст, либо строка формата, содержащая символы для «полного совпадения» или специальные escape-последовательности с
\1
по \ 9
для n-го подвыражения. Например, s / (cat | dog) s? / \ 1s / g
заменяет все вхождения слова «кошка» или «собака» на «кошки» или «собаки», без дублирования существующего «s». : (cat | dog)
- это первое (и единственное) подвыражение в регулярном выражении, а \ 1
в строке формата подставляет его в вывод.
Все системы обработки шаблонов состоят как минимум из следующих основных элементов:
Это может быть реляционная база данных, исходный файл, такой как XML, альтернативный формат базы данных плоских файлов, электронной таблицы или любого из других различных источников предварительно отформатированных данных. Некоторые системы обработки шаблонов ограничены в типах данных, которые можно использовать. Другие предназначены для максимальной гибкости и допускают множество различных типов данных.
Исходные шаблоны традиционно задаются:
Механизм шаблонов отвечает за:
Кроме того, некоторые механизмы шаблонов допускают дополнительные параметры конфигурации.
Они могут состоять из всего документа или его фрагмента.
Обработка шаблонов используется в разных контекстах для разных целей. Конкретная цель обычно зависит от используемого программного обеспечения или механизма шаблонов. Однако гибкость систем обработки шаблонов часто позволяет нетрадиционное использование для целей, изначально не предназначенных первоначальными разработчиками.
Механизм шаблонов - это особый вид модуля обработки шаблонов, который демонстрирует все основные функции современного языка программирования. Термин «шаблонизатор» развился как обобщенное описание языков программирования, основной или исключительной целью которых была обработка шаблонов и данных для вывода текста. Использование этого термина наиболее заметно применяется к веб-разработке с использованием системы веб-шаблонов, а также применяется к другим контекстам.
Структуры создания документов обычно используют обработку шаблонов в качестве центральной модели для создания документов.
Инструменты генерации исходного кода поддерживают генерацию исходного кода (в качестве результирующих документов) из абстрактных моделей данных (например, UML, реляционных данных, предметной области). конкретных хранилищ корпоративных данных) для конкретных доменов приложений, конкретных организаций или для упрощения производственного процесса для программистов.
A веб шаблонизатор обрабатывает веб-шаблоны и исходные данные (обычно из реляционная база данных ) для создания одной или нескольких выходных веб-страниц или фрагментов страниц. Обычно он входит в состав системы веб-шаблонов или структуры приложения. В настоящее время программное обеспечение для обработки шаблонов наиболее часто используется в контексте разработки для web.
XSLT - это модель обработки шаблонов, разработанная W3C. Он предназначен в первую очередь для преобразования данных XML (в веб-документы или другой вывод).
Языки программирования, например Perl, Python, PHP, Ruby, C# и Java поддержка обработки шаблонов либо изначально, либо с помощью дополнительных библиотек и модулей. JavaServer Pages, Active Server Pages, Genshi (для Python) и eRuby - это примеры механизмов шаблонов, разработанных специально для разработки веб-приложений..
Кроме того, обработка шаблонов иногда включается в качестве вспомогательной функции программных пакетов, таких как IDE и системы управления реляционными базами данных.