Тема: Snakeskin
Показать сообщение отдельно
  #461 (permalink)  
Старый 07.02.2015, 10:39
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

В общем буду постить в этот коммент. Удалось таки запустить наследование...
html.ss
{template html(@param)}
    {doctype}
    <html lang="ru">
        <head>
            {block head}

                {block meta}
                        <meta charset="UTF-8">
                        <title>{param.title}</title>
                        <meta name="keywords" content="{param.meta_kwd}">
                        <meta name="description" content="{param.meta_des}">
                {/}

                {block style}
                {/}

                {block script}
                {/}

            {/block}
        </head>

        <body>
            {block body}
            {/block}
        </body>
    </html>
{/template}


main.ss
{include 'html.ss'}

{template main(param) extends html}

    {block style}
        {super}
        {link css}/css/style.css{/}
    {/}

    {block script}
        {super}
        {script js src = /js/lib/react.js}{/}
        {script js src = /js/lib/shim.js}{/}
    {/}

    {block body}
        {super}
        <div class="wrap">{param.title}</div>
    {/}

{/template}


вызов:
var tpl = require('../tpl/main.ss.js').init(require('snakeskin'));
var html = tpl.main({title:'Заголовок', meta_kwd:'ключевые, слова', meta_des: 'Много Текста Описания'});



Как можно заметить в main мы не вызываем напрямую {block head}: {block head}{super}{/} Он сам вызовется. В main мы просто дополняем блоки нужными нам данными. Причем место значения не имеет, можно хоть сначала написать {block body}, а в конце {block style}. Выводиться будет в порядке обозначенном в html.ss.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 07.02.2015 в 11:04.
Ответить с цитированием