in buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy [252:287]
static List<HtmlPost> relatedPosts(HtmlPost htmlPost, List<HtmlPost> posts) {
List<HtmlPost> relatedPosts = []
for (String tag : htmlPost.tags) {
for (HtmlPost p : posts) {
if (p.tags.contains(tag) && p.path != htmlPost.path) {
List<String> paths = relatedPosts*.path
if (paths.contains(p.path)) {
continue
}
relatedPosts.add(p)
if (relatedPosts.size() > MAX_RELATED_POSTS) {
break
}
}
}
if (relatedPosts.size() > MAX_RELATED_POSTS) {
break
}
}
if (relatedPosts.size() < MAX_RELATED_POSTS) {
for (HtmlPost p : posts) {
List<String> paths = relatedPosts*.path
paths.add(htmlPost.path)
if (paths.contains(p.path)) {
continue
}
relatedPosts << p
if (relatedPosts.size() > MAX_RELATED_POSTS) {
break
}
}
}
relatedPosts.subList(0, MAX_RELATED_POSTS).sort { a, b ->
parseDate(a.metadata.date).after(parseDate(b.metadata.date)) ? -1 : 1
}
}