in buildSrc/src/main/groovy/org/grails/guides/GuidesPage.groovy [19:51]
static String renderGuide(Guide guide, String query = null) {
StringWriter writer = new StringWriter()
MarkupBuilder html = new MarkupBuilder(writer)
html.li {
if ( guide instanceof SingleGuide) {
a class: (guide.tags.contains('quickcast') ? 'quickcast guide' : 'guide'), href: "${GUIDES_URL}/${guide.name}/guide/index.html", guide.title
guide.tags.each { String tag ->
span(style: 'display: none', class: 'tag', tag)
}
} else if (guide instanceof GrailsVersionedGuide) {
GrailsVersionedGuide multiGuide = ((GrailsVersionedGuide) guide)
div(class: (guide.tags.contains('quickcast') ? 'quickcast multiguide' : 'multiguide')) {
span(class: 'title', guide.title)
for (GrailsMajorVersion grailsVersion : multiGuide.grailsMayorVersionTags.keySet()) {
Set<String> tagList = multiGuide.grailsMayorVersionTags[grailsVersion] as Set<String>
if (query == null || titlesMatchesQuery(multiGuide.title, query) || tagsMatchQuery(tagList as List<String>, query)) {
div(class: 'align-left') {
final String href = GUIDES_URL + '/' + grailsVersion.name().toLowerCase().replaceAll('_', '') + '/' + multiGuide.githubSlug.replaceAll(/grails-guides\//, '') + '/guide/index.html'
a(class: 'grailsVersion', href: href) {
mkp.yield(grailsVersion.toString().replaceAll("_", " "))
}
tagList.each { String tag ->
span(style: 'display: none', class: 'tag', tag)
}
}
}
}
}
}
}
writer.toString()
}