Наследование нефритовых шаблонов - PullRequest
1 голос
/ 27 января 2012

Наследование Jade-шаблонов в Jade сводит меня с ума ...

Проблема в том, что я хотел бы исключить большой кусок кода из внешнего шаблона, а затем включить его.Когда я это делаю, все становится f ** up: /

Пример кода:

!!!5
html(lang="en")
  head
    title sample title
  body
    header
      div#someDiv
        div#someContent
          section#main

Допустим, я хочу исключить все сверху до div#someContent.Тогда у меня будет

include inc/header
          section#main

Таким образом отступ в коде будет неправильным, и все испорчено: / Можете ли вы указать мне правильное направление, включая шаблоны?

Заранее спасибо!

1 Ответ

4 голосов
/ 28 января 2012

Это не наследование шаблонов, но включает в себя (наследование шаблонов с блоком и расширяет ключевые слова).Я попробовал ваш код, и то, что он делает с включением, это вставить «section # main» в «div # someDiv» вместо «div # someContent».Не уверен, следует ли считать это ошибкой или как (как парсер узнает, должен ли добавленный контент находиться внутри последнего элемента во включаемом файле или на том же уровне?).Кажется, он не заботится об уровне отступа в операторе «include».

Однако, если вы действительно используете наследование шаблонов, вы можете поместить пустой блок в конец вашего include:

!!!5
html(lang="en")
    head
        title sample title
    body
        header
            div#someDiv
                div#someContent
                    block content

Затем вы можете добавить блок в ваш файл фактического содержимого:

include inc/header
    block append content
        section#main

И это отразится на ОК в DOM (section # main находится внутри div # someContent).В зависимости от структуры ваших представлений, вам может быть лучше использовать "extends" вместо "include + block append".Вы можете проверить Jade's GitHub doc для деталей.

...