mirror of
https://github.com/facundoolano/jorge.git
synced 2024-12-25 21:58:28 +01:00
add a keys filter to make liquid iteration of maps predictable
(fixes random test failure)
This commit is contained in:
parent
ccc8bc5e99
commit
5735be769a
2 changed files with 12 additions and 1 deletions
|
@ -197,7 +197,7 @@ tags: [software]
|
|||
// add a page (no date)
|
||||
content = `---
|
||||
---
|
||||
{% for tag in site.tags %}<h1>{{tag[0]}}</h1>{% for post in tag[1] %}
|
||||
{% for tag in site.tags | keys | sort %}<h1>{{tag}}</h1>{% for post in site.tags[tag] %}
|
||||
{{post.title}}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
|
|
@ -30,6 +30,7 @@ func loadJekyllFilters(e *liquid.Engine, siteUrl string, includesDir string) {
|
|||
e.RegisterFilter("group_by", groupByFilter)
|
||||
e.RegisterFilter("group_by_exp", groupByExpFilter)
|
||||
e.RegisterFilter("sort", sortFilter)
|
||||
e.RegisterFilter("keys", keysFilter)
|
||||
e.RegisterFilter("where", whereFilter)
|
||||
e.RegisterFilter("where_exp", whereExpFilter)
|
||||
e.RegisterFilter("xml_escape", xml.Marshal)
|
||||
|
@ -144,6 +145,16 @@ func groupByFilter(array []map[string]interface{}, property string) []map[string
|
|||
return result
|
||||
}
|
||||
|
||||
func keysFilter(m map[string]interface{}) []string {
|
||||
keys := make([]string, len(m))
|
||||
i := 0
|
||||
for k := range m {
|
||||
keys[i] = k
|
||||
i++
|
||||
}
|
||||
return keys
|
||||
}
|
||||
|
||||
func sortFilter(array []interface{}, key interface{}, nilFirst func(bool) bool) []interface{} {
|
||||
nf := nilFirst(true)
|
||||
result := make([]interface{}, len(array))
|
||||
|
|
Loading…
Reference in a new issue