{% assign TOTAL_SIZE = 3 %} {% assign TAG_SCORE = 1 %} {% assign CATEGORY_SCORE = 0.5 %} {% assign SEPARATOR = ":" %} {% assign score_list = "" | split: "" %} {% assign last_index = site.posts.size | minus: 1 %} {% for i in (0..last_index) %} {% assign post = site.posts[i] %} {% if post.url == page.url %} {% continue %} {% endif %} {% assign score = 0 %} {% for tag in post.tags %} {% if page.tags contains tag %} {% assign score = score | plus: TAG_SCORE %} {% endif %} {% endfor %} {% for category in post.categories %} {% if page.categories contains category %} {% assign score = score | plus: CATEGORY_SCORE %} {% endif %} {% endfor %} {% if score > 0 %} {% capture score_item %}{{ score }}{{ SEPARATOR }}{{ i }}{% endcapture %} {% assign score_list = score_list | push: score_item %} {% endif %} {% endfor %} {% assign index_list = "" | split: "" %} {% if score_list.size > 0 %} {% assign score_list = score_list | sort | reverse %} {% for entry in score_list limit: TOTAL_SIZE %} {% assign index = entry | split: SEPARATOR | last %} {% assign index_list = index_list | push: index %} {% endfor %} {% endif %} {% assign less = TOTAL_SIZE | minus: index_list.size %} {% if less > 0 %} {% for i in (0..last_index) %} {% assign post = site.posts[i] %} {% if post.url != page.url %} {% capture cur_index %}{{ i }}{% endcapture %} {% unless index_list contains cur_index %} {% assign index_list = index_list | push: cur_index %} {% assign less = less | minus: 1 %} {% if less <= 0 %} {% break %} {% endif %} {% endunless %} {% endif %} {% endfor %} {% endif %} {% if index_list.size > 0 %} {% endif %}