0

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

我正在使用 Jekyll,并且正在寻找一个插件或一种简单的方法来引用我在博客底部以更自动化的方式编写的其他(相关)内容。这个想法是用 2-4div秒的时间来显示其他博客文章的标题和摘录。相关性可以通过检查标签简单地得出结论,随机标签也可以作为开始。

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

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

4

1 回答 1

0

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

但是,在 GitHub Pages 中使用时,它似乎存在一些问题,这使得它几乎无用。许多人只是按时间顺序获取帖子列表。

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

Wenli Zhang 写了一篇关于这个的相当广泛的帖子,来自 Wenli Zhang 的帖子的模板应该适用于 GitHub Pages:

{% 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 %}
于 2015-02-16T07:55:13.513 回答