This is an automated email from the ASF dual-hosted git repository.
twolf pushed a commit to branch dev_3.0
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/dev_3.0 by this push:
new 1209dcc84 [site] Improve links in japicmp reports
1209dcc84 is described below
commit 1209dcc8446ac39c2c3eb3e75f11a3bfc4ce0261
Author: Thomas Wolf <[email protected]>
AuthorDate: Wed Apr 23 14:25:19 2025 +0200
[site] Improve links in japicmp reports
japicmp generates links without href; doxia gives them href="#null".
Post-process the HTML to supply known anchors if we can determine them.
This enables links between classes referenced in the same japicmp
report.
---
sshd-site/src/main/groovy/alerts.groovy | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/sshd-site/src/main/groovy/alerts.groovy
b/sshd-site/src/main/groovy/alerts.groovy
index 7aaf72cfd..4cdd3f22d 100644
--- a/sshd-site/src/main/groovy/alerts.groovy
+++ b/sshd-site/src/main/groovy/alerts.groovy
@@ -35,11 +35,19 @@ def warning_class = "alert-warning"
def warning_img = "<svg class='${warning_class}' viewBox='0 0 16 16'
version='1.1' width='16' height='16'><path d='M6.457 1.047c.659-1.234
2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0
1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0
.22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5
0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z' /></svg>"
def replace(text, mark, css, img, label) {
- return text.replaceAll("<blockquote>(\\R|\\S)*<p>\\Q${mark}\\E",
"<blockquote class='${css}'><p class='${css}'>${img}${label}")
+ return text.replaceAll("<blockquote>(\\R|\\s)*<p>\\Q${mark}\\E",
"<blockquote class='${css}'><p class='${css}'>${img}${label}")
}
def reports = new File("${project.build.directory}/site").listFiles()
+def findAnchors(text) {
+ def set = [] as Set
+ text.findAll("<a\\s+id=\"user-content-([\\w.]+)\"") { match, pkg ->
+ set.add(pkg)
+ }
+ return set
+}
+
reports.each() { file ->
def name = file.name
if (name.startsWith("japicmp-")) {
@@ -50,6 +58,16 @@ reports.each() { file ->
content = replace(content, "[!NOTE]", note_class, note_img, "Note")
content = replace(content, "[!TIP]", tip_class, tip_img, "Tip")
content = replace(content, "[!WARNING]", warning_class, warning_img,
"Warning")
+ log.info("Fixing links in ${name}")
+ def anchors = findAnchors(content)
+ content = content.replaceAll(/href="#null" title="([\w.]+)"/, { all, pkg ->
+ def hash = pkg.toLowerCase()
+ if (anchors.contains(hash)) {
+ return "href=\"#user-content-${hash}\" title=\"${pkg}\""
+ } else {
+ return all
+ }
+ })
file.text = content
}
}