static void renderPosts()

in buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy [311:347]


    static void renderPosts(Map<String, String> globalMetadata,
                            List<HtmlPost> listOfPosts,
                            File outputDir,
                            final String templateText) {
        List<String> postCards = []
        List<RssItem> rssItems = []
        Map<String, List<String>> tagPosts = [:]
        Map<String, Integer> tagsMap = [:]

        for (HtmlPost htmlPost : listOfPosts) {
            postCards << postCard(htmlPost)
            String html = renderPostHtml(htmlPost, templateText, listOfPosts)
            File pageOutput = new File(outputDir.absolutePath + "/" + htmlPost.path)
            pageOutput.createNewFile()
            pageOutput.text = html

            Set<String> postTags = parseTags(html)
            for (String postTag : postTags) {
                tagsMap[postTag] = tagsMap.containsKey(postTag) ? (1 + tagsMap[postTag]) : 1
                if (!tagPosts.containsKey(postTag)) {
                    tagPosts[postTag] = []
                }
                tagPosts[postTag] << htmlPost.path
            }
            String postLink = postLink(htmlPost)
            rssItems.add(rssItemWithPage(htmlPost.metadata.title,
                    parseDate(htmlPost.metadata.date),
                    postLink,
                    htmlPost.path.replace(".html", ""),
                    htmlPost.html,
                    htmlPost.metadata.author))
        }
        Set<Tag> tags = tagsMap.collect { k, v -> new Tag(title: k, ocurrence: v) } as Set<Tag>
        renderArchive(new File(outputDir.absolutePath + "/index.html"), postCards, globalMetadata, templateText, tags)
        renderRss(globalMetadata, rssItems, new File(outputDir.absolutePath + "/../" + RSS_FILE))
        renderTags(globalMetadata, outputDir, tagsMap.keySet(), listOfPosts, templateText)
    }