<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://www.fladi.at/</id>
  <title>Fladi.at Blog - Posts tagged News</title>
  <updated>2026-03-16T19:19:33.021584+00:00</updated>
  <link href="https://www.fladi.at/"/>
  <link href="https://www.fladi.at/blog/tag/news/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.0.0">ABlog</generator>
  <entry>
    <id>https://www.fladi.at/posts/a-new-blogging-engine.html</id>
    <title>A new blogging engine</title>
    <updated>2026-01-05T00:00:00+01:00</updated>
    <author>
      <name>Michael Fladischer</name>
    </author>
    <content type="html">&lt;section id="a-new-blogging-engine"&gt;

&lt;p&gt;For quite a while (especially since I became a dad) my blog was inactive. The old one was based on &lt;a class="reference external" href="https://ikiwiki.info/"&gt;ikiwiki&lt;/a&gt; and it lacked a clean
deployment workflow.&lt;/p&gt;
&lt;p&gt;For several months I was looking for a suitable replacement which would satisfy my requirements:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Compiles Markdown or ReStructuredText to static HTML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The whole source-code of the site can be stored in git, no database required&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports a simple build, preferably a single CLI command to build the whole site&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extendable with plugins (if built-in features are lacking things like a gallery)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Written in Python because most of my work (payed and unpaid) is done in this language&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Packages for Debian so I can easily deploy it on my infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Several candidates would fit those requirements:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://www.mkdocs.org/"&gt;MkDocs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://getnikola.com/"&gt;Nikola&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://www.getlektor.com/"&gt;Lektor&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://www.sphinx-doc.org/"&gt;Sphinx&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;In the end I decided to opt for &lt;a class="reference external" href="https://www.sphinx-doc.org/"&gt;Sphinx&lt;/a&gt; as it provided a good blogging solution in the form of &lt;a class="reference external" href="https://ablog.readthedocs.io/"&gt;ABlog&lt;/a&gt;.
Getting started on Debian is as easy as installing it:&lt;/p&gt;
&lt;div class="highlight-zsh notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;python3-sphinx-ablog
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Afterwards start a new project, creating a basic Sphinx structure:&lt;/p&gt;
&lt;div class="highlight-zsh notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;ablog&lt;span class="w"&gt; &lt;/span&gt;start
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The deployment is done by pushing to a Git repository with a custom post-update hook which builds the whole project using sphinx. It then places the files in
the webserver document root directory. I will describe this hook script here in a future post.&lt;/p&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/tmp/tmp.H4XEREdt7Q/posts/a-new-blogging-engine.rst&lt;/span&gt;, line 50)&lt;/p&gt;
&lt;p&gt;Duplicate name “pelican” for external target “https://getpelican.com/”.&lt;/p&gt;
&lt;/aside&gt;
&lt;/section&gt;
</content>
    <link href="https://www.fladi.at/posts/a-new-blogging-engine.html" rel="alternate"/>
    <summary>For quite a while (especially since I became a dad) my blog was inactive. The old one was based on ikiwiki and it lacked a clean
deployment workflow.</summary>
    <category term="News" label="News"/>
    <category term="Python" label="Python"/>
    <published>2026-01-05T00:00:00+01:00</published>
  </entry>
</feed>
