X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;fp=build.gradle;h=e6cc590075314b06ca090a38be01610580373b42;hb=729e39d052a71602d82f7808fdb3862b9d893ce8;hp=d89f3edaaf21f77ce7f675a4393e85457cd3ca34;hpb=07727bb7e06eb681af51a95e941cb035ac637d10;p=jalview.git
diff --git a/build.gradle b/build.gradle
index d89f3ed..e6cc590 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2388,87 +2388,27 @@ task dataInstallersJson {
}
}
-def hugoTemplateSubstitutions(String input) {
+def hugoTemplateSubstitutions(String input, Map extras=null) {
+ def replacements = [
+ DATE: getDate("yyyy-MM-dd"),
+ CHANNEL: propertiesChannelName,
+ APPLICATION_NAME: applicationName,
+ GIT_HASH: gitHash,
+ GIT_BRANCH: gitBranch,
+ VERSION: JALVIEW_VERSION,
+ JAVA_VERSION: JAVA_VERSION,
+ VERSION_UNDERSCORES: JALVIEW_VERSION_UNDERSCORES
+ ]
def output = input
- output = output.replaceAll("__DATE__", getDate("yyyy-MM-dd"))
- output = output.replaceAll("__CHANNEL__", propertiesChannelName)
- output = output.replaceAll("__APPLICATION_NAME__", applicationName)
- output = output.replaceAll("__GIT_HASH__", gitHash)
- output = output.replaceAll("__GIT_BRANCH__", gitBranch)
- output = output.replaceAll("__VERSION__", JALVIEW_VERSION)
- output = output.replaceAll("__JAVA_VERSION__", JAVA_VERSION)
- output = output.replaceAll("__VERSION_UNDERSCORES__", JALVIEW_VERSION_UNDERSCORES)
- return output
-}
-
-def ulToList(Element ul, int indent) {
- def list = ""
- ul.children().each { e ->
- if (e.tagName().toLowerCase() == "ul") {
- list = list.stripTrailing() + "\n"
- list += ulToList(e, indent+1)
- } else if (e.tagName().toLowerCase() == "li") {
- def issues = []
- def issuesText = ""
- def mdItem = " " * indent + "- "
- e.childNodes().any {n ->
- if (n.nodeName().equals("#comment")) {
- mdItem += "{{
\n"
- } else if (node.nodeName().toLowerCase() == "a") {
- mdItem += "[${node.text()}](${node.attr('href')})"
- }
- }
- if (!addedIssues) {
- mdItem += issuesLink
- }
- list += mdItem.stripTrailing()+"\n"
- } else if (e.tagName().toLowerCase() == "div") {
- e.children().each { eee ->
- list += ulToList(eee, indent)
- }
- } else if (e.tagName().toLowerCase() == "strong") {
- list += "**${e.text()}**"
- } else if (e.tagName().toLowerCase() == "em") {
- if (e.text().length() > 50 && e.text().count(" ") > 20) {
- list += "*${e.text()}*"
- } else {
- list += "\n\n### ${e.text()}\n\n"
- }
+ if (extras != null) {
+ extras.each{ k, v ->
+ output = output.replaceAll("__${k}__", ((v == null)?"":v))
}
}
- return list
+ replacements.each{ k, v ->
+ output = output.replaceAll("__${k}__", ((v == null)?"":v))
+ }
+ return output
}
task hugoTemplates {
@@ -2478,104 +2418,94 @@ task hugoTemplates {
def hugoTemplatesDir = file("${jalviewDir}/${hugo_templates_dir}")
def hugoBuildDir = "${jalviewDir}/${hugo_build_dir}"
def templateFiles = fileTree(dir: hugoTemplatesDir)
+ def releaseMdFile = file("${jalviewDir}/${releases_dir}/release-${JALVIEW_VERSION_UNDERSCORES}.md")
+ def whatsnewMdFile = file("${jalviewDir}/${whatsnew_dir}/whatsnew-${JALVIEW_VERSION_UNDERSCORES}.md")
+ def releaseTemplateFile = file("${jalviewDir}/${releases_template}")
+ def releasesTemplateFile = file("${jalviewDir}/${releases_template}")
+ def whatsnewTemplateFile = file("${jalviewDir}/${whatsnew_template}")
doFirst {
// specific release template for version archive
- def summary = "${applicationName} ${JALVIEW_VERSION}"
def changes = ""
- def oldDate = null
+ def whatsnew = null
+ def givenDate = null
+ def givenChannel = null
+ def givenVersion = null
if (CHANNEL == "RELEASE") {
def releasesHtmlFile = file("${helpSourceDir}/${releases_html}")
- //HTMLPARSE
- def html = releasesHtmlFile.text
- def doc = Jsoup.parse(html)
- def table = doc.select("table").first()
- def headings = table.select("tr").first().select("th").collect { it.text() }
- def releaseRow = null
- def trs = table.select("tr")
- trs.any { tr ->
- def tds = tr.select("td")
- if (tds.size() == 0)
- return false
- def releaseTd = tds.first()
- if (releaseTd.text().startsWith("${JALVIEW_VERSION} ")) {
- releaseRow = tr
- return true
- }
- }
-
- if (releaseRow != null && headings != null && headings.size() == 3) {
- def releaseTd = releaseRow.select("td").first()
- def spaceIndex = releaseTd.text().indexOf(" ")
- if (spaceIndex >= 0) {
- oldDate = new Date().parse("dd/MM/yyyy", releaseTd.text().substring(spaceIndex+1))
- }
- def releaseCells = releaseRow.select("td")
- if (releaseCells.size() == 3) {
- def title1 = headings[1]
- def title2 = headings[2]
-
- def lastDotIndex = JALVIEW_VERSION.lastIndexOf(".")
- if (lastDotIndex > 0) {
- try {
- def patchRelease = JALVIEW_VERSION.substring(lastDotIndex+1) as Integer
- def patchReleaseString = null
- if (patchRelease == 0) {
- patchReleaseString = "first minor"
- } else if (patchRelease == 1) {
- patchReleaseString = "first patch"
- } else if (patchRelease == 2) {
- patchReleaseString = "second patch"
- } else if (patchRelease == 3) {
- patchReleaseString = "third patch"
- } else if (patchRelease == 4) {
- patchReleaseString = "fourth patch"
- } else if (patchRelease == 5) {
- patchReleaseString = "fifth patch"
- } else if (patchRelease == 6) {
- patchReleaseString = "sixth patch"
- } else if (patchRelease == 7) {
- patchReleaseString = "seventh patch"
- } else if (patchRelease > 13 && (patchRelease % 10 == 1)) {
- patchReleaseString += "st"
- } else if (patchRelease > 13 && (patchRelease % 10 == 2)) {
- patchReleaseString += "nd"
- } else if (patchRelease > 13 && (patchRelease % 10 == 3)) {
- patchReleaseString += "rd"
- } else if (patchRelease != null) {
- patchReleaseString += "th"
- }
- summary += (patchReleaseString != null) ? " is the ${patchReleaseString} release in the ${JALVIEW_VERSION.substring(0,lastDotIndex)} series." : ""
- } catch(Exception e) {
- summary = ""
- }
+ //MD_PARSE
+ if (releaseMdFile.exists()) {
+ def inFrontMatter = false
+ def itemComment = null
+ def firstLine = true
+ releaseMdFile.eachLine { line ->
+ if (line.matches("---")) {
+ def prev = inFrontMatter
+ inFrontMatter = firstLine
+ if (inFrontMatter != prev)
+ return
}
-
- [1,2].each { col ->
- def colChanges = ""
- if (headings[col] != null && headings[col].size() > 0) {
- releaseCells[col].children().each { e ->
- if (e.tagName().toLowerCase() == "ul" || e.tagName().toLowerCase() == "div") {
- if (colChanges != "") {
- colChanges = colChanges.stripTrailing() + "\n"
- }
- colChanges += ulToList(e, 0)
- } else if (e.tagName().toLowerCase() == "em") {
- colChanges += "\n\n### ${e.text()}\n\n"
- }
- }
- }
- if (colChanges != "") {
- def className = headings[col].replaceAll(" ","_").toLowerCase().replaceAll("[^_a-z]","")
- changes += "