Webseite als Jekyll-Projekt https://software-berater.net/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.4 KiB

layout title date category references
post Related Posts für Jekyll 2021-11-01 13:24 +0100 Hardware und Software [_posts/2019-09-01-vorteil-statischer-cms.md]

Wenn ich über ein Thema schreibe und zum gleichen Thema auch andere Texte geschrieben habe, macht es doch Sinn, meine Leser darauf hinzuweisen. Bei Jekyll nennt sich das "verwandte Artikel" (related posts), und es ist immer ein wenig unhandlich. Ich hab mir deshalb dazu was eigenes geschrieben.

  • Der originale Jekyll Mechanismus der site.related_posts (Dokumentation) bietet in der Grundform nur 10 aktuellste Posts an. Diese müssen mit der aktuellen Seite thematisch überhaupt nichts zu tun haben.
  • Es gibt eine Option zum Verarbeiten von LSI (Latent Semantic Indexing) die aber je nach Sprache der Texte unterschiedliche Qualität liefert und die Laufzeit erheblich verlängert.
  • Plugins wie toshimaru/jekyll-tagging-related_posts erfordern Tags, die man konsistent setzen muss.
  • Reine Liquid-Lösungen wie diese hier gefallen mir nicht, weil zuviel Code im Template liegt - und Liquid im Vergleich zu Ruby eine weniger leistungsfähige Sprache ist.

Mein Mechanismus folgt einer wesentlich einfacheren Idee: Ich möchte die Verweise selbst angeben.

---
layout: post
title: A post title
references:
  - _posts/2021-01-17-another-post.md
  - _posts/2021-01-18-third-post.md

In der Eigenschaft references kann ich eine Reihe von Posts notieren, die als "related" in der Seite bereitstehen sollen. Im Layout passiert dann etwa sowas:

{% raw %}

{% if page.related.size >= 1 %}
<aside class="related">
  <ul>
    {% for post in page.related %}
      <li>
        <a href="{{ post.url }}">{{ post.title }}</a>
      </li>
    {% endfor %}
  </ul>
</aside>
{% endif %}

{% endraw %}

Das Jekyll-Plugin erzeugt dann Verweise in der angegebenen Richtung, also hier von "A post title" nach "Another Post" und "Third post", aber auch rückwärts von den beiden letztgenannten zur ersten Seite.

Das dafür notwendige Jekyll Plugin findest du im Quelltext dieser Website.