Ein paar Plugins für Pelican

source: https://www.reddit.com/r/tvgifs/comments/13uw0l/hey_dad_think_fast_modern_family/

Ich bin eigentlich ziemlich glücklich mit meinem Umstieg von Wordpress auf Pelican. Dieses Static-Site-Ding macht in meinen Augen wirklich Sinn. Vor allem passt es sich gut in diesen GIT-Workflow ein. Alles in Markdown und keine DB im Nacken plus Backups die durch GIT ganz wunderbar sind. Meine Entscheidung für Pelican fiel durch die Programmiersprache Python. Ich dachte es ist schön wenn man fähig ist ein wenig zu verstehen was dort passiert und es eventuell die Möglichkeit gibt auch etwas dem Projekt zurück zu geben. Dies habe ich nun mit ein paar Erweiterungen für das liquid_tags Plugin getan. Ich habe gemerkt das ich oft viele Sachen einbinde und dies frisst Zeit sich erstmal die Embeded-Codes rauszusuchen oder selber zu basteln. Dies soll für einige Dienste nun durch diese Erweiterungen verbessert werden.

flickr

Hier war das Problem anhand der ID an alle Informationen zu kommen um das HTML-Tag zu bauen. Ich habe mich dazu Entschieden einfach die Flickr-API zu nutzen. Dies ist natürlich nicht der optimalste Weg, es funktioniert aber. Um die API zu nutzen braucht man erstmal einen Key von Flickr. Den packt man in die Pelican-Config unter der Variable FLICKR_API_KEY und schon kann man aus

\{\% flickr 18841046161 large 'Ich denke an einen Wald' \%\}

folgendes basteln:

Ich denke an einen Wald

Für alle Optionen schaut man hier vorbei.

soundcloud

Was ich auch gerne tue, ist Soundcloud Widgets einbinden. Und hier mein großer Respekt an die API. Es gibt einen Endpoint der einem gleich den Embeded-Code liefert. Alles was man tun muss ist die Track-Url mitgeben. So wird aus

\{\% soundcloud https://soundcloud.com/luftmentsh/hakotel \%\}

dies hier:

Den Code gibt es hier.

giphy

Manche Sachen sagt man besser mit einem GIF. Ja, es macht jedes zweite Blog. Egal... es ist wunderbar. Noch einfacher wenn man mit einem einfachen Tag Giphy-Animationen einbinden kann. Dank der API (wiederum braucht man einen Key) ging das auch ziemlich einfach. Key in die Config (GIPHY_API_KEY) und es kann los gehen.

\{\% giphy y6Nhc2E1ch2ww \%\}

source: https://rhiannonyork.tumblr.com/post/44551538237/when-i-prove-a-vendor-wrong-on-a-conference-call

Den Code gibt es hier.

html5 audio

Manchmal wollte ich Audio-Beiträge vom Deutschlandfunk verlinken. Diese bieten kein Widget zum einbinden. Man bekommt nur die reinen MP3-Files. Das schönste ist natürlich wenn man das Audio-Tag benutzt welches es seit HTML5 gibt. Also kein komischer Flash-Player. Natürlich gibt es immer noch riesen Probleme zwischen Audioformat und Browser und Betriebssystem. Deswegen kann man mehrere Sources pro Player einbinden. Dies geht auch mit diesem Plugin.

\{\% audio http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.mp4 http://media.w3.org/2010/07/bunny/04-Death_Becomes_Fur.oga \%\}

Den Code gibt es hier.

Blog Merge

Es wurde verbracht. Ich habe meine beiden Blogs "gemerged". Mein kleines Tech-Blog und mein Main-Blog mit den ganzen Fotos, Popkram, usw. Ich habe mir viele Gedanken darum gemacht ob es überhaupt Sinn macht. Ich kamm zu folgenden Punkten: Ich habe eh nicht viele Leser und der viel wichtigere Punkt ist, dass dieses Blog nun wirklich mich und meinte Interessen wiederspiegelt. Nicht mehr und nicht weniger. Ich will mir keine Gedanken darum machen in welches Blog meine Gedanken passen oder auch nicht. Dies ist nun mein zentrales Gedanken-Repository. Und es soll sich auch vermischen. Darum geht es hierbei.

Diese Chance habe ich gleich genutzt um mein Wordpress wegzuschmeißen um auf einen Static-Sitegenerator umzusteigen. In diesem Fall pelican. Ein paar Bugs gibt es noch und an denen bin ich dran. Ein Vorteil ist jetzt schon die Datenbanklosigkeit. Einfach Markdown-Files und sed... aber das ist eine Blogpost für sich...

Das Blog bei GitHub hosten

Ich musste mich irgendwann entscheiden. Seit Jahren habe ich kaum praktischen IT-Kram gebloggt. Irgendwie hat es sich so ergeben, dass ich dies nicht in mein normales Blog schreiben wollte. Und immer wieder kam es vor das ich mir kniffe ergoogelt oder erfragt habe und die in irgendeiner Weise teilen wollte. Ich bin doch bestimmt nicht der erste der wissen will wie man OpenVPN unter Windows als Dienst laufen lassen kann. Dazu kam natürlich der Wunsch meine Programmier-Experimente zu dokumentieren und Erfahrungen aufzuschreiben. Das ganze sollte simpel gehalten werden. Keine Datenbank und am besten mit Markdown-Support. Es wurde Pelican. Ein Python-Generator der aus Markdown statische Seiten knuppert. Python... passt! Dann hatte ich mal gelesen, dass man auf GitHub auch Seiten hosten kann. Und zwar statische Seiten. Perfekt. Ich wollte das Blog eh in einem GIT-Repository verwalten. Wer hätte gedacht das ich mir wirklich ein paar Stunden die Zähne ausbeißen würde um zu verstehen wie GitHub das nun macht. Man muss die HTML-Files in einem Branch mit dem Namen "gh-pages" ablegen. Dann gibt es wohl einen Unterschied zwischen User-Site und Project-Site. Die User-Site ist unter "username.github.io" erreichbar. Eine Project-Site unter "username.github.io/project". In die Falle in die ich getappert bin war: Bei der User-Site müssen die HTML-Files direkt im master-branch liegen und nicht unter "gh-pages". Dies gilt nur für die Project-Sites. Also erstmal ein Repo mit dem Namen "blog" angelegt und geklont. Darin kommen dann die Markdown-Files und der ganze Pelican-Config-Kram und das Theme. Die ".gitignore" habe ich um "output" erweitert. So pushe ich nur die Files die ich zur Blog-Erstellung brauche in den master, aber nicht die HTML-Files selber. Es gibt ein nettes Python-Script mit dem Namen "ghp-import".

ghp-import output

Damit lädt er den Inhalt des Output-Folders in den "gh-pages"-Branch. Pusht man den nun auf GitHub, läuft alles und ist unter "http://username.github.io/blog" erreichbar.