<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elegant on Jean-Christophe Gay</title><link>https://jeanchristophegay.com/en/tags/elegant/</link><description>Recent content in Elegant on Jean-Christophe Gay</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>© 2026 Jean-Christophe Gay</copyright><lastBuildDate>Tue, 18 Aug 2026 23:08:47 +0200</lastBuildDate><atom:link href="https://jeanchristophegay.com/en/tags/elegant/index.xml" rel="self" type="application/rss+xml"/><item><title>Migration from WordPress to Pelican</title><link>https://jeanchristophegay.com/en/posts/migration-wordpress-pelican/</link><pubDate>Mon, 17 Mar 2014 20:31:00 +0200</pubDate><guid>https://jeanchristophegay.com/en/posts/migration-wordpress-pelican/</guid><description>&lt;p&gt;Migration feedback of a &lt;a href="https://wordpress.org/" target="_blank" rel="noreferrer"&gt;WordPress&lt;/a&gt; blog to a static site built with &lt;a href="http://getpelican.com/" target="_blank" rel="noreferrer"&gt;Pelican&lt;/a&gt;.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Why ?
 &lt;div id="why-" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;I just want a lightweight site. I tried to keep my WordPress instance clean but it has so much features I didn&amp;rsquo;t use that the tool was not meeting my needs. My shared hosting was not helping either and I was not satisfied by the average page loading time.&lt;/p&gt;
&lt;p&gt;As I was already writing all my content with &lt;a href="http://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noreferrer"&gt;Markdown&lt;/a&gt; outside the Wordpress editor, I decided to go for a static site generator.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Pelican
 &lt;div id="pelican" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pelican" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Pelican is a static site generator written in Python. It supports &lt;a href="http://en.wikipedia.org/wiki/Markdown" target="_blank" rel="noreferrer"&gt;Markdown&lt;/a&gt;, &lt;a href="http://www.methods.co.nz/asciidoc/" target="_blank" rel="noreferrer"&gt;AsciiDoc&lt;/a&gt; and &lt;a href="http://docutils.sourceforge.net/rst.html" target="_blank" rel="noreferrer"&gt;reStructuredText&lt;/a&gt;.&lt;br&gt;
There is a lot of similar &lt;a href="http://staticsitegenerators.net/" target="_blank" rel="noreferrer"&gt;tools&lt;/a&gt;, and you certainly knows &lt;a href="http://jekyllrb.com/" target="_blank" rel="noreferrer"&gt;Jekyll&lt;/a&gt; or &lt;a href="http://octopress.org/" target="_blank" rel="noreferrer"&gt;Octopress&lt;/a&gt;.&lt;br&gt;
I choose Pelican because it has &lt;a href="http://docs.getpelican.com/en/3.3.0/getting_started.html#translations" target="_blank" rel="noreferrer"&gt;translation&lt;/a&gt; available out of the box. You can get it with others but not natively.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Install
 &lt;div id="install" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#install" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;For OS X:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install python
pip install virtualenv

## Install Pelican
mkdir -p ~/virtualenvs/pelican
virtualenv ~/virtualenvs/pelican
cd ~/virtualenvs/pelican
. bin/activate
pip install pelican
pip install Markdown
pip install beautifulsoup4
pip install typogrify
pip install webassets
pip install cssmin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For others OS installation details are &lt;a href="http://docs.getpelican.com/en/3.3.0/getting_started.html#installing-pelican" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Activate Pelican environment
 &lt;div id="activate-pelican-environment" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#activate-pelican-environment" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;. ~/virtualenvs/pelican/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;Quit Pelican environment
 &lt;div id="quit-pelican-environment" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quit-pelican-environment" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;deactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 class="relative group"&gt;Create a site
 &lt;div id="create-a-site" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#create-a-site" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Launch &lt;code&gt;pelican-quickstart&lt;/code&gt; and follow instructions.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Welcome to pelican-quickstart v3.3.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.


&amp;gt; Where do you want to create your new web site? [.] blog
&amp;gt; What will be the title of this web site? Jean-Christophe Gay
&amp;gt; Who will be the author of this web site? Jean-Christophe Gay
&amp;gt; What will be the default language of this web site? [en] fr
&amp;gt; Do you want to specify a URL prefix? e.g., http://example.com (Y/n) Y
&amp;gt; What is your URL prefix? (see above example; no trailing slash) http://jeanchristophegay.com
&amp;gt; Do you want to enable article pagination? (Y/n) Y
&amp;gt; How many articles per page do you want? [10]
&amp;gt; Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n) Y
&amp;gt; Do you want an auto-reload &amp;amp; simpleHTTP script to assist with theme and site development? (Y/n) Y
&amp;gt; Do you want to upload your website using FTP? (y/N) N
&amp;gt; Do you want to upload your website using SSH? (y/N) N
&amp;gt; Do you want to upload your website using Dropbox? (y/N) N
&amp;gt; Do you want to upload your website using S3? (y/N) N
&amp;gt; Do you want to upload your website using Rackspace Cloud Files? (y/N) N
Done. Your new project is available at /Users/jcgay/blog
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Generated sources:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;blog
├── Makefile
├── content
│   ├── (pages)
├── develop_server.sh
├── fabfile.py
├── output
├── pelicanconf.py
└── publishconf.py

2 directories, 5 files
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 class="relative group"&gt;Add content
 &lt;div id="add-content" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#add-content" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Articles must be saved in &lt;code&gt;content&lt;/code&gt; folder.&lt;br&gt;
You can extract your WordPress articles using Pelican importer: &lt;a href="http://docs.getpelican.com/en/3.3.0/importer.html#import" target="_blank" rel="noreferrer"&gt;http://docs.getpelican.com/en/3.3.0/importer.html#import&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have not tried it, I already had Markdown version of my content. It was just a matter of adding necessary metatada in each of my &lt;code&gt;.md&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;To have an article recognized by Pelican, add metadata:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Title: git-p4 au secours de Perforce
Date: 2012-03-18 18:10
Category: Scm
Tags: git, git-p4, perforce, p4
Slug: git-p4-au-secours-de-perforce
Author: Jean-Christophe Gay
lang: fr
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;slug&lt;/code&gt; property allow to customize URL generated by Pelican. This way you will be able to keep your WordPress URL.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Choose a theme
 &lt;div id="choose-a-theme" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#choose-a-theme" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Themes are available in the repository &lt;a href="https://github.com/getpelican/pelican-themes" target="_blank" rel="noreferrer"&gt;https://github.com/getpelican/pelican-themes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For now I use &lt;a href="https://github.com/talha131/pelican-elegant" target="_blank" rel="noreferrer"&gt;elegant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Clone the repository to have it accessible by Pelican configuration.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Plugins
 &lt;div id="plugins" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#plugins" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Pelican is extendable by picking plugins. They are listed in the repository &lt;a href="https://github.com/getpelican/pelican-plugins" target="_blank" rel="noreferrer"&gt;https://github.com/getpelican/pelican-plugins&lt;/a&gt;.
Clone it.&lt;/p&gt;
&lt;p&gt;Here are the active plugins on my installation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/sitemap" target="_blank" rel="noreferrer"&gt;sitemap&lt;/a&gt;: generate &lt;code&gt;sitemap.xml&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/tipue_search" target="_blank" rel="noreferrer"&gt;tipue_search&lt;/a&gt;: search engine for your content without using a third party service.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/extract_toc" target="_blank" rel="noreferrer"&gt;extract_toc&lt;/a&gt;: extract a table of contents.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/optimize_images" target="_blank" rel="noreferrer"&gt;optimize_images&lt;/a&gt;: compress &lt;code&gt;jpeg&lt;/code&gt; and &lt;code&gt;png&lt;/code&gt; images.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/related_posts" target="_blank" rel="noreferrer"&gt;related_posts&lt;/a&gt;: display other articles in relation with the current one.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/summary" target="_blank" rel="noreferrer"&gt;summary&lt;/a&gt;: set a summary limit using &lt;code&gt;&amp;lt;!-- PELICAN_END_SUMMARY --&amp;gt;&lt;/code&gt; directly in article.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/assets" target="_blank" rel="noreferrer"&gt;assets&lt;/a&gt;: compile/minify static resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;Configuration
 &lt;div id="configuration" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#configuration" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Configuration is split in two files: &lt;code&gt;pelicanconf.py&lt;/code&gt; et &lt;code&gt;publishconf.py&lt;/code&gt;. The last one override former configuration with the production settings.&lt;/p&gt;
&lt;p&gt;Parameters are described &lt;a href="http://docs.getpelican.com/en/3.3.0/settings.html" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have not met any difficulties, two tips anyway.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Generate clean URLs:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; ARTICLE_URL = '{slug}'
 ARTICLE_SAVE_AS = '{slug}/index.html'
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A folder &lt;code&gt;slug&lt;/code&gt; is created for each article containing a single &lt;code&gt;index.html&lt;/code&gt; file.&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;Copy files using metadata &lt;code&gt;EXTRA_PATH_METADATA&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; EXTRA_PATH_METADATA = {
 'extra/humans.txt': {'path': 'humans.txt'},
 'extra/robots.txt': {'path': 'robots.txt'},
 'extra/.htaccess': {'path': '.htaccess'},
 }
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;Comments
 &lt;div id="comments" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#comments" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;If you were using WordPress comments, you must move them to a third party service like &lt;a href="http://disqus.com/" target="_blank" rel="noreferrer"&gt;Disqus&lt;/a&gt;.&lt;br&gt;
I was already using it, if you&amp;rsquo;re not, install this &lt;a href="http://wordpress.org/plugins/disqus-comment-system/" target="_blank" rel="noreferrer"&gt;plugin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In each article, add expected discussion feed identifier:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;disqus_identifier: 7 http://jeanchristophegay.com/?p=7
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is read by &lt;code&gt;elegant&lt;/code&gt; theme.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Redirect rules
 &lt;div id="redirect-rules" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#redirect-rules" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Rewrite URLs which will disappear.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-apacheconf" data-lang="apacheconf"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;IfModule&lt;/span&gt; &lt;span class="s"&gt;mod_rewrite.c&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteEngine&lt;/span&gt; &lt;span class="k"&gt;On&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteBase&lt;/span&gt; /
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; feed/?$ feeds/rss.xml [R=301,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; wp-content/uploads/2013/03/Capture-d’écran-2013-03-09-à-11.24.20-300x182.png images/p4merge-mini.png [R=301,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; wp-content/uploads/2013/03/Capture-d’écran-2013-03-09-à-11.24.20.png images/p4merge.png [R=301,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Redirect wp-content/uploads/2012/03/git-p4.png to images/git-p4.png&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; wp-content/uploads/[0-2][0-9][0-9][0-9]/[0-1][0-9]/([^/]+) images/$1 [R=301,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Redirect 2012/04 to archives.html#2012&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; ([0-2][0-9][0-9][0-9])/[0-1][0-9]/? archives.html#$1 [R=301,NE,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Redirect category/slug/ to categories.html#slug-ref&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; category/([^/]+)/? categories.html#$1-ref [R=301,NE,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Redirect tag/slug/ to tags.html#slug-ref&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; tag/([^/]+)/? tags.html#$1-ref [R=301,NE,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Redirect author/jcgay/ to /&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;RewriteRule&lt;/span&gt; author/jcgay/? / [R=301,L]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 class="relative group"&gt;Test/Publish site
 &lt;div id="testpublish-site" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#testpublish-site" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;To generate site, launch &lt;code&gt;make html &amp;amp;&amp;amp; make serve&lt;/code&gt;.&lt;br&gt;
Content is generated into &lt;code&gt;output&lt;/code&gt; folder and publish at &lt;code&gt;http://localhost:8000&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Production site should be generated using &lt;code&gt;make publish&lt;/code&gt;. Upload the whole thing.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Conclusion
 &lt;div id="conclusion" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conclusion" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;I like the final result, my blog is now generated from a simple git repository, content is versionned and the whole process is less cumbersome that what I was used to. Mission accomplished !&lt;/p&gt;</description></item></channel></rss>