Jekyll中液体模板的算术计算,用于计算估计的读数时间

时间:2016-02-13 02:18:17

标签: ruby jekyll liquid

我在1周前开始使用Jekyll,并且不熟悉Ruby,我想实现以下功能。

Jekyll documentation我可以使用以下模板计算文章中的字词:

{{ page.content | number_of_words }}

我想使用此信息来计算文章的估计阅读时间(以分钟为单位),基于平均200 words per minute的假设。其中给出了以下简单公式:

number_of_words / 200

不确定,但根据我读过的关于Ruby的内容,我应该使用{% %}来执行我的计算,但我不确定是否可以使用{{ page.content | number_of_words }}来执行我的计算分裂。

以下是我目前的情况:

.html文件:

.
.
<p class="meta">
    {% print {{number_of_words}} / 200 %}
</p>
.
.

我确信上面使用的number_of_words不存在,我不确定print是否会在那里做到这一点。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

虽然Jekyll是用Ruby编写的,但在使用它时通常不需要编写任何Ruby。它使用Liquid,它是明确设计的,允许用户创建页面设计而不允许它们运行任意代码。

Liquid确实有tags(Jekyll添加some more),它使用{% %},但在这种情况下,我认为您可能会对使用{{的Erb模板语言感到困惑。 1}}执行Ruby代码。

如果需要,您可以创建自己的自定义Liquid标签和过滤器,但在这种情况下,<% %>过滤器似乎可以执行您想要的操作:

divided_by

注意这是整数除法,与您的示例相同,因此如果字数小于200,则结果将为零。要检查这一点,只有在总数> 1时才包括它。 0,您可以使用{{ page.content | number_of_words | divided_by: 200 }} 标记(可以与过滤器一起使用)和assign标记,如下所示:

if