Pregunta

Estoy usando Middleman para hacer algunos prototipos rápidos y no puedo para mi vida descubrir cómo incluir un archivo Haml en otro archivo Haml.

Puedo incluir cosas en un archivo de diseño, pero no puedo obtener un archivo que no sean degryaute incluya otro archivo que no sea de la luz. Hay bloques de HTML que quiero reutilizar en algunas páginas y creo que podría hacer esto. He intentado:

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

Y ninguno de estos trabaja.

¿Me falta una opción o complemento de configuración? Esta es una nueva instalación de Middleman.


RESPONDER

Parcialidad mayo Necesita nombres de archivo que comiencen con un bajo. Mi parcial se coloca en una carpeta llamada Shared. El nombre completo del archivo es _nav.html.haml

Esto funcionó para mí.

!= haml :"shared/_nav"

Ejemplo en contexto:

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

También puede usar el formato especificado en la respuesta aprobada a continuación.

¿Fue útil?

Solución

He estado usando Haml con Middleman y no podría estar más feliz. Esto es lo que me está funcionando:

Tengo un archivo: 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')})

Esto utiliza la declaración parcial que se muestra para incluir un archivo llamado source/_paypal_donate_button.html.haml.

Y incluyo el _donate_buttons.html.haml Archarse en un par de lugares con:

= partial "donate_buttons"

Aunque creo que esto también podría ser:

= partial :donate_buttons

Es decir, creo partial es la magia que estás buscando.

Y, solo por integridad, aquí hay un ligeramente despojado _paypal_donate_button.haml que muestra cómo funciona la paramaterización allí:

-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, no creo que el archivo sea necesario _filename.html.haml y en su lugar puede ser _filename.haml. Además, estoy localizando estos, así que ignore la T ('tagname') y simplemente ponga cuerdas allí. (No quería introducir un error de copia de los ejemplos, así que los dejé allí).

¡Espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top