Primers pasos amb Pelican

Posted on mié 11 agosto 2021 in Python

Introducció

Feia dies que tenia ganes de tornar a tenir un lloc on ordenar notes tècniques, xuletes, etc. Al final tinc totes les meves coses desordenades per tot arreu i quan busques com vaig fer això o allò et quedes una bona estona buscant.

Volia que complís les següents condicions:

. Que no estigués allotjat en un host de tercers. Sinó en un host propi.

. Que fos un lloc web estàtic. No haver d'estar pendent d'actualitzacions de CMS ni de plugins ni etc.

. Que estigués fet en Python. A tots ens agradaria programar en Rust, Julia, etc. Però jo per les coses que faig, i que necessito, ja em conformaria amb saber prou Python per fer-les i no tinc ganes d'estar tocant i potinejant altres llenguatges.

. Que permetés escriure el contingut amb Markdown

. Que tingués àmplia varietat de temes i de plugins per les coses que pugui necessitar.

. Amb àmplia documentació pel que pugui necessitar.

. Que exporti el contingut en Atom/RSS feeds. Que jo crec que hauria de ser l'estàndard de compartició d'informació a Internet.

. Que sigui àmpliament configurable.

L'elecció era òbvia doncs: Pelican. O això crec de moment :-)

Algunes notes sobre aquest lloc web. No pretenc estar a la última (no ho estic). No pretenc pontificar sobre bondats i maldats de software o sistemes (no en tinc ganes, no sóc ningú per fer-ho i tampoc serviria). És simplement un lloc per arreplegar i ordenar les meves quatre notes tècniques, forçosament incompletes i probablement amb errors i etc.

Instal·lació

La instal·lació no és gens complicada, la faig via un virtualenv:

$ python3 -m venv pelican

Un cop fet això, activo el virtualenv:

$ source pelican/bin/activate
(pelican) xavi@acheron:~/git/blog$

Dintre del virtualenv ja puc instal·lar al virtualenv les llibreries Pelican (instal·lo també Markdown):

(pelican) xavi@acheron:~/git/blog$ pip install pelican
(pelican) xavi@acheron:~/git/blog$ pip install markdown

Creo un directori blog, que és on instal·laré el pelican (quedarà lleig, però jo ja m'aclaro):

(pelican) xavi@acheron:~/git/blog$ mkdir blog
(pelican) xavi@acheron:~/git/blog$ cd blog
(pelican) xavi@acheron:~/git/blog/blog$ 

Ara sí, instal·lo finalment Pelican amb la comanda pelican-quickstart:

(Ens anirà demanant una sèrie de preguntes (títol, autor, etc) que vaig responent al meu gust i manera)

(pelican) xavi@acheron:~/git/blog/blog$ pelican-quickstart
Welcome to pelican-quickstart v4.6.0.

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? Notes tècniques
> Who will be the author of this web site? xavi
> What will be the default language of this web site? [ca] 
> Do you want to specify a URL prefix? e.g., https://example.com   (Y/n) n
> Do you want to enable article pagination? (Y/n) 
> How many articles per page do you want? [10] 
> What is your time zone? [Europe/Paris] 
> Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n) 
> Do you want to upload your website using FTP? (y/N) 
> Do you want to upload your website using SSH? (y/N) 
> Do you want to upload your website using Dropbox? (y/N) 
> Do you want to upload your website using S3? (y/N) 
> Do you want to upload your website using Rackspace Cloud Files? (y/N) 
> Do you want to upload your website using GitHub Pages? (y/N) 
Done. Your new project is available at /home/xavi/git/blog/blog

Un cop fet això, voilà, ja el tenim fet. Vale, amb un tema horrible (o que al menys a mi no m'agrada gaire). Però tot això, a l'igual que els enllaços i etc és configurable (i ja l'aniré configurant i explicant en properes entrades).

Però el cas és que ja és operatiu :)

Ara vaig a crear la meva primera entrada. La creo dintre de la carpeta content, i en format markdown (i amb extensió md).

La creo amb aquest format:

Title: Primers pasos amb Pelican
Date: 2021-08-11 11:25
Modified: 2021-08-11 12:39
Category: Python
Tags: pelican, blog
Slug: primers-pasos-amb-pelican
Authors: xavi
Summary: Explicació de com crear un blog amb Pelican

## Primers pasos amb Pelican

### Introducció

(...)

Un cop la tenim completada, ja puc generar l'html:

(pelican) xavi@acheron:~/git/blog/blog$ make html
"pelican" "/home/xavi/git/blog/blog/content" -o "/home/xavi/git/blog/blog/output" -s "/home/xavi/git/blog/blog/pelicanconf.py" 
WARNING: Watched path does not exist: /home/xavi/git/blog/blog/content/images
Done: Processed 1 article, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.67 seconds.

I fins i tot puc veure com quedarà al navegador fent make devserver:

(pelican) xavi@acheron:~/git/blog/blog$ make devserver
"pelican" -lr "/home/xavi/git/blog/blog/content" -o "/home/xavi/git/blog/blog/output" -s "/home/xavi/git/blog/blog/pelicanconf.py" 
  --- AutoReload Mode: Monitoring `content`, `theme` and `settings` for changes. ---

Serving site at: http://127.0.0.1:8000 - Tap CTRL-C to stop
WARNING: Watched path does not exist: /home/xavi/git/blog/blog/content/images

-> Modified: settings, content, theme. re-generating...
Done: Processed 1 article, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.70 seconds.
127.0.0.1 - - [11/Aug/2021 12:52:35] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [11/Aug/2021 12:52:35] "GET /theme/css/main.css HTTP/1.1" 200 -
127.0.0.1 - - [11/Aug/2021 12:52:36] "GET /theme/css/reset.css HTTP/1.1" 200 -
127.0.0.1 - - [11/Aug/2021 12:52:36] "GET /theme/css/pygment.css HTTP/1.1" 200 -
127.0.0.1 - - [11/Aug/2021 12:52:36] "GET /theme/css/typogrify.css HTTP/1.1" 200 -
127.0.0.1 - - [11/Aug/2021 12:52:36] "GET /theme/css/fonts.css HTTP/1.1" 200 -
WARNING: Unable to find `/favicon.ico` or variations:
  | /favicon.ico.html
  | /favicon.ico/index.html
  | /favicon.ico/
  | /favicon.ico
127.0.0.1 - - [11/Aug/2021 12:52:36] "GET /theme/fonts/Yanone_Kaffeesatz_400.woff HTTP/1.1" 200 -

...i llavors anant amb el navegador localhost:8000, podem comprovar com queda. Uf! queden moltes coses per arreglar i/o modificar! Però és una instal·lació molt més neta i ràpida que un wordpress o un drupal, i per lo que vull i necessito, de sobres.

Ens veiem a la propera entrada!

ciao ciao