Я в основном работаю с Middleman 2, хотя, если это можно сделать только в Middleman 3, я могу переключиться на него
У меня есть layout.haml
, имеющий весь шаблон и одновременно являющийся макетом индекса.
Теперь я хочу, чтобы макет inner.haml
, который будет работать для остальных страниц, будет наследовать от layout.haml
(с точки зрения того, что я не буду повторять части шаблона), будет включать некоторые дополнительные общие стили / сценарии, некоторая общая разметка, а затем будут заменены блоки yield
.
В настоящее время я вообще не понимаю, откуда мне начинать. Я понимаю, как можно установить inner.haml
в качестве макета по умолчанию и layout.haml
в качестве макета для маршрута "/", но как система узнает, что inner.haml
на самом деле вложен в layout.haml
?
Пример настройки
layout.haml
!!!5
%html
%head
%script(src="HTML5 shiv")
%title
My Site
\|
= yield_content :title
= stylesheet_link_tag "site.css"
= yield_content :page_styles
%body
%div(role="main")
= yield_content :content
%script(src="jquery")
= yield_content :page_scripts
index.html.haml
- content_for :title do
Index
- content_for :page_styles do
= stylesheet_link_tag "index.css"
- content_for :page_scripts do
%script(src="index.js")
- content_for :content do
Cool banner here
inner.haml
-# somehow inherits from / extends layout.haml
- content_for :page_styles do
-# somehow I'm putting some common content and then reinclude the block from the specific page
= stylesheet_link_tag "inner.css"
= yield_content :page_styles
-# same thing for page_scripts
- content_fir :content do
-# again I define some common HTML, then include page's content