static String replaceLineWithMetadata()

in buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy [280:306]


    static String replaceLineWithMetadata(String line, Map<String, String> metadata) {
        Map<String, String> m = new HashMap<>(metadata)
        if (m.containsKey('date')) {
            m['date'] = formatDate(m['date'])
        }
        for (String metadataKey : m.keySet()) {
            if (line.contains("[%${metadataKey}]".toString())) {
                String value = m[metadataKey]
                if ("[%${metadataKey}]".toString() == '[%author]') {
                    List<String> authors = value.split(",") as List<String>
                    value = '<span class="author">By ' + authors.join("<br/>") + '</span>'
                    line = line.replaceAll("\\[%${metadataKey}\\]".toString(), value)

                } else if ("[%${metadataKey}]".toString() == '[%date]') {
                    if (line.contains('<meta')) {
                        line = line.replaceAll("\\[%${metadataKey}\\]".toString(), value)
                    } else {
                        value = '<span class="date">' + value + '</span>'
                        line = line.replaceAll("\\[%${metadataKey}\\]".toString(), value)
                    }
                } else {
                    line = line.replaceAll("\\[%${metadataKey}\\]".toString(), value)
                }
            }
        }
        line
    }