2011-08-23 7 views
5

¿es posible usar diseños múltiples para un (o los) elemento (s) específico (s)? Por ejemplo, tengo un par de elementos y deseo aplicarle dos diseños diferentes. Uno con un verde y otro con un fondo azul (sin embargo). Y quiero compilarlos en dos carpetas diferentes en mi directorio de salida (por ejemplo, v1 y v2).nanoc y diseños múltiples

Estaba jugando con las reglas y los bloques de compilación, pero no pude entender cómo podría funcionar. Como cada elemento se compila solo una vez durante el proceso de compilación, no puedo decirle a nanoc que lo compile la primera vez con layout1 y la segunda vez con layout2. Intenté algo así, pero me llevó a archivos de salida rotos.

compile '*' do 
    if item.binary? 
    # don’t filter binary items 
    else 
    filter :erb 
    layout 'layout1' 
    layout 'layout2' 
    end 
end 

Espero que haya sido claro y que alguien pueda ayudar.

THX, tux

Respuesta

9

representaciones del artículo están destinados para este fin. Puede crear dos representaciones diferentes, p. el predeterminado y uno alternativo, y luego aplicar reglas de compilación y enrutamiento a ellos, como este:

# default rep, although you can pass 
# :rep => :default explicitly too 
compile '/stuff/*/' do 
    filter :erb 
    layout 'default' 
end 

route '/stuff/*/' do 
    # /stuff/foo/ -> /boring/stuff/foo/ 
    # Just an example; you probably need something else 
    '/boring' + item.identifier 
end 

compile '/stuff/*/', :rep => :special do 
    filter :erb 
    layout 'special' # this is different 
end 

route '/stuff/*/', :rep => :special do 
    # /stuff/foo/ -> /special/stuff/foo/ 
    # Again, just an example 
    '/special' + item.identifier 
end 
Cuestiones relacionadas