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