2012-03-29 14 views
1

Ich bin im Grunde mit Middleman 2 arbeiten, obwohl, wenn dies nur in Middleman 3 erfolgen kann ich es wechselnVerwendung verschachtelte Layouts in Middleman

Ich habe layout.haml mit all den vorformulierten und gleichzeitig dem Layout des Index sein.

Jetzt möchte ich die inner.haml Layout, das für den Rest der Seiten funktionieren wird, wird erben von layout.haml (im Sinne, dass ich die Textteile nicht wiederholen), werden einige zusätzliche gemeinsame Stile/scripts incude, einige common markup und wird dann die yield Blöcke neu platzieren.

Momentan merke ich überhaupt nicht wo ich anfangen soll. Ich verstehe, wie ich inner.haml als Standardlayout und layout.haml als Layout für die "/" Route festlegen kann, aber wie würde das System wissen, dass die inner.haml tatsächlich in layout.haml verschachtelt ist?

Beispielaufbau

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

Antwort

3

In 3.0 haben Sie index verwenden Sie das Layout inner, die wrap_layoutlayout wäre.

In 2.0 benötigen Sie eine Kombination aus Partials und content_for Blöcken.

+0

Ich verwende content_for und yield_content bereits. Wenn du Partials sagst, meinst du, dass ich alle common_inner_styles, common_inner_scripts und common_inner_markup in separate Partials schreiben soll? Damit wäre ich in Ordnung, aber ist es möglich, Inhalte in die Partiellen zu legen? Ich meine, ich möchte einige allgemeine Wrapper-Elemente für alle inneren Seiten benutzerdefinierte Inhalte – Guard

0

Auf den ersten Blick wäre ich versucht, dies mit zwei Vorlagen zu tun. Vielleicht nicht so elegant oder TROCKEN, aber sicherlich verständlich und leicht später zu zwicken. Z.B. Für unsere Website haben wir eine front page layout und eine rest of the site layout. Und dann erklären wir in jeder MiddleMan-Quelldatei, welches Layout verwendet wird (see example).

Davon abgesehen, hoffe ich, etwas von einem HAML-Meister zu lernen, der etwas Magie für Ihre Situation hat!

+0

Ja, auf jeden Fall nicht trocken. Was ich wirklich habe - die All-Site-Vorlage (nicht so winzig) und dann etwas häufigeres Markup für jede innere Seite. also werde ich auf jeden Fall keine Wiederholung hier – Guard

+0

befürchteten, dass der Fall sein könnte ... – mm2001

Verwandte Themen