static String renderPostHtml()

in buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy [213:250]


    static String renderPostHtml(HtmlPost htmlPost,
                                 String templateText,
                                 List<HtmlPost> posts) {

        StringWriter writer = new StringWriter()
        MarkupBuilder mb = new MarkupBuilder(writer)
        mb.div(class: 'headerbar chalicesbg') {
            div(class: 'content') {
                h1 {
                    a(href: '[%url]/blog/index.html','Grails Blog')
                }
            }
        }
        mb.div(class: 'content container') {
            div(class: 'light padded blogpost') {
                mkp.yieldUnescaped(htmlPost.html)
                h2 (class: 'space-above') {
                    span "You might also like ..."
                }
                div(class: 'threecolumns') {
                    for (HtmlPost post : relatedPosts(htmlPost, posts)) {
                        div(class: 'column') {
                            mkp.yieldUnescaped(postCard(post))
                        }
                    }
                }
            }
        }
        String html = writer.toString()
        Map<String, String> metadata = htmlPost.metadata.toMap()
        html = RenderSiteTask.renderHtmlWithTemplateContent(html, metadata, templateText)
        html = RenderSiteTask.highlightMenu(html, metadata, htmlPost.path)
        metadata['body'] = metadata['body'] ? metadata['body'] : ''
        if (metadata['body']) {
            html = html.replace("<body>", "<body class='${metadata['body']}'>")
        }
        html
    }