¿Cómo Está Hecha Esta Revista?
Autor: Roberto Alsina
Esta revista es un emergente de PyAr, el grupo de desarrolladores Python de Argentina. El ser un proyecto creado por programadores, para programadores (y no un proyecto de diseñadores gráficos para diseñadores gráficos) tiene sus ventajas y sus desventajas.
La desventaja está a la vista. Yo tuve que hacer el diseño visual. Les pido disculpas tardías por cualquier sangrado ocular que les haya producido.
La ventaja es que uno de nosotros (yo) ya había agarrado software (creado por un montón de otra gente) y le había pegado patadas en el traste hasta hacer que hiciera algo más o menos parecido a la revista (un libro).
Entonces, nuestros genes de programadores permiten que tengamos una infraestructura descentralizada para diseño de revistas online, multiusuario, multirol, multioutput (por ahora PDF y HTML), automático.
¿Cómo de automático? Actualizar todo el diseño del sitio y el PDF es un comando.
Estas son algunas de las herramientas utilizadas, todas ellas software libre:
- git y gitosis
- Una gran herramienta de control de cambios, y una gran herramienta para administrar repositorios.
- restructured text
- Un markup para documentos, uno crea archivos de texto sencillos y produce salida en casi cualquier formato.
- rest2web
- Convierte nuestros archivos de texto en un sitio web.
- rst2pdf
- Crea PDFs a partir de restructured text.
- make
- Se asegura que cada comando corra cuando se necesita.
- rsync
- Se encarga de que todo vaya al server para que puedas verlo.
Al ser esta una revista de programación, tiene algunos requerimientos particulares.
- Código
Es necesario mostrar código fuente. Rst2pdf lo soporta nativamente con la directiva code-block pero no es parte del restructured text standard. En consecuencia, tuve que emparchar rest2web para que la use.
Por suerte la directiva es completamente genérica, funciona para HTML igual que para PDF. Esto es lo que tuve que agregar al principio de r2w.py:
from rst2pdf import pygments_code_block_directive from docutils.parsers.rst import directives directives.register_directive('code-block', \ pygments_code_block_directive.code_block_directive)
- Feedback
- Como toda la idea es tener respuesta, hay que tener como dejarla. Comentarios en el sitio via disqus.
- Tipografía
Es complicado encontrar un set de fuentes modernas, buenas, y coherentes. Necesito por lo menos bold, italic, bold italic para el texto y lo mismo en una variante monoespaciada.
Las únicas familias que encontré tan completas son las tipografías DejaVu y Vera.
- HTML
- Soy un queso para el HTML, así que tomé prestado un CSS llamado LSR de http://rst2a.com. La tipografía es vía Google Font APIs.
- Server
- No espero que tenga mucho tráfico. Y aún si lo tuviera no sería problema: es un sitio en HTML estático, así que lo puse en un servidor cortesía de Net Managers SRL