Здесь будет обсуждение моей либы из предыдущего поста.
UDP: репозиторий здесь:
https://github.com/gaperton/include.js Прогресс по плану под катом.
0. "Официальный" репозиторий на гитхабе.
Сделано.
1. Поддержка ASP-style тегов как второго варианта.
{{ expression}} <-> <%= expression %>
{- code -} <-> <% code %>
{-- section_name --} <-> <%+ section_name %>
Сделано Работают одновременно все теги, ничего переключать не нужно.
Причем - код трансформации я изолирую и выделю, так, что каждый сможет экспериментировать, добавляя свои собственные расширения шаблонного движка.
Сделано больше Реализован интерфейс плагинов. Простой, и чистый. Можно добавлять любые типы контента, не только шаблонные движки для HTML. И это делается очень просто. Реализация встроенного шаблонного движка теперь является плагином.
2. Поддержка секции по умолчанию.
Код сверху страницы до первого тега секции будет являться главной секцией.
tmpl( context ) : String; // вызов секции по умолчанию (главной).
tmpl.section_name( context ) : String // вызов секции section_name.
Сделано.
tmpl.$( context ) : jQuery; // то же, но возвращает jQuery-объект.
tmpl.section_name.$( context ) // то же, но возвращает jQuery-объект.
Удалено нафиг, как слишком замороченное при мизерной пользе
3. Новый способ включения шаблонов.
- Шаблоны всегда включаются под именем _.html, и только под ним.
- Если надо включить несколько шаблонов в один модуль - это делается так:
$.include({
html:{
a : "my/template.html",
b : "my/template_b.html"
}
})
.define( function( _ ){
...
var $a = _.html.a.$( context );
var $a = _.html.b.$( context );
...
});
То есть, они попадут в неймспейс _.html
Сделано, как часть плагинного интерфейса
5. В следующих сериях будет сделано плагинами
- поддержка включения стилей. По тому же принципу, что и html. И - тоже можно будет задавать css-ам отдельный рут в include.settings. Параметр будет называться css.
$.include({
html: "my/template",
css: "my/style"
})
.define( function( _ ){
...
var $this = _.html.$( context );
...
});
А если стилей будет много - то так:
$.include({
html: "my/template",
css: ["my/style1", "my/style2"]
})
.define( function( _ ){
...
var $this = _.html.$( context );
...
});
Стили вставляются при загрузке в основной документ автоматом, и в неймспейсе _ недоступны.
7) поддержка внедрения стилей в текст шаблона - обычным HTML-тэгом style.
Движок перед обработкой шаблона вырежет из него все теги , склеит их, и вставит в документ. Кого как - а меня лично бесит, что я не могу по человечески указать стиль в том же месте, где пишу HTML, который этот стиль использует. Этому безобразию пора положить конец.