加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:56:11 所属栏目:百科 来源:网络整理
导读:我在1周前开始使用Jekyll而不熟悉 Ruby,我想实现以下功能. 从Jekyll documentation我可以使用以下模板来计算文章中的单词: {{ page.content | number_of_words }} 我想使用这些信息来计算文章的估计阅读时间(以分钟为单位),基于平均每分钟200字的假设.其中
我在1周前开始使用Jekyll而不熟悉 Ruby,我想实现以下功能.

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

{{ page.content | number_of_words }}

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

number_of_words / 200

不确定,但基于我读过的关于Ruby的内容,我应该使用{%%}来执行我的计算,但我不确定是否可以使用{{page.content | number_of_words}}在其中,执行除法.

这是我目前的情况:

.html文件:

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

我确信上面使用的number_of_words不存在,我不确定print是否会在那里做到.有任何想法吗?

解决方法

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

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

如果需要,您可以创建自己的自定义Liquid标签和过滤器,divide_by过滤器似乎可以执行您想要的操作:

{{ page.content | number_of_words | divided_by: 200 }}

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

{% assign read_time = page.content | number_of_words | divided_by: 200 %}

{% if read_time > 0 %}
Read time: {{ read_time }}
{% endif %}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读