Разметка шаблонов
Разметка шаблонов специально была спроектирована так, чтобы быть максимально простой и не содержать никакой лишней логики. Вся логика реализуется в правилах шаблонов.
Разметка же содержит всего два логических элемента - Поля и Блоки.
Разметка текста происходит путем вставки в него специальных последовательностей символов назваемых Тегами.
Теги
Все теги начинаются и заканчиваются символами \\ (Две косые черты). Обратите внимание в какую сторону должен быть наклон.
Этот символ выбран не случайно. Дело в том, что он один из немногих на клавиатуре находится на одной и той же клавише для русской и английской раскладки. Кроме того в обоих раскладках его ввод не требует нажатия клавиши shift. По этому мы считаем использование это символа в тегах наиболее удобным, с точки зрения его ввода на клавиатуре.
Тег в нашей разметке имеет следующие вид:
\\Текстовая метка\\
Где Текстовая метка - это любой набор символов, кроме \ (обозначающих границы тега). Текстовые метки будут затем использоваться в редакторе при настройке правил обработки шаблона. По этому мы рекомендуем давать им осмысленные имена. Например текстовая метка может быть:
\\ФИО Клиента\\
В текстовой метке могут использоваться любые символы, на любом языке. В том чилсе буквы любого регистра, числа, пробел, символы тире, подчеркивания и т.п. В принципе в метке может быть использован любой специальный символ. Но мы все-таки не рекомендуем использовать специальные символы, отличные от перечисленных выше, во избежание непредвиденных проблем с тектовыми редакторами и настройкой правил.
Поля
Поле задает место в документе, в которое в последствии будет подставлен какой-то текст. Поле задается тегом содержащим Имя поля:
\\Имя поля\\
Имя поля затем будет использоваться в редакторе при настройке правил обработки шаблона. Можно задавать несколько полей с одним и тем же именем. Это будет считаться одним полем и к нему будет применяться одно и тоже правило. То есть в тексте в поля с одинаковым именем будет подставлено одно и тоже значение. Это верно даже если поле находится внутри блока или иерархии блоков. Исключением будет только если блок с полем итерируется в цикле. Тогда будет применено правило для каждой итерации цикла, и значения будут соответствующие.
Блоки
Блок задает участок текста документе, к которому затем будут применяться правила показа:
- сокрытие - блок может быть скрыть или показан
- итерация - блок может быть повторен заданное количество раз
Блок задается двумя тегами содержащими Имя блока:
\\Имя блока\\Какой-то длинный текст внутри блока, который необходимо скрыть или показать.\\!Имя блока\\
Теги с Именем блока обозначают начало и конец блока. Обратите внимание, что закрывающий тег блока содержит в начале символ !, это важно. Без правильного закрывающего тега такая разметка будет восприниматься программой не как блок, а как два поля с одинаковым именем.
Имя блока затем будет использоваться в редакторе при настройке правил обработки шаблона.
Пример размеченного текста
\\Сторона 1\\, с одной стороны, и \\Сторона 2\\, с другой стороны, заключили договор о нижеследующем:
....
Сумма договора составляет \\Сумма договора\\.
\\Уплата НДС\\
НДС не уплачивается в связи с применением стороной один упрощенной системы налогообложения.
\\!Уплата НДС\\
...
Реквизиты сторон.
\\Сторона 1\\
ИНН: \\ИНН Стороны 1\\
Данный текст содержит один блок Уплата НДС и четыре поля:
- Сторона 1
- Сторона 2
- Сумма договора
- ИНН Стороны 1
Причем поле Сторона 1 повторяется в тексте два раза.
Для этих полей можно потом будет настроить подстановку соответствующих значений, а для блока правила показа.