在每个 Post 的底部添加我博客上其他 Post 的链接和摘录

Add Links and Excerpts to other Posts on my Blog in the Bottom of each Post

我想在我的 post 底部添加几个 (2-4) 到其他 post 的链接。起初我认为它们应该是相关的,但我想随机的也可以。

我正在使用 Jekyll 并正在寻找一个插件或一种简单的方法来仅引用我在博客底部以更自动化的方式编写的其他(相关)内容。这个想法是用 2-4 divs 与其他博客 posts 的标题和摘录。简单的看标签就可以得出相关性,一开始随机的也可以。

我不知道如何直接在 Jekyll 中执行此操作(手动添加这些项目除外)。我想到了一个 JavaScript 解决方案,在那里我可以获得 feed.xml(或者可能创建一个包含必要信息的自定义 JSON 文件)并只显示这些项目,但我不能第一个找这个的人,或者?

不是已经有这样的东西了吗? - 也许我只是看错了。

好吧,我看错了,jekyll 中包含这些信息的变量是 site.related_posts

但是,在 GitHub 页面中使用时,它似乎存在一些问题,这使得它几乎没有用。很多人只是按时间顺序得到post的列表。

有一个问题总结了可能的解决方案:https://github.com/johnotander/pixyll/issues/41

Wenli Zhang wrote a quite extensive post about this,来自 Wenli Zhang 的 post 的模板,应该适用于 GitHub 页:

{% assign hasSimilar = '' %}
{% for post in site.related_posts %}
    {% assign postHasSimilar = false %}
    {% for tag in post.tags %}
        {% for thisTag in page.tags %}
            {% if postHasSimilar == false and hasSimilar.size < 6 and post != page and tag == thisTag %}
                {% if hasSimilar.size == 0 %}
                <h4>Similar Posts</h4>
                <ul>
                {% endif %}
                <li class="relatedPost">
                    <a href="{{ site.url }}{{ post.url }}">{{ post.title }}
                    {% if post.series %}
                        (Series: {{ post.series }})
                    {% endif %}
                    </a>
                </li>
                {% capture hasSimilar %}{{ hasSimilar }}*{% endcapture %}
                {% assign postHasSimilar = true %}
            {% endif %}
        {% endfor %}
    {% endfor %}
{% endfor %}
{% if hasSimilar.size > 0 %}
    </ul>
{% endif %}