X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=build.gradle;h=958343bfbcc2612e654f06fc81f50b1f244632db;hp=17aec8855fc9cb707bc0ba3b5c65d8754eb56b86;hb=a1ad718d48d84b35e1e5e69ff34fc0ca7f69790e;hpb=ff2fd741606ac49562f2cfb2b5b46059191feb35 diff --git a/build.gradle b/build.gradle index 17aec88..958343b 100644 --- a/build.gradle +++ b/build.gradle @@ -2589,6 +2589,9 @@ def getMdSections(String content) { sectionContent += line+"\n" } } + if (sectionContent != null) { + sections[sectionName] = sectionContent + } return sections } @@ -2611,34 +2614,66 @@ task releasesTemplates { 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 += "${displayPart}" + 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)