| <!-- |
| # Jekyll Group-By-Array 0.1.0 |
| # https://github.com/mushishi78/jekyll-group-by-array |
| # © 2015 Max White <mushishi78@gmail.com> |
| # MIT License |
| --> |
| |
| <!-- Initialize --> |
| {% assign __empty_array = '' | split: ',' %} |
| {% assign group_names = __empty_array %} |
| {% assign group_items = __empty_array %} |
| |
| <!-- Map --> |
| {% assign __names = include.collection | map: include.field %} |
| |
| <!-- Flatten --> |
| {% assign __names = __names | join: ',' | join: ',' | split: ',' %} |
| |
| <!-- Uniq --> |
| {% assign __names = __names | sort %} |
| {% for name in __names | sort %} |
| |
| <!-- If not equal to previous then it must be unique as sorted --> |
| {% unless name == previous %} |
| |
| <!-- Push to group_names --> |
| {% assign group_names = group_names | push: name %} |
| {% endunless %} |
| |
| {% assign previous = name %} |
| {% endfor %} |
| |
| |
| <!-- group_items --> |
| {% for name in group_names %} |
| |
| <!-- Collect if contains --> |
| {% assign __item = __empty_array %} |
| {% for __element in include.collection %} |
| {% if __element[include.field] contains name %} |
| {% assign __item = __item | push: __element %} |
| {% endif %} |
| {% endfor %} |
| |
| <!-- Push to group_items --> |
| {% assign group_items = group_items | push: __item %} |
| {% endfor %} |