le blog d'albâtre Blog d'Albâtre

Pelican-similar-posts - Plugin Pelican pour lier les articles

Publié le dimanche 10 août 2025
Par Jean-charles hoarau

Dans Services

Etiquettes: Service blog ssg pelican plugin

Pelican-similar-posts Ajoute la variable similar_posts au contexte de chaque article publié.

Les données d'entrée de l'algorithme de mesure de similarité sont les balises d'article. Ainsi, pour que ce plugin soit utile, au moins certains de vos articles doivent comporter un élément tags dans leurs métadonnées.

Installation

Comme pour le plugin touch, j'ai ajouté le plugin dans le fichier requirements.txt et j'ai relancé la construction du docker Pelican.

Paramétrage

Je dois modifier le fichier de configuration de Pelican et y ajouter deux lignes

SIMILAR_POSTS_MAX_COUNT = 7
SIMILAR_POSTS_MIN_SCORE = 0.07

Le premier paramètre donne le nombre d'articles similaire à afficher et le second un coefficient de similarité.

J'ai dû tâtonner pour avoir une valeur pour le second paramètre qui me donne un résultat satisfaisant.

Intégration

Le plugin met à disposition une nouvelle variable pour le thème similar_posts qui donne une liste d'articles similaires à l'article actuel.

Pour l'intégrer sur le site, j'ai dû modifier le template article et ajouter

      <div class="entry-content">
        {% include 'article_infos.html' %}
        {{ article.content }}
      </div><!-- /.entry-content -->
      {% if article.similar_posts %} <!-- ajout pour le plugin similar_posts -->
        <h1>Articles similaires</h1>
            <ul>
                {% for similar in article.similar_posts %}
                    <li><a href="{{ SITEURL }}/{{ similar.url }}">{{ similar.title }} ({{similar.locale_date}})</a></li>
                {% endfor %}
            </ul>
      {% endif %}

Résultat

Le résultat se voit sur chaque page d'article. Si des articles ont des tags similaires à l'article, ils apparaitront dans la liste des articles similaires, classés par taux de similarité et ensuite par date.

À bientôt

Articles similaires