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

<part:1>Текст части 1.</part:1>
Постоянно присутствующий текст. <part:2>Текст части 2.</part:2>


Передадим генератору в параметрах, что надо удалить <part:1> (или оставить <part:2>). В результате получим:

Постоянно присутствующий текст. Текст части 2.

Для логической операци И (не удалять, если выбраны <part:1> и <part:3>) разметка может быть следующей:

<part:1><part:3>Текст части 1.</part:3></part:1>
Постоянно присутствующий текст. <part:2>Текст части 2.</part:2>


Для логической операци ИЛИ (удалять, если выбраны <part:1> или <part:3>) разметка может быть следующей:

<part:1>||<part:3>Текст части 1.</part:3></part:1>
Постоянно присутствующий текст. <part:2>Текст части 2.</part:2>


Перечислим достоинства и недостатки данного способа разметки шаблонов.

Достоинства:

— в одном шаблоне может содержаться множество тематически связанных документов.
— разметка достаточна простая и может быть выполнена сотрудниками, не связанными с ИТ. При наличии хорошего инструмента для разработки шаблонов выполнить подобную разметку сможет сотрудник, компетентный в предметной области, и ему не нужно будет работать с некомпетентным в предмете посредником из ИТ.
— есть возможность получить из всего списка полей для заполнения информацией, содержащихся в шаблоне, список полей, которые останутся после удаления лишних фрагментов из шаблона.

Недостатки:

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

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

Комментарии (4)


  1. x893
    01.08.2017 21:41
    +8

    Для какой цели написан сей опус?


    1. basilbasilbasil
      01.08.2017 22:08

      как сделать свой hellosign с подписями и шаблонами ))


      1. x893
        01.08.2017 22:21

        Как то уж слишком примитивно.
        Всё равно что описывать веточки для добычи огня.


  1. Goury
    02.08.2017 12:44

    Откройте для себя какую-нибудь Jinja2 и прекратите страдать хернёй.