Me estoy acostumbrando a Middleman y Ruby en general. ¿Cuál es la mejor forma de generar una navegación con estados activos?¿Cómo puedo generar una navegación en Middleman?
Respuesta
En la versión actual de MM (2.x, aunque 3.0 está cerca), puede hacerlo con las siguientes adiciones a config.rb
y algunos ajustes en su (s) archivo (s) de navegación. Aquí es a working version en caso de que dejar de lado algunos bits críticos:
En primer lugar crear una función auxiliar:
helpers do
def nav_active(page)
@page_id == page ? {:class => "Active"} : {}
end
end
Luego, en el nav bar include file (en este caso es un archivo haml), puede utilizar el ayudante nav_active
como sigue:
#HeaderNavigationBar
%ul
%li{nav_active("index")}= link_to t('top_navigation.home'), t('paths.index')
%li{nav_active("pricing")}= link_to t('top_navigation.pricing'), t('paths.pricing')
%li{nav_active("faq")}= link_to t('top_navigation.faq'), t('paths.faq')
el resultado neto de esto es añadir la clase "abierto" para el enlace en la barra de navegación cuando la página se edificio construido para esta página. Es decir. si la página es un archivo llamado "índice", entonces el @page_id
será "índice" y ese enlace tendrá el tema Activo.
Para completar el ejemplo, aquí es el extracto de la scss style partial que define activa:
&.Active {
font-weight: bold;
}
En una versión posterior del archivo de cabecera, que en realidad eliminado el vínculo cuando en la página activa. Parece algo así como - lo que claramente se podía puso en orden, pero Fwiw: D:
%li{nav_active("index")}
-if "index" == @page_id
= t('top_navigation.home')
-else
= link_to t('top_navigation.home'), root()
... (etc)
Tenga en cuenta que toda la t ('cosas') tiene que ver con las funciones de traducción para i18n. Puedes ignorar eso. No quise hacer el ejemplo sintácticamente incorrecto tratando de eliminarlos.
Espero que esto ayude - también vea el foro en http://forum.middlemanapp.com/.
Hago algo como esto si sé que las clases de página serán las mismas : class => (page_classes === "index")? "activo": "" –
Aquí es una nueva joya para el marcado de un enlace actual en Middleman con aria-current
(que luego se puede utilizar para el estilo fuera de): https://github.com/thoughtbot/middleman-aria_current
- 1. Middleman y Github páginas
- 2. Pasar una variable a la plantilla en Middleman 2
- 3. 'Quitar middleman' Refactorización de IntelliJ en una interfaz vacía
- 4. ¿Cómo puedo generar una variable en una prueba de rspec?
- 5. Uso de MIddleman 3.0 - ¿Cómo puedo configurar títulos de páginas individuales en páginas dinámicas?
- 6. ¿Cómo puedo crear una pila de navegación global?
- 7. Cómo puedo eliminar una vista del controlador de navegación
- 8. ¿Cómo puedo generar una URL amigable en Symfony PHP?
- 9. ¿Cómo puedo generar una URL amigable en C#?
- 10. ¿Cómo puedo generar una imagen en Ruby sin dependencias externas?
- 11. ¿Cómo puedo generar Javascript dinámico?
- 12. ¿Cómo puedo generar un GUID en Vim?
- 13. ¿Cómo puedo generar colores contrastantes?
- 14. ¿Cómo puedo generar slugs URL en Perl?
- 15. ¿Cómo puedo generar imágenes GIF en .NET?
- 16. PHP: ¿Cómo puedo generar una firma HmacSHA256 de una cadena
- 17. ¿Cómo puedo generar una secuencia a partir de una cadena?
- 18. ¿Cómo puedo generar algo en Rhino?
- 19. ¿Cómo puedo generar números aleatorios en Python?
- 20. ¿Cómo puedo generar tokens CSRF en Express?
- 21. ¿Cómo puedo generar números aleatorios en Dart?
- 22. Crear una navegación numérica
- 23. ¿Cómo puedo generar una partición entera aleatoria uniforme?
- 24. ¿Cómo puedo generar un hash largo de una cadena?
- 25. ¿Cómo puedo generar una especificación de controlador usando rspec?
- 26. ¿Cómo generar una permutación?
- 27. ¿Cómo puedo generar mensajes de progreso desde una instrucción SELECT?
- 28. ¿Cómo puedo generar un GUID para una cadena?
- 29. ¿Cómo puedo detectar si una categoría tiene Incluir en el menú de navegación establecido en NO?
- 30. ¿Cómo puedo generar el archivo .svc?
Sede de [magic_link_to] (Thomas https://github.com/middleman/ middleman/issues/303 # issuecomment-4362124) ayudante para Middleman 3. 'request.path' representa la ruta actual de la URL. – sam
El desbordamiento de pila se ha vuelto tan triste que puede hacer cualquier pregunta que tenga una respuesta en un manual, pero ya no puede hacer preguntas útiles. No es una pregunta real? No creo que eso signifique lo que piensas que significa. –