<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Wombelix Post - Pelican</title><link href="https://dominik.wombacher.cc/" rel="alternate"/><link href="/feeds/tag_pelican.atom.xml" rel="self"/><id>https://dominik.wombacher.cc/</id><updated>2025-08-01T00:00:00+02:00</updated><entry><title>Open Graph Support in my Pelican Theme</title><link href="https://dominik.wombacher.cc/posts/open-graph-support-in-my-pelican-theme.html" rel="alternate"/><published>2025-08-01T00:00:00+02:00</published><updated>2025-08-01T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2025-08-01:/posts/open-graph-support-in-my-pelican-theme.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2025 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;When sharing blog articles on LinkedIn, I noticed they showed
&lt;code&gt;The Wombelix Post&lt;/code&gt; instead of the actual article titles.
After taking a closer look, it seems like social media platforms  ... &lt;a class="read-more" href="/posts/open-graph-support-in-my-pelican-theme.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2025 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;When sharing blog articles on LinkedIn, I noticed they showed
&lt;code&gt;The Wombelix Post&lt;/code&gt; instead of the actual article titles.
After taking a closer look, it seems like social media platforms
prefer &lt;a class="reference external" href="https://ogp.me/"&gt;Open Graph&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20250727115258/https://ogp.me/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.06.17-152831/https://ogp.me/"&gt;[2]&lt;/a&gt;)
meta tags to generate previews.&lt;/p&gt;
&lt;p&gt;I didn't implement these tags when I created my
&lt;a class="reference external" href="https://git.sr.ht/~wombelix/pelican-theme-xlii"&gt;Pelican theme xlii&lt;/a&gt;
almost 5 years ago. Even though my HTML title contains the individual
page and article title as suffix, some platforms only seem to pick up
the overall page title and ignore them.&lt;/p&gt;
&lt;p&gt;I added Open Graph tags now across all relevant template files using a
Jinja2 block-based pattern. The base template includes the Open Graph
namespace and default tags for the homepage. Article and page
templates override these with content-specific information like
title, URL, description, publication date, category, and author.&lt;/p&gt;
&lt;p&gt;I also added HTML meta tags with author information and keywords
for tag and category pages.&lt;/p&gt;
&lt;p&gt;Testing with
&lt;a class="reference external" href="https://www.linkedin.com/post-inspector/"&gt;LinkedIn's Post Inspector&lt;/a&gt;
confirmed it works. The inspector now shows article titles,
descriptions, publication dates, and author information instead of
generic site data.&lt;/p&gt;
&lt;p&gt;LinkedIn ignores the &lt;code&gt;og:site_name&lt;/code&gt; tag and displays the domain
name instead. This bothers me a bit since I'd prefer to have my site
name included, but I can't change how they interpret the tags. Other
platforms like Facebook and Mastodon should behave as expected when
they follow the Open Graph specification closer.&lt;/p&gt;
</content><category term="Code"/><category term="Pelican"/><category term="OpenGraph"/><category term="Theme"/></entry><entry><title>Now available as Onion Service through the Tor Network</title><link href="https://dominik.wombacher.cc/posts/now_available_as_onion_service_through_the_tor_network.html" rel="alternate"/><published>2022-03-13T00:00:00+01:00</published><updated>2022-03-13T00:00:00+01:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2022-03-13:/posts/now_available_as_onion_service_through_the_tor_network.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I'm happy to announce that this site is also published as Onion Service from now on,
which means a focus on privacy, security, freedom and support for the Tor Project  ... &lt;a class="read-more" href="/posts/now_available_as_onion_service_through_the_tor_network.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I'm happy to announce that this site is also published as Onion Service from now on,
which means a focus on privacy, security, freedom and support for the Tor Project
as well as a statement against censorship.&lt;/p&gt;
&lt;p&gt;The new Tor URL: &lt;a class="reference external" href="http://2xwpdwnzmag3ewobwsdewpor4gmca4d5gltviol3u6upihb6m6m6xaad.onion"&gt;http://2xwpdwnzmag3ewobwsdewpor4gmca4d5gltviol3u6upihb6m6m6xaad.onion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also it was fun to setup ;) To ensure the right URLs are used, I decided to publish two versions,
which was quite a simple task by adjusting a few lines in my &lt;a class="reference external" href="https://getpelican.com"&gt;Pelican&lt;/a&gt; configs.&lt;/p&gt;
&lt;p&gt;The Tor Service is running on the same FreeBSD Jail as my (static) site and nginx, let me share some technical details.&lt;/p&gt;
&lt;p&gt;Installing Tor is straight forward, just run &lt;code&gt;pkg install tor&lt;/code&gt; and &lt;code&gt;sysrc tor_enable=&amp;quot;YES&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Two lines in &lt;code&gt;/usr/local/etc/tor/torrc&lt;/code&gt; are enough to enable a new Onion Hidden Service:&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
HiddenServiceDir /var/db/tor/keys/&amp;lt;website&amp;gt;/
HiddenServicePort 80 unix:/var/run/tor-&amp;lt;website&amp;gt;.sock

&lt;/pre&gt;
&lt;p&gt;For nginx I adjusted the existing https config to publish the
&lt;a class="reference external" href="https://support.torproject.org/onionservices/onion-location/"&gt;Onion-Location&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20220101193148/https://support.torproject.org/onionservices/onion-location"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2022.03.13-233520/https://support.torproject.org/onionservices/onion-location/"&gt;[2]&lt;/a&gt;)
header, which will advertise the &lt;em&gt;.onion&lt;/em&gt; URL of this Site to visitors that are using the Tor Browser.&lt;/p&gt;
&lt;p&gt;The Onion URL can be found in &lt;code&gt;/var/db/tor/keys/&amp;lt;website&amp;gt;/hostname&lt;/code&gt;.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
server {
        listen 443 ssl http2;
        # Tor unrelated config omitted
        add_header Onion-Location http://&amp;lt;onion_url&amp;gt;$request_uri;
}

&lt;/pre&gt;
&lt;p&gt;As recommend in the &lt;a class="reference external" href="https://community.torproject.org/onion-services/setup/"&gt;Tor Setup Guide&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20211108203156/https://community.torproject.org/onion-services/setup"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2021.09.28-062404/https://community.torproject.org/onion-services/setup/"&gt;[2]&lt;/a&gt;)
I added an additional server section and use a unix socket to listen for Tor requests.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
server {
        listen unix:/var/run/&amp;lt;website&amp;gt;.sock;
        # Tor unrelated config omitted
        server_name &amp;lt;onion_url&amp;gt;;
        root &amp;lt;path_to_web_document_root&amp;gt;;
}

&lt;/pre&gt;
&lt;p&gt;From a Pelican perspective, I created a second &lt;code&gt;publishconf&lt;/code&gt; to set the &lt;code&gt;SITEURL&lt;/code&gt;
to my &amp;lt;onion_url&amp;gt; and adjusted the &lt;code&gt;Makefile&lt;/code&gt; a little to upload the &lt;em&gt;regular&lt;/em&gt; and the &lt;em&gt;tor&lt;/em&gt; version at once.&lt;/p&gt;
&lt;p&gt;Following the additions on top of the standard Makefile when installing Pelican.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
PUBLISHCONF_TOR=$(BASEDIR)/publishconf_tor.py
SSH_TARGET_DIR_TOR=&amp;lt;path_to_web_document_root&amp;gt;

# Tor unrelated config omitted

rsync_upload_tor: publish_tor
        rsync -e &amp;quot;ssh -p $(SSH_PORT)&amp;quot; -P -rvzc --include tags --cvs-exclude --delete &amp;quot;$(OUTPUTDIR)&amp;quot;/ &amp;quot;$(SSH_USER)&amp;#64;$(SSH_HOST):$(SSH_TARGET_DIR_TOR)&amp;quot;

rsync_upload_all: rsync_upload rsync_upload_tor

&lt;/pre&gt;
&lt;p&gt;Last step was to start the tor service &lt;code&gt;service tor start&lt;/code&gt;,
apply the new nginx config &lt;code&gt;service nginx reload&lt;/code&gt; and to
publish the site &lt;code&gt;make rsync_upload_all&lt;/code&gt;.&lt;/p&gt;
</content><category term="Misc"/><category term="Tor"/><category term="Onion Service"/><category term="FreeBSD"/><category term="nginx"/><category term="Pelican"/></entry><entry><title>Installing static site generator Pelican inclusive Plugins with pipx</title><link href="https://dominik.wombacher.cc/posts/installing-static-site-generator-pelican-inclusive-plugins-with-pipx.html" rel="alternate"/><published>2021-09-25T00:00:00+02:00</published><updated>2021-09-25T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2021-09-25:/posts/installing-static-site-generator-pelican-inclusive-plugins-with-pipx.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Quick one, after re-installing my Notebook, I had to configure lot of things again and I wasn't happy with my earlier Python venv setup.&lt;/p&gt;
&lt;p&gt;I was taking a deeper look  ... &lt;a class="read-more" href="/posts/installing-static-site-generator-pelican-inclusive-plugins-with-pipx.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Quick one, after re-installing my Notebook, I had to configure lot of things again and I wasn't happy with my earlier Python venv setup.&lt;/p&gt;
&lt;p&gt;I was taking a deeper look into pipx and I think that's way easier to use.
It just take care about a venv per package that I'm going to install, I don't have to take care about anything on my own.&lt;/p&gt;
&lt;p&gt;I tried it and after learning about the &lt;em&gt;inject&lt;/em&gt; feature, mentioned by
&lt;a class="reference external" href="https://github.com/getpelican/pelican/issues/2554#issuecomment-485136726"&gt;cs01 in a GitHub Issue&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20200920144105/https://github.com/getpelican/pelican/issues/2554"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2021.09.28-125020/https://github.com/getpelican/pelican/issues/2554"&gt;[2]&lt;/a&gt;)
it was no problem to install Pelican including some Plugins via pipx:&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
pipx install pelican
pipx inject pelican pelican-pdf
pipx inject pelican markdown
pipx inject pelican pelican-read-more

&lt;/pre&gt;
</content><category term="Misc"/><category term="Pelican"/><category term="Python"/><category term="pipx"/></entry><entry><title>Pelican Plugin: read-more</title><link href="https://dominik.wombacher.cc/posts/pelican-plugin-read-more.html" rel="alternate"/><published>2021-04-05T00:00:00+02:00</published><updated>2021-04-05T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2021-04-05:/posts/pelican-plugin-read-more.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;The read-more Pelican Plugin was the second one I helped to migrate to the &lt;a class="reference external" href="https://github.com/pelican-plugins"&gt;new Structure / GitHub Organization&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After a specified length, it adds a &lt;em&gt;"read more"&lt;/em&gt; link the the  ... &lt;a class="read-more" href="/posts/pelican-plugin-read-more.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;The read-more Pelican Plugin was the second one I helped to migrate to the &lt;a class="reference external" href="https://github.com/pelican-plugins"&gt;new Structure / GitHub Organization&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After a specified length, it adds a &lt;em&gt;&amp;quot;read more&amp;quot;&lt;/em&gt; link the the Posts Overview, you can see it on this Blog in action for example.&lt;/p&gt;
&lt;p&gt;The Configuration is very easy, the Plugin supports a few Parameter for your pelican.conf File.&lt;/p&gt;
&lt;p&gt;It can by installed by running &lt;code&gt;python -m pip install pelican-read-more&lt;/code&gt;, the Source is available on &lt;a class="reference external" href="https://github.com/pelican-plugins/read-more"&gt;https://github.com/pelican-plugins/read-more&lt;/a&gt;&lt;/p&gt;
</content><category term="Code"/><category term="Pelican"/><category term="Plugin"/><category term="Python"/></entry><entry><title>Proudly present: My first accepted Pull Request for Pelican</title><link href="https://dominik.wombacher.cc/posts/proudly-present-my-first-accepted-pull-request-for-pelican.html" rel="alternate"/><published>2021-03-03T00:00:00+01:00</published><updated>2021-03-03T00:00:00+01:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2021-03-03:/posts/proudly-present-my-first-accepted-pull-request-for-pelican.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;As already mentioned in my Post &lt;a class="reference external" href="https://dominik.wombacher.cc/posts/migration-from-wordpress-to-pelican.html"&gt;Migration from Wordpress to Pelican&lt;/a&gt;
the fact that Pelican is written in Python and provide a Plugin system was important for me. So I  ... &lt;a class="read-more" href="/posts/proudly-present-my-first-accepted-pull-request-for-pelican.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;As already mentioned in my Post &lt;a class="reference external" href="https://dominik.wombacher.cc/posts/migration-from-wordpress-to-pelican.html"&gt;Migration from Wordpress to Pelican&lt;/a&gt;
the fact that Pelican is written in Python and provide a Plugin system was important for me. So I can adjust the Code and also give
something back to the &lt;a class="reference external" href="https://www.getpelican.com"&gt;Pelican Community&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Project is moving away from their &lt;a class="reference external" href="https://www.github.com/getpelican/pelican-plugins"&gt;monolithic Plugin Repository&lt;/a&gt; to a
separate &lt;a class="reference external" href="https://www.github.com/pelican-plugins/"&gt;Organization Namespace&lt;/a&gt; were every Plugin has it's own Repository and
get published to &lt;a class="reference external" href="https://www.pypi.org"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Due to the fact that i wanted to use the &lt;a class="reference external" href="https://www.github.com/pelican-plugins/pdf"&gt;PDF Generator&lt;/a&gt; but it wasn't yet migrated,
i decided to &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins/issues/1328"&gt;contribute&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20210303101921/https://github.com/getpelican/pelican-plugins/issues/1328"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2021.03.03-101922/https://github.com/getpelican/pelican-plugins/issues/1328"&gt;[2]&lt;/a&gt;)
and assist with updating and migrating this Plugin.&lt;/p&gt;
&lt;p&gt;Today I proudly present: &lt;a class="reference external" href="https://github.com/pelican-plugins/pdf/pull/1"&gt;My first accepted Pull Request for Pelican (PDF Plugin)&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20210303100907/https://github.com/pelican-plugins/pdf/pull/1"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2021.03.03-100750/https://github.com/pelican-plugins/pdf/pull/1"&gt;[2]&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;There is still room for improvement and i'm working on further fixes and features, but it's a starting Point.&lt;/p&gt;
&lt;p&gt;You find at the bottom of every Article and Page a PDF Download Link, the linked PDF file was generated by the mentioned Plugin.&lt;/p&gt;
</content><category term="Code"/><category term="Pelican"/><category term="Python"/><category term="Contribution"/></entry><entry><title>Migration from Wordpress to Pelican</title><link href="https://dominik.wombacher.cc/posts/migration-from-wordpress-to-pelican.html" rel="alternate"/><published>2021-03-01T00:00:00+01:00</published><updated>2021-03-01T00:00:00+01:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2021-03-01:/posts/migration-from-wordpress-to-pelican.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;A few years ago I setup my personal site based on Wordpress and was quite happy with that.
But after some time I wasn't sure anymore if this is really  ... &lt;a class="read-more" href="/posts/migration-from-wordpress-to-pelican.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2023 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;A few years ago I setup my personal site based on Wordpress and was quite happy with that.
But after some time I wasn't sure anymore if this is really what I want:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;First of all I had to take care about updates every few weeks and had always a bad feeling about potential security issues.&lt;/li&gt;
&lt;li&gt;Also the Content I added couldn't easy be converted in other Formats neither the Source Code shared without Plugins.&lt;/li&gt;
&lt;li&gt;And last but not least, a few Megabyte had to be transfered, multiple Cookies were set and lot of Javascript loaded to read just a short post.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I started looking around and liked the approach to use a static site generator and focus on pure HTML as well CSS.&lt;/p&gt;
&lt;p&gt;After some research and testing i decided to go with &lt;a class="reference external" href="https://www.getpelican.com"&gt;Pelican&lt;/a&gt;, it's Python based and can be
extended by &lt;a class="reference external" href="https://github.com/pelican-plugins/"&gt;Plugins&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So I started to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Creating a own Theme&lt;/li&gt;
&lt;li&gt;Contribute to update and migrate &lt;a class="reference external" href="https://github.com/getpelican/pelican-themes"&gt;old Plugins&lt;/a&gt; I like to use&lt;/li&gt;
&lt;li&gt;Migrate content, split across various locations, to reStructuredText&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not finished yet, but as you can see, there were already some progress :)&lt;/p&gt;
&lt;p&gt;I plan to publish my Theme shortly as well invest more time in Contributing to the Pelican Project.&lt;/p&gt;
</content><category term="Misc"/><category term="Wordpress"/><category term="Pelican"/><category term="Migration"/></entry></feed>