Используя посредника, как включить один файл HAML в другой файл HAML? - PullRequest
3 голосов
/ 22 февраля 2012

Я использую посредника для быстрого прототипирования и не могу понять, как включить один файл HAML в другой файл HAML.

Я могу включить материал в файл макета, но не могу получить один файл без макета для включения другого файла без макета.Есть блоки HTML, которые я хочу использовать на некоторых страницах, и я думаю, что смогу сделать это.Я пробовал:

- render: partial=>"shared/nav.haml"
=shared/nav.html
="shared/nav.html

и ничего из этого не работает.

Мне не хватает опции конфигурации или плагина?Это новая промежуточная установка.


ОТВЕТ

Partials может требовать имена файлов, начинающиеся с подчеркивания.Моя часть находится в папке с именем shared.Полное имя файла: _nav.html.haml

Это сработало для меня.

!= haml :"shared/_nav"

Пример в контексте:

#email.main.subscriber.resize
  #bg-wrap
    %div
      %img{:src=>"images/backgrounds/image.png",:alt=>""}
  %section#zone10
    != haml :"shared/_nav"

Вы также можете использоватьформат указан в утвержденном ответе ниже.

1 Ответ

8 голосов
/ 23 февраля 2012

Я использую HAML с MiddleMan и не могу быть счастливее.Вот что работает для меня:

У меня есть файл: source/_donate_buttons.h

 #DonationButtons
   %p= t('searching.donate_cover_costs')
   %br
   = partial(:paypal_donate_button, :locals => {:amount => 1, 
     :amount_text => t('searching.donate_1')})

Используется показанное частичное утверждение для включения файла с именем source/_paypal_donate_button.html.haml.

И я включаю сам файл _donate_buttons.html.haml в нескольких местах:

= partial "donate_buttons"

, хотя я думаю, что это также может быть:

= partial :donate_buttons

Т.е. я думаю partialэто магия, которую вы ищете.

И, просто для полноты, вот немного урезанный _paypal_donate_button.haml, который показывает, как там работает параматеризация:

-btnclass = (locals.key?(:highlight) && locals[:highlight] ? "HighlightedDonationButton" : "DonationButton")
-btnstyle = locals.key?(:button_style) && locals[:button_style]
.DonationButtonContainer
  %form{:action => "https://www.paypal.com/cgi-bin/webscr", :method => "post"}
    %input{:name => "business", :type => "hidden", :value => "payments@example.com"}
    %input{:name => "cmd", :type => "hidden", :value => "_donations"}
    %input{:name => "amount", :type => "hidden", :value => "#{amount}.00"}
    %input{:name => "currency_code", :type => "hidden", :value => "USD"}
    %input{:class => btnclass, :alt => t('paypal.alt_text'),
      :style => "cursor: pointer; font-size: 18px; #{btnstyle}", :type => "submit", :value => amount_text}

Fwiw, Iне думайте, что файл должен быть _filename.html.haml и может вместо этого _filename.haml.Кроме того, я локализую их, поэтому проигнорируйте t ('tagname') и просто поместите туда строки. (Я не хотел вводить ошибку при вставке примеров, поэтому оставил их там.)

Надеюсь, это поможет!

...