Primeros pasos con Pelican
Hace unas semanas os hable de mudar de blog e hicimos una pequeña recopilación de generadores de sitios estáticos. Esta vez os escribo desde un editor Mardown. Quiero segur dandole una oportunidad a WordPress, así que espero que esta entrada salga bien maquetada 🙂
Aun así sigo animado a probar algún generador html estático y le voy a dar la oportunidad http://getpelican.com. De los que he visto es el que más me ha llamado la atención así ahora veremos como instalar Pelican en windows y como crearnos un pequeño sitio en http://github.io
¿Por qué elegir Pelican para crear html estático
De todos los generadores que vimos en el anterior post es el que menos me ha costado instalar y «echar a andar».
- Porque es facilísimo de instalar (incluso yo he podido hacerlo :P) con tan solo instalar pip (administrador de paquetes de python) y clonar (git clone) unos cuantos repositorios está todo listo.
- Porque con tan solo editar el archivo pelicanconf.py podemos sacarle muchísimo partido a Pelican, con solo indicar una ruta ya tenemos un nuevo theme, además todos los plugin se configuran desde este archivo.
- Porque tiene muchos themes distintos https://github.com/getpelican/pelican-themes con los podemos dar un look and feel más personalizado a la página.
- Porque tiene cantidad de plugins https://github.com/getpelican/pelican-plugins con los que poder añadir nuevas funcionalidades a Pelican. Por ejemplo, construir un sitemap de manera sencilla.
Instalando Pelican en windows
Pelican esta hecho en Python, así que lo primero será instalar el interprete dePython si no lo tenemos ya instalado.
Podemos descargarlos de aquí http://www.python.org/getit/ yo tengo instalada concretamente la version http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
Una vez que tenemos instalado Python debemos instalar el gestor de paquetes pip. Para familiarizarnos un poco, pip es una herramienta que nos permite isntalar paquetes fácilmente, algo así como pear (en realidad algo mejor) en PHP o similiar.
Para instalar pip podemos descargarlo de aquí https://sites.google.com/site/pydatalog/python/pip-for-windows
Al comenzar la instalación tenemos que indicar la ruta donde tenemos instalado Python.
Ya tenemos pip, o sea todo lo necesario para empezar con pelican en windows,así que tenemos que abrir una consola y escribir:
pip install pelican
pip install Markdown
Ahora desde la consola navegamos hacia el directorio donde queramos crear la web estática, yo por ejemplo he decidido crear una carpeta llamada C:\Desarrollo\jeslopcru.github.io 🙂 Así que solo nos queda escribir en la consola y responder a una serie de preguntas
pelican- quickstart
Welcome to pelican-quickstart v3.2.2.
This script will help you create a new Pelican-based website.
Please answer the following questions so this script can generate the files
needed by Pelican.
> Where do you want to create your new web site? [.] .
> What will be the title of this web site? jesuslc
> Who will be the author of this web site? Jesús LC
> What will be the default language of this web site? [es]
> Do you want to specify a URL prefix? e.g., http://example.com (Y/n) Y
> What is your URL prefix? (see above example; no trailing slash) http://jeslopcru.github.io
> Do you want to enable article pagination? (Y/n) N
> Do you want to generate a Makefile to easily manage your website? (Y/n) Y
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n) N
> Do you want to upload your website using FTP? (y/N) N
> Do you want to upload your website using SSH? (y/N) N
> Do you want to upload your website using Dropbox? (y/N) N
> Do you want to upload your website using S3? (y/N) N
Ya está, una vez respondidas estas preguntas ya tenemos nuestro sitio generado. Más o menos así sera la carpeta donde se ha generado todo
Personalizando Pelican
Ahora vamos a personalizar nuestro sitio estático generado por pelican. Para ello primero empezaremos por el theme parra después instalar algún que otro plugin.
Lo primero es generar nuestro sitio y después levantar el servidor http (no es necesario, ya que al ser páginas estáticas podemos abrir index.html con un navegador y obtendremos el mismo resultado)
cd C:\Desarrollo\jeslopcru.github.io
pelican -s pelicanconf.py
cd output
python -m SimpleHTTPServer
Ahora con tan solo acceder a http::/localhost:8000 veremos lo siguiente:
Como vemos ya tenemos nuestra página estática creada, ahora vemos a personalizarla, para ello podemos elegir uno de las decenas de themes disponibles https://github.com/getpelican/pelican-themes yo elegí este: https://github.com/chdoig/pelican-bootstrap3-lovers. Lo único que debemos hacer es bajarnos el repositorio, descomprimirlo y listo. También podemos clonar el repositorio con git (esta será la opción que voy a elegir)
git clone https://github.com/chdoig/pelican-bootstrap3-lovers.git
Con este comando nos descargamos el repositorio, ahora abrimos el archivo «pelicanconf.py» que se encuentra dentro del directorio de nuestro proyecto. En mi caso en la carpeta jeslopcru.github.io
El archivo «pelicanconf.py» es el archivo de configuración de nuestro sitio estático, con el podemos personalizar pelican para cambiar de themes, para peronalizar el theme que elijamos, etc.
Así que para personalizar pelican con el theme elegido solo tenemos que añadir estas lineas al final del fichero
# Specify theme
THEME = "C:\Desarrollo\statichtml\pelican-bootstrap3-lovers"
BOOTSTRAP_THEME = "lovers"
STATIC_PATHS = ['images']
HEADER_IMAGE = "jesuslc.png"
En la carpeta output/images es necesario poner la imagen que queramos utilizar de perfil. Ahora solo tenemos que generar de nuevo el sitio estático indicando el archivo de configuración, así que hacemos lo mismo que arriba:
cd C:\Desarrollo\jeslopcru.github.io
pelican -s pelicanconf.py
cd output
python -m SimpleHTTPServer
Entramos el http://localhost:8000 y este es el resultado
Siempre podemos perosnalizar este theme para dejarlo más a nuestro gusto 🙂
Instalando plugins
Ahora vamos a instalar plugins, aquí tenemos https://github.com/getpelican/pelican-plugins un listado extenso de plugins, vamos a instalar un par de ellos para ver como es el proceso.
Lo primero es indicar en la configuración donde está nuestra carpeta de plugins, después nos descargamos los plugins que queramos y por último solo tenemos que volver a generar el sitio html estático con pelican.
Lo mejor es clonarlos el repositorio y así podremos utilizar cualquier plugins de la lista. Para ello:
C:\Desarrollo\
git clone https://github.com/getpelican/pelican-plugins.git
Ahora para instalar un plugin solo tenemos que indicarlo en la configuración.
Abrimos el archivo «pelicanconf.py» y escribimos esto al final del mismo esto. Para instalar un plugin solo tenemos que indicar el nombre de la carpeta en el «array» PLUGINS
# Plugins
PLUGIN_PATH = 'C:\Desarrollo\pelican-plugins'
PLUGINS = ['assets', 'sitemap', 'optimize_images']
Como vemos, vamos a instalar 3 plugins ‘assets’, ‘sitemap’, ‘optimize_images’, aunque
Ya tenemos los plugins y la configuración, ahora solo tenemos que indicarle a pelican que vuelva a leer el archivo de configuración y listo:
cd C:\Desarrollo\jeslopcru.github.io
pelican -s pelicanconf.py
cd output
python -m SimpleHTTPServer
Ya tenemos pelican inicializado y con todo los plugins corriendo, para ver si está todo correcto, vamos a entrar en http://localhost:8000/sitemap.xml para ver si tenemos el plugin de sitemap funcionando y listo, ahora solo tenemos que llenar de contenido nuestro sitio.
LLenando de contenido nuestro sitio
Ahora viene lo más difícil, llenar de contenido nuestro sitio html estático generado con pelican, para ello podemos utilizar cualquier editor de Markdown, yo por ejemplo utilizo este editor http://pad.haroopress.com/user.html
Lo más importante con sitios estáticos es ser ordenados y tener una estructura clara de directorios. Nosotros optamos por esta estructura:
posts/{año}/{mes}/
Ahora tenemos que indicarle a pelican esta estructura, así que en el archivo pelicanconf.py escribimos esto:
# Formatting for urls
ARTICLE_URL = "posts/{date:%Y}/{date:%m}/{slug}/"
ARTICLE_SAVE_AS = "posts/{date:%Y}/{date:%m}/{slug}/index.html"
CATEGORY_URL = "category/{slug}"
CATEGORY_SAVE_AS = "category/{slug}/index.html"
TAG_URL = "tag/{slug}/"
TAG_SAVE_AS = "tag/{slug}/index.html"
Generamos de nuevo el con:
cd C:\Desarrollo\jeslopcru.github.io
pelican -s pelicanconf.py
cd output
python -m SimpleHTTPServer
Y ahora a crear contenido, tenemos que crear una carpeta para el año y otro para el mes. Las generamos dentro de la carpeta content (creamos una carpeta 2014 y dentro de 2014 una carpeta 02) y hay creamos nuestro primer post.
Para el primer pos abrimos el editor de Markdown y escribimos algo así:
Title: Hello Word title
Date: 2014-02-22 20:30
Category: Hello
Tags: pelican, publishing
Slug: Hello-Word-title
Author: Jesús LC
Summary: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla rutrum ornare erat non tincidunt. Pellentesque tincidunt quis dui dictum mollis.
This is the content of my super blog post.
Hello world!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla rutrum ornare erat non tincidunt.
Creo que es evidente el uso de tag y categorías, por ello no voy a entrar en detalle.
Así que vamos allá, volvemos a generar nuestro blog y este será el resultado:
Conclusiones
Utilizar generadores de sitios estáticos par tener un blog es una alternativa interesante a WordPress, bloggler o similar ya que son muy rápidos de montar e instalar, también hay que tener en cuenta que para sacarle partido es necesario un poco más de «cariño». Hay que buscar themes, plugins o incluso programarlos y una vez que está todo acostumbrarnos a escribir en Markdown.
Así que de momento mientras que voy dándole cariño a mi sitio web estático, seguiré utilizando WordPress
¿Y tú que utilizas para postear? ¿Te ves con ganas de cambiar a un blog estático?