in buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy [234:264]
static ContentAndMetadata parseFile(File file) {
String line = null
List<String> lines = []
Map<String, String> metadata = [:]
boolean metadataProcessed = false
int lineCount = 0
file.withReader { reader ->
while ((line = reader.readLine()) != null) {
if (lineCount == 0 && line.startsWith(SEPARATOR)) {
continue
}
lineCount++
if (line.startsWith(SEPARATOR)) {
metadataProcessed = true
continue
}
if (!metadataProcessed && line.contains(COLON)) {
String metadataKey = line.substring(0, line.indexOf(COLON as String)).trim()
String metadataValue = line.substring(line.indexOf(COLON as String) + COLON.length()).trim()
metadata[metadataKey] = metadataValue
}
line = replaceLineWithMetadata(line, metadata)
if (metadataProcessed) {
lines << line
}
}
}
!metadataProcessed || lines.isEmpty() ? new ContentAndMetadata(metadata: [:] as Map<String, String>, content: file.text) :
new ContentAndMetadata(metadata: metadata, content: lines.join("\n"))
}