1.0.11 • Published 1 year ago
@istree/11ty v1.0.11
Usage
Apply Filters
function eleventy(config) {
const filters = require('@istree/11ty');
filters.init(config);
}
same as
function eleventy(config) {
const filters = require('@istree/11ty');
for(let key in filters) {
config.addFilter(key, filters[key]);
}
}
module.exports = eleventy;
slice
latest 10 posts
{% assign latest10Posts = collections['blog'] | reverse | slice : '0', '10' %}
keys
{% assign tagList = collections | keys | sort %}
concat
{% for tag in tagList %}
{% assign aHref = '/tags/' | concat : tag, '/' %}
<a href="{{ aHref }}" rel="permalink">{{ tag }}</a></br>
{% endfor %}
filter
Apply condition to collections
{% assign pageList = collections['11ty']
| filter: 'data.type', '==', 'docs'
| filter: 'fileSlug', '!=', '11ty'
| sortByProp : 'data.title'
%}
normalize
{
"permalink": "/posts/{{ page.fileSlug | normalize }}/"
}
removeHyphen
{{ page.fileSlug | removeHyphen}}
dateTime
{{ page.date | dateTime: '/y/M/d/' }}
sort
{% assign tagList = collections | keys | sort %}
sortByProp
{% assign postList = collections[tag] | sortByProp : 'data.title' %}
groupBy
post by year
{% assign postsByYearList = collections['blog'] | groupBy: 'date', 'dateTime', 'y' | reverse %}
nested loop
{% for postsByYear in postsByYearList %}
<h1>{{postsByYear.name}}</h1>
{% assign postsByMonth = postsByYear.values | groupBy: 'date', 'dateTime', 'M' | reverse %}
{% for postsEachMonth in postsByMonth %}
<h2>{{ postsEachMonth.name }}</h2>
{% for post in postsEachMonth.values %}
<a href="{{ post.url }}" rel="permalink">{{ post.fileSlug }}</a><br/>
{% endfor %}
{% endfor %}
{% endfor %}
groupByExt
post by year
{% assign postsByYearGroup = collections['blog']
| groupByExt: "['date', 'dateTime', 'y' ]", "['reverse']" | eachName: "['concat', ' Year']"
| groupByExt: "['date', 'dateTime', 'M' ]", "['reverse']" | eachName: "['concat', ' Month']"
| eachValues: "['reverse']"
%}
nested loop
{% for postsByYear in postsByYearGroup %}
<h1>{{ postsByYear.name }}</h1>
{% for postsByMonth in postsByYear.values %}
<h2>{{ postsByMonth.name }}</h2>
{% for post in postsByMonth.values %}
<a href="{{ post.url }}" rel="permalink">{{ post.fileSlug }}</a><br/>
{% endfor %}
{% endfor %}
{% endfor %}
defaultTitle
{
"eleventyComputed": {
"title": "{{ title | defaultTitle : page.fileSlug }}"
}
}
defaultPageTitle
{{ post | defaultPageTitle }}
equal to console.log
{% assign posts = 'any string' | print: 'apple', 'car' %}