From: Ben Soares Date: Tue, 3 May 2022 11:35:42 +0000 (+0100) Subject: JAL-3989 improved parsing and formatting now using flex CSS layout for columns X-Git-Tag: Release_2_11_2_6~64^2~11 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=a55b066dfc2bae86cf321b83a5a0731de9de16be JAL-3989 improved parsing and formatting now using flex CSS layout for columns --- diff --git a/build.gradle b/build.gradle index 69bc51c..a6d0e77 100644 --- a/build.gradle +++ b/build.gradle @@ -2405,36 +2405,67 @@ def ulToList(Element ul, int indent) { def list = "" ul.children().each { e -> if (e.tagName().toLowerCase() == "ul") { - list += "\n" + 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} " - issues = n.getData().trim().split(/[,\s]+/) + mdItem += "{{}}${n.getData()}{{}} " + issuesText = n.getData().trim() + issues = n.getData().trim().split(/[,\s]+/).findAll { it.startsWith("JAL-") } return true } } + def safeText = issuesText.replaceAll('"', '\"') + def joinedIssues = issues.join(",") def issuesLink = (issues.size() > 0) ? - " {{< jal issue=\"${issues.join(",")}\" >}}" + " {{< jal issue=\"${joinedIssues}\" alt=\"${safeText}\" >}}" : "" def addedIssues = false e.childNodes().each { node -> if (node.nodeName().toLowerCase() == "ul") { - // add issues link before sub list - mdItem += "${issuesLink}\n" - addedIssues = true - mdItem += ulToList(e, indent+1) + // add issues link before sub list if it's last + if (node.nextSibling() == null) { + mdItem += "${issuesLink}" + addedIssues = true + } + mdItem = mdItem.stripTrailing() + "\n" + mdItem += ulToList(node, indent+1) } else if (node.nodeName() == "#text") { mdItem += node.text() + } else if (node.nodeName().toLowerCase() == "strong") { + mdItem += "**${node.text()}**" + } else if (node.nodeName().toLowerCase() == "em") { + // if (true || (node.text().length() > 50 && node.text().count(" ") > 10) || (!node.nextSibling().text().startsWith("\\s*\\n"))) { + mdItem += "*${node.text()}*" + // } else { + // mdItem += "### "+node.text() + // } + } else if (node.nodeName().toLowerCase() == "br") { + mdItem += "
\n" + } else if (node.nodeName().toLowerCase() == "a") { + mdItem += "[${node.text()}](${node.attr('href')})" } } if (!addedIssues) { mdItem += issuesLink } - list += "${mdItem}\n" + 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" + } } } return list @@ -2486,56 +2517,63 @@ task hugoTemplates { def lastDotIndex = JALVIEW_VERSION.lastIndexOf(".") if (lastDotIndex > 0) { - 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" + 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 = "" } - summary += (patchReleaseString != null) ? " is the ${patchReleaseString} release in the ${JALVIEW_VERSION.substring(0,lastDotIndex)} series." : "" } [1,2].each { col -> + def colChanges = "" if (headings[col] != null && headings[col].size() > 0) { - def noheadings = true releaseCells[col].children().each { e -> - if (e.tagName().toLowerCase() == "ul") { - def list = ulToList(e, 0) - if (noheadings && list != "") { - changes += "\n### ${headings[col]}\n\n" - noheadings = false + if (e.tagName().toLowerCase() == "ul" || e.tagName().toLowerCase() == "div") { + if (colChanges != "") { + colChanges = colChanges.stripTrailing() + "\n" } - changes += list + colChanges += ulToList(e, 0) } else if (e.tagName().toLowerCase() == "em") { - changes += "\n#### ${e.text()}\n\n" - noheadings = false + colChanges += "\n\n### ${e.text()}\n\n" } } } + if (colChanges != "") { + def className = headings[col].replaceAll(" ","_").toLowerCase().replaceAll("[^_a-z]","") + changes += "
\n\n## ${headings[col]}\n\n${colChanges}\n
\n\n" + } } - + if (changes != "") { + changes = "
\n\n${changes}\n\n
" + } } } } @@ -2555,9 +2593,17 @@ task hugoTemplates { def newFile = file("${outPathName}/${newFileName}".toString()) def content = newFile.text - content = content.replaceAll("__SUMMARY__", summary) + // summary in version archive release pages only appears from 2.10.5 onwards + if (oldDate.format("yyyy") as Integer >= 2019 || JALVIEW_VERSION == "2.10.5") { + content = content.replaceAll("__SUMMARY__", summary) + } else { + content = content.replaceAll("__SUMMARY__", "") + } content = content.replaceAll("__CHANGES__", changes) if (oldDate != null) { + if (oldDate[java.util.Calendar.YEAR] < 90) { + oldDate[java.util.Calendar.YEAR] += 2000 + } content = content.replaceAll("__DATE__", oldDate.format("yyyy-MM-dd")) } newFile.text = hugoTemplateSubstitutions(content) diff --git a/utils/hugo/templates/content/development/archive/Version-__VERSION_UNDERSCORES__/_index.md b/utils/hugo/templates/content/development/archive/Version-__VERSION_UNDERSCORES__/_index.md index aca6877..dc418ad 100644 --- a/utils/hugo/templates/content/development/archive/Version-__VERSION_UNDERSCORES__/_index.md +++ b/utils/hugo/templates/content/development/archive/Version-__VERSION_UNDERSCORES__/_index.md @@ -4,6 +4,7 @@ layout: "single-release" date: __DATE__ publishdate: __DATE__ title: __APPLICATION_NAME__ __VERSION__ +siderendertoc: false cascade: release_date: __DATE__ version: "__VERSION__"