Creando un Blogazine con Ruby on Rails
Sí, sí, este que estás leyendo
Qué es un Blogazine
Un Blogazine es un medio para publicar artículos personales en Internet, sólo que el diseño y formato de los mismos es mucho más elaborado y más semejante al que ofrecería una publicación impresa.
Este
Desde el punto de vista del programador o el diseñador además es un modelo interesante para hacer experimentos y al mismo tiempo publicarlos.
Mi Solución
Como es de suponer, existen infinidad de soluciones aplicables al problema, tal vez tantas como desarrolladores y tal vez a la hora de la verdad puede que cada uno sólo se sienta cómodo con la suya. En cualquier caso ver cómo otro ha hecho su solución siempre puede ayudar a desarrollar la propia. Sin más dilación, aquí presento Mi Solución:
Todo el programa está desarrollado utilizando el framework de Ruby on Rails como base y también está inspirado en la ya vieja CSS Zen Garden y en el famoso ejemplo Programar un Blog en 15 minutos, aunque claro, adaptado a Rails 3.
Los principales problemas a solucionar fueron dos, crear una estructura suficientemente flexible como para no presentar practicamente ninguna restricción a la creatividad y crear un tipo de post tan fácil de publicar como el clásico pero capaz de aprovechar dicha flexibilidad.
Una Estructura Flexible
Una estructura suficientemente sería aquella que permitiese mostrar nuestro sitio en formatos tan diferentes como los que aparecen en los siguientes ejemplos sin necesidad de adaptar el código compartido de la aplicación cada vez que escribamos un nuevo artículo.
Diferentes diseños posibles en este blogazine
La clave: evitar elementos innecesarios. Sólo hay un encabezado, un área para el contenido y un pie. El encabezado y el pie son internamente muy sencillos de modo que sea fácil cambiar el aspecto para que cuadre con el diseño general del post.
Para definir el estilo general básico y facilitar el desarrollo, toda la estructura está englobada en un framework de CSS, The Square Grid, este es el que añade los divs wrapper y container que además de dar estructura básica, resultan muy útiles para personalizar el estilo. Puede utilizarse cualquiera, elegí este porque a mí me resultaba cómodo y con una cantidad de espacio muy correcta. Ya sé que no resulta muy semántico, pero de otro modo escribir artículos sería un infierno
El CSS que se añade en cada post tiene la capacidad de anular el definido en el estilo general, pero eso no nos permite cambiar el ancho de los tres elementos principales, para hacer posible que encabezado, área de contenido y pie puedan ocupar todo el ancho de pantalla o una fracción distinta a la habitual es necesario incluir innerheader e innerfooter a encabezado y pie respectivamente.
Elementos descritos en los tres párrafos:
Básico Square Grid ExtrasLa Diferencia con el Blog Clásico
Un blog de estilo clásico está formado (en su mínimo aceptable, claro) por un título y un cuerpo, ¿cambia esto en este Blogazine? No, aunque sí que se añaden dos nuevos elementos: un apartado para CSS y otro para Javascript.
El código insertado aparecera al final del head de la pagina permitiendo así anular (override) las propiedades y funciones de los CSS y Javascripts básicos de la página.
El texto introducido puede ser tanto código interno como referencias a otras hojas de estilo y librerías.
A pesar de que esta parte del artículo es tan corta, las horas sopesando alternativas, pros y contras fueron mucho mayores a las dedicadas a la creación de la estructura. Si quieres saber más, pregunta ;-)
Recursos Externos Utilizados
The Square Grid
Framework CSS. Utilizado para crear rápidamente la estructura básica de cada artículo.
Kaminari
Permite crear sistemas de paginación. Utilizado para paginar los distintos índices de artículos.
Paperclip
Gestión de ficheros e imágenes. Utilizado para las imágenes de los índices de artículos.
Nifty Generators
Una colección de generadores de Ruby on Rails. Utilizado para crear el sistema de login.