ran*_*c78 11 random liquid jekyll
我想有一套链接
<li>
<h2>Random Articles</h2>
<ul>
<li><a href="#">Old article 1</a></li>
<li><a href="#">Old article 1</a></li>
<li><a href="#">Old article 1</a></li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
但我想从随机选择的帖子中生成链接.我正在使用jekyll和liquid来生成网站.我必须使用jekyll的内置部分,因为我在github上托管.我不确定从哪里开始.谷歌搜索的主题毫无结果.
kno*_*eld 17
这是从_data中的JSON文件中选择一个随机引用,但原则也适用于您的帖子:
{% assign random = site.time | date: "%s%N" | modulo: site.data.inspirational-quotes.size %}
<blockquote>“{{ site.data.inspirational-quotes[random].quote }}” <cite>{{ site.data.inspirational-quotes[random].person }}</cite></blockquote>
Run Code Online (Sandbox Code Playgroud)
我发现本文对于使用Liquid生成数字很有用,尽管这不是直接的,但它是生成带有最小/最大值的随机数的最优雅的方法。
以下示例适用于65到80之间的数字。
{% assign min = 65 %}
{% assign max = 80 %}
{% assign diff = max | minus: min %}
{% assign randomNumber = "now" | date: "%N" | modulo: diff | plus: min %}
Run Code Online (Sandbox Code Playgroud)
我有类似的愿望,并开始定义一个自定义 Liquid 标签(请参阅http://github.com/mojombo/jekyll/wiki/Plugins),该标签通过它访问帖子context.registers并随机选择帖子,但请注意,一旦 Jekyll 生成了您的网站,该随机选择保持静态,直到站点重新生成。我建议一个不同的选择:让 Jekyll 将所有这些帖子链接写入 JavaScript 中的一个数组(包含在布局中内联),该数组被打乱,然后前三个链接显示在页面上。您甚至可以增强这一点,以便通过调用使这三个链接与数组中的其他链接一起旋转setInterval()。这不是最优雅的解决方案,但动态生成随机内容似乎不太符合 Jekyll 的设计理念。