Последние записи в блоге

TwigJS фикс инлайновых макросов

Автор: Дмитрий Цирульников
Дата:  20 Октября 2014

Речь пойдет о https://github.com/justjohn/twig.js, этот шаблонизатор почти полностью подходит под мои задачи, но просто взять и использовать его без express невозможно, т.к. в inline режиме не работают from и import.

Гугление ничего не дало, пришлось взяться за исходники и пройтись дебагером. В ходе раскопок выяснилось следующее: 

С настройкой allowInlineIncludes работают только блоки и инклуды 
Macro скомпилировать можно, но импортировать их нельзя, как не старайся. 
Под капотом импорт безапелляционно стучится через ajax, и ничего там нет про то, что можно бы и в кеше посмотреть. Видимо забыли или еще чего. 

Это довольно легко исправляется добавлением пары строчек в Twig.Template.prototype.importMacros:

Twig.Template.prototype.importMacros = function(file) {
        if(this.options.allowInlineIncludes){
            return this.importFile( file );
        }
        ....
}

Если у нас стоит настройка allowInlineIncludes импортить файл как обычный нашблон, можно еще заморочиться и добавить в условие отсутствие урла или пути, но этого у меня в задаче не было)

Агрегатор фриланс бирж FreelanceGrab, искать заказы на фрилансе стало еще проще.
8 крупных бирж, удобный поиск и фильтрация по проектам,
моментальное обновление ленты без перезагрузки страницы