Estimativa de tempo de leitura da página
Criaremos para Jekyll sem utilizar plugins, um jeito de fazer esta estimativa de um jeito tão simples que você conseguirá aplicar a mesma lógica para qualquer sistema.
Se você já entende de programação, clique aqui ir direto ao código completo.
A lógica é bem simples, em média o ser humano ler 250 palavras por minutos (se você discordar poderá mudar a variável com esse valor depois).
Então primeiro passo é calcular quantas palavras o post tem e guardar em uma variável para usarmos depois.
1
2
{% assign content = post.content %}
{% assign words = content | number_of_words %}
1
2
3
4
{% assign wpm = 250 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{{words | divided_by:wpm}} minutos de leitura
1
2
3
4
5
6
7
8
9
10
{% assign wpm = 250 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{% assign estimated_minutes = words | divided_by:wpm %}
{% if estimated_minutes < 1 %}
Menos de um minuto
{% else %}
{{words | divided_by:wpm}} minutos
{% endif %} de leitura
1
2
3
4
5
6
7
8
9
10
11
12
{% assign wpm = 250 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{% assign estimated_minutes = words | divided_by:wpm %}
{% if estimated_minutes < 1 %}
Menos de um minuto
{% elsif estimated_minutes == 1 %}
1 minuto
{% else %}
{{words | divided_by:wpm}} minutos
{% endif %} de leitura
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% assign wpm = 250 %}
{% assign hour = 60 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{% assign estimated_minutes = words | divided_by:wpm %}
{% if estimated_minutes < 1 %}
Menos de um minuto
{% elsif estimated_minutes == 1 %}
1 minuto
{% elsif estimated_minutes < hour %}
{{ estimated_minutes }} minutos
{% else %}
{{ estimated_minutes | divided_by:hour }} horas
{% endif %} de leitura
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{% assign wpm = 250 %}
{% assign hour = 60 %}
{% assign one_day = 1440 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{% assign estimated_minutes = words | divided_by:wpm %}
{% if estimated_minutes < 1 %}
Menos de um minuto
{% elsif estimated_minutes == 1 %}
1 minuto
{% elsif estimated_minutes < hour %}
{{ estimated_minutes }} minutos
{% elsif estimated_minutes < one_day %}
{{ estimated_minutes | divided_by:hour }} horas
{% else %}
{{ estimated_minutes | divided_by:one_day }} dias
{% endif %} de leitura
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{% assign wpm = 250 %}
{% assign hour = 60 %}
{% assign one_day = 1440 %}
{% assign content = post.content %}
{% assign words = content | number_of_words %}
{% assign estimated_minutes = words | divided_by:wpm %}
{% if estimated_minutes < 1 %}
Menos de um minuto
{% elsif estimated_minutes == 1 %}
1 minuto
{% elsif estimated_minutes < hour %}
{{ estimated_minutes }} minutos
{% elsif estimated_minutes < one_day %}
{{ estimated_minutes | divided_by:hour }} horas
{% else %}
{% assign days = estimated_minutes | divided_by:one_day %}
{% if days <= 1 %}
{{ days }} dia
{% else %}
{{ days }} dias
{% endif %}
{% endif %} de leitura
Sua vez
Agora mostre que você entendeu o post, e tente portar esse código para outra linguagem. Já até criamos um repositório para você criar sua versão lá. Repositório