Есть вот такая примерно мысль - сделать в шаблонах что-то типа как PHP, только на jscript.
В-принципе несложно должно быть.
Т.е. примерно такой шаблон
Код:
// Создание таблицы значений
<?js
var tzName = %%<?"Укажите имя переменной">%%
?>
<?= tzName? > = Новый ТаблицаЗначений;
// Добавляем колонки
<?js
var colCount = 0 + %%<?"Укажите количество колонок">%%
for(var i = 0; i < colCount; i++)
echo(tzName + ".Колонки.Добавить();")
?>
преобразуется в такой текст скрипта:
Код:
echo("// Создание таблицы значений")
var tzName = snegopat.parseTemplateString("<?\"Укажите имя переменной\">")
echo(tzName)
echo(" = Новый ТаблицаЗначений;\n// Добавляем колонки\n")
var colCount = 0 + snegopat.parseTemplateString("<?\"Укажите количество колонок\">")
for(var i = 0; i < colCount; i++)
echo(tzName + ".Колонки.Добавить();")
и далее этот текст выполняется в текущем скрипте через eval. В своем скрипте реализовать функцию
Код:
function echo(text) {resultText += text}
, которая добавляет текст к выводу.
Таким образом, все что находится в
<?js ...
?> - остается как есть, скриптом.
Все что в
<?js ...
?> и в
%%...
%% - преобразуется в parseTemplateString,
Все что вне
<?js ...
?> - преобразуется в echo(parseTemplateString("текст заключенный в кавычки"))
Все что в
<?= ...
?> - преобразуется в echo(текстКакЕсть)
Ну и помимо echo еще можно всяких сервис-функций в скрипте накидать для шаблонов...
Единственная засада - не будет работать такой вариант:
Код:
<?"Укажите имя переменной">
<?js
.....
?>
<?"Укажите имя переменной">
Если в обычном шаблоне "Укажите имя переменной" запросит только один раз, и подставит введенный текст и во второй вставке, то в варианте с обработкой скриптов текст разобъется на два несвязанных parseTemplateString, и будет второй раз запрашивать.