Я начал смотреть на октябрь, и пока я могу создать макет по умолчанию и условно включить частичные части, где это необходимо. Я бы предпочел вложенные макеты.
т.е. Макет root
не зависит ни от какого другого макета, но макет nav
ссылается на макет root
.
Это возможно?
EDIT: я рассматриваю возможность замены ExpressionEngine. В EE у меня может быть макет root
с моими тегами html>head+body
. Тогда у меня мог бы быть макет nav
, который добавляет навигацию, но ссылается на макет root
как на ITS-макет. Таким образом, вы получаете root
, на который ссылается nav
, или на который может напрямую ссылаться любой [page]
(если навигация не нужна/не нужна). Вложенные макеты просто позволяют мне избежать условного включения частичного в layout
или page
. Просто более чистая разметка, на мой взгляд. Кроме того, как root
, так и nav
будут иметь тег {% page %}
для обозначения размещения контента.
Так что в идеале...
Корневой макет
<html>
<head>[common tags]</head>
<body>
{% page %}
</body>
</html>
Макет навигации
layout="root"
==
<nav>[markup]</nav>
{% page %}
Поэтому, когда страница ссылается на root
, навигация не отображается. Однако, когда страница ссылается на nav
, {% page %}
вставляется в nav
, а содержимое nav
+{% page %}
передается как содержимое {% page %}
в root
.
Надеюсь, дополнительная информация поможет.