sectionContent += line+"\n"
}
}
+ if (sectionContent != null) {
+ sections[sectionName] = sectionContent
+ }
return sections
}
def m = releasesTemplate =~ /(?s)__VERSION_LOOP_START__(.*)__VERSION_LOOP_END__/
def versionTemplate = m[0][1]
- def versions = ""
- releaseFiles.each { rFile ->
+ MutableDataSet options = new MutableDataSet()
+
+ def extensions = new ArrayList<>()
+ options.set(Parser.EXTENSIONS, extensions)
+ options.set(Parser.HTML_BLOCK_COMMENT_ONLY_FULL_LINE, true)
+
+ Parser parser = Parser.builder(options).build()
+ HtmlRenderer renderer = HtmlRenderer.builder(options).build()
+
+ def actualVersions = releaseFiles.collect { rf ->
+ def (rfMap, rfContent) = mdFileComponents(rf)
+ return rfMap.version
+ }
+ def versionsHtml = ""
+ def linkedVersions = []
+ releaseFiles.reverse().each { rFile ->
def (rMap, rContent) = mdFileComponents(rFile)
- def vm = JALVIEW_VERSION =~ /^(.+)\.(\d+)$/
- def branchVersion = m[0][1]
- def minorVersion = m[0][2]
+ def versionLink = ""
+ def partialVersion = ""
+ def firstPart = true
+ rMap.version.split("\\.").each { part ->
+ def displayPart = ( firstPart ? "" : "." ) + part
+ partialVersion += displayPart
+ if (
+ linkedVersions.contains(partialVersion)
+ || ( actualVersions.contains(partialVersion) && partialVersion != rMap.version )
+ ) {
+ versionLink += displayPart
+ } else {
+ versionLink += "<a id=\"Jalview.${partialVersion}\">${displayPart}</a>"
+ linkedVersions += partialVersion
+ }
+ firstPart = false
+ }
def displayDate = releaseFilesDates[rFile].format("d MMMMM yyyy")
def rContentSections = getMdSections(rContent)
-
def rVersion = versionTemplate
if (rVersion != "") {
+ Node newFeaturesNode = parser.parse(rContentSections["new_features"])
+ String newFeaturesHtml = renderer.render(newFeaturesNode)
+ Node issuesResolvedNode = parser.parse(rContentSections["issues_resolved"])
+ String issuesResolvedHtml = renderer.render(issuesResolvedNode)
rVersion = hugoTemplateSubstitutions(rVersion,
[
- BRANCH_VERSION: branchVersion,
- MINOR_VERSION: minorVersion,
+ VERSION: rMap.version,
+ VERSION_LINK: versionLink,
DISPLAY_DATE: displayDate,
- NEW_FEATURES: rContentSections["new_features"],
- KNOWN_ISSUES: rContentSections["known_issues"]
+ NEW_FEATURES: newFeaturesHtml,
+ ISSUES_RESOLVED: issuesResolvedHtml
]
)
+ versionsHtml += rVersion
}
-
- println("RVERSION='$rVersion'")
-
-
}
+
+ releasesTemplate = releasesTemplate.replaceAll("(?s)__VERSION_LOOP_START__.*__VERSION_LOOP_END__", versionsHtml)
+ releasesTemplate = hugoTemplateSubstitutions(releasesTemplate)
+ releasesHtmlFile.text = releasesTemplate
}
inputs.file(releasesTemplateFile)