Пишу свой модуль для битрикс. Модуль должен автоматически добавлять виджет на все страницы сайта. В виджете будет динамический контент, да и html самого виджета тоже нужно где-то хранить. При этом добавить виджет на страницу можно только при помощи js.
Вопрос, какой подход лучше выбрать.
Можно:
1) Добавлять в шапку тег script с аттрибутом type= text/html, и брать шаблон оттуда
2) Добавлять в тело документа теги template или code с display=none и брать шаблон оттуда
3) Запихать шаблон в отдельный файл и грузить аяксом оттуда
4) Шаблонный строки `строка текста ${выражение} строка текста` - не вариант, т.к. не поддерживаются IE.
5) Весь html будет внутри обычной строки js.
Именно последний подход сейчас я и использую. Выглядит примерно так:
const TEMPLATE = '<div class="' + wrapClasses.join(' ') + '">'
// кнопка вызова формы
+ '<div class="' + buttonClass + '">'
+ 'кнопка'
+ '</div>'
// шапка виджета
+ '<div class="' + headerClass + '">'
+ '<div class="' + goAdminClass + '"> открыть в админке </div>'
+ '<div class="' + hideClass + '">_</div>'
+ '</div>'
// и т.д.
Но в итоге такой шаблон получился довольно большим и постоянно перерабатывается, и я задался вопросом, может, есть подход получше? Какой способ организовать это самый распространенный и будет понятен любому нормальному разработчику (после меня этот проект унаследуют другие разработчики, не хотелось бы оставлять дерьмо будущим поколениям))
P.S. Библиотеки вроде react и т.п. тут не вариант.