Тема: Snakeskin
Показать сообщение отдельно
  #208 (permalink)  
Старый 28.08.2014, 10:44
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от kobezzza Посмотреть сообщение
Решил также добавить директиву macro, которая позволит декларировать макросы прямо в области декларации шаблона. Директиву можно будет писать только в глобальной области.

- macro :) = <img src="..." />
- macro (: = <img src="..." />

- template foo()
    Hello :)
Додумал эту концепцию.

Будет введёт ряд директив для установки флагов транслятора, т.е. методу compile мы можем передать, например, флаг inlineIterators и тогда все forEach и forIn итераторы будут скомпилированы в виде циклов или же stringBuffer и т.д.

А теперь будет можно задать эти флаги прямо в шаблоне:

/// Отключить опцию

!- escapeOutput 
!- xml

/// Включить опцию

!+ inlineIterators 

/// Или просто подключение файла настроек

!= params 'myParams.json'

/// Подключение файлов для опций

!= language 'myLang.json'
!= macros 'myMacros.json'

- template helloWorld()
	Hello World


Крутость такого подхода в том, что данные директивы будут распространятся только на отдельные странички, т.е. если страничка A включает страничку Б, то у них будут свои настройки, а при задачи параметров в метод compile настройки ставятся глобально.

В главной странице можно будет также задать глобальные настройки, для этого будет синтаксис:

@- escapeOutput 
@- xml
@+ inlineIterators


и т.д.

Локальные настройки будут расширять глобальные.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 28.08.2014 в 10:48.
Ответить с цитированием