Skip to content

Commit 7b8c8e0

Browse files
authored
Fix HTML report structure (closes #715) (#723)
* Fix and cleanup HtmlReporter generated HTML structure * Bump version to 0.45.0 * Lowercase missed tag
1 parent 3274580 commit 7b8c8e0

File tree

2 files changed

+43
-42
lines changed

2 files changed

+43
-42
lines changed

gradle-versions-plugin/src/main/kotlin/com/github/benmanes/gradle/versions/reporter/HtmlReporter.kt

+42-41
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,36 @@ class HtmlReporter(
1717
override val gradleReleaseChannel: String,
1818
) : AbstractReporter(project, revision, gradleReleaseChannel) {
1919
override fun write(printStream: OutputStream, result: Result) {
20+
printStream.println("<!doctype html>")
21+
printStream.println("<html lang=\"en\">")
2022
writeHeader(printStream)
23+
writeBody(printStream, result)
24+
printStream.println("</html>")
25+
}
26+
27+
private fun writeHeader(printStream: OutputStream) {
28+
printStream.println(header.trimMargin())
29+
}
2130

31+
private fun writeBody(printStream: OutputStream, result: Result) {
32+
printStream.println("<body>")
2233
if (result.count == 0) {
23-
printStream.println("<P>No dependencies found.</P>")
34+
printStream.println("<p>No dependencies found.</p>")
2435
} else {
2536
writeUpToDate(printStream, result)
2637
writeExceedLatestFound(printStream, result)
2738
writeUpgrades(printStream, result)
2839
writeUndeclared(printStream, result)
2940
writeUnresolved(printStream, result)
3041
}
31-
3242
writeGradleUpdates(printStream, result)
33-
}
34-
35-
private fun writeHeader(printStream: OutputStream) {
36-
printStream.println(header.trimMargin())
43+
printStream.println("</body>")
3744
}
3845

3946
private fun writeUpToDate(printStream: OutputStream, result: Result) {
4047
val versions = result.current.dependencies
4148
if (versions.isNotEmpty()) {
42-
printStream.println("<H2>Current dependencies</H2>")
49+
printStream.println("<h2>Current dependencies</h2>")
4350
printStream
4451
.println("<p>The following dependencies are using the latest $revision version:<p>")
4552
printStream.println("<table class=\"currentInfo\">")
@@ -56,7 +63,7 @@ class HtmlReporter(
5663
if (versions.isNotEmpty()) {
5764
// The following dependencies exceed the version found at the "
5865
// + revision + " revision level:
59-
printStream.println("<H2>Exceeded dependencies</H2>")
66+
printStream.println("<h2>Exceeded dependencies</h2>")
6067
printStream.println(
6168
"<p>The following dependencies exceed the version found at the $revision revision level:<p>"
6269
)
@@ -72,7 +79,7 @@ class HtmlReporter(
7279
private fun writeUpgrades(printStream: OutputStream, result: Result) {
7380
val versions = result.outdated.dependencies
7481
if (versions.isNotEmpty()) {
75-
printStream.println("<H2>Later dependencies</H2>")
82+
printStream.println("<h2>Later dependencies</h2>")
7683
printStream.println("<p>The following dependencies have later $revision versions:<p>")
7784
printStream.println("<table class=\"warningInfo\">")
7885
for (it in getUpgradesRows(result)) {
@@ -86,7 +93,7 @@ class HtmlReporter(
8693
private fun writeUndeclared(printStream: OutputStream, result: Result) {
8794
val versions = result.undeclared.dependencies
8895
if (versions.isNotEmpty()) {
89-
printStream.println("<H2>Undeclared dependencies</H2>")
96+
printStream.println("<h2>Undeclared dependencies</h2>")
9097
printStream.println(
9198
"<p>Failed to compare versions for the following dependencies because they were declared without version:<p>"
9299
)
@@ -102,7 +109,7 @@ class HtmlReporter(
102109
private fun writeUnresolved(printStream: OutputStream, result: Result) {
103110
val versions = result.unresolved.dependencies
104111
if (versions.isNotEmpty()) {
105-
printStream.println("<H2>Unresolved dependencies</H2>")
112+
printStream.println("<h2>Unresolved dependencies</h2>")
106113
printStream
107114
.println("<p>Failed to determine the latest version for the following dependencies:<p>")
108115
printStream.println("<table class=\"warningInfo\">")
@@ -118,32 +125,29 @@ class HtmlReporter(
118125
if (!result.gradle.enabled) {
119126
return
120127
}
121-
122-
printStream.println("<H2>Gradle $gradleReleaseChannel updates</H2>")
123-
128+
printStream.println("<h2>Gradle $gradleReleaseChannel updates</h2>")
124129
printStream.println("Gradle $gradleReleaseChannel updates:")
125130
// Log Gradle update checking failures.
126131
if (result.gradle.current.isFailure) {
127132
printStream.println(
128-
"<P>[ERROR] [release channel: ${CURRENT.id}] " + result.gradle.current.reason + "</P>"
133+
"<p>[ERROR] [release channel: ${CURRENT.id}] " + result.gradle.current.reason + "</p>"
129134
)
130135
}
131136
if ((gradleReleaseChannel == RELEASE_CANDIDATE.id || gradleReleaseChannel == NIGHTLY.id) &&
132137
result.gradle.releaseCandidate.isFailure
133138
) {
134139
printStream.println(
135-
"<P>[ERROR] [release channel: ${RELEASE_CANDIDATE.id}] " + result
136-
.gradle.releaseCandidate.reason + "</P>"
140+
"<p>[ERROR] [release channel: ${RELEASE_CANDIDATE.id}] " + result.gradle.releaseCandidate.reason + "</p>"
137141
)
138142
}
139143
if (gradleReleaseChannel == NIGHTLY.id && result.gradle.nightly.isFailure) {
140144
printStream.println(
141-
"<P>[ERROR] [release channel: ${NIGHTLY.id}] " + result.gradle.nightly.reason + "</P>"
145+
"<p>[ERROR] [release channel: ${NIGHTLY.id}] " + result.gradle.nightly.reason + "</p>"
142146
)
143147
}
144148

145149
// print Gradle updates in breadcrumb format
146-
printStream.print("<P>Gradle: [" + getGradleVersionUrl(result.gradle.running.version))
150+
printStream.print("<p>Gradle: [" + getGradleVersionUrl(result.gradle.running.version))
147151
var updatePrinted = false
148152
if (result.gradle.current.isUpdateAvailable && result.gradle.current > result.gradle.running) {
149153
updatePrinted = true
@@ -168,7 +172,7 @@ class HtmlReporter(
168172
if (!updatePrinted) {
169173
printStream.print(": UP-TO-DATE")
170174
}
171-
printStream.println("]<P>")
175+
printStream.println("]</p>")
172176
printStream.println(getGradleUrl())
173177
}
174178

@@ -216,13 +220,13 @@ class HtmlReporter(
216220

217221
companion object {
218222
private const val header = """
219-
<!DOCTYPE html>
220-
<HEAD><TITLE>Project Dependency Updates Report</TITLE></HEAD>
221-
<style type=\"text/css\">
223+
<head>
224+
<title>Project Dependency Updates Report</title>
225+
<style>
222226
.body {
223-
font:100% verdana, arial, sans-serif;
224-
background-color:#fff
225-
}
227+
font:100% verdana, arial, sans-serif;
228+
background-color:#fff
229+
}
226230
.currentInfo {
227231
border-collapse: collapse;
228232
}
@@ -241,11 +245,10 @@ class HtmlReporter(
241245
border-collapse: collapse;
242246
}
243247
.currentInfo tr:nth-child(odd) {
244-
background-color: #EFFFD2;
248+
background-color: #EFFFD2;
245249
padding: 12px 15px;
246250
border-collapse: collapse;
247251
}
248-
249252
.warningInfo {
250253
border-collapse: collapse;
251254
}
@@ -264,27 +267,25 @@ class HtmlReporter(
264267
border-collapse: collapse;
265268
}
266269
.warningInfo tr:nth-child(odd) {
267-
background-color: #FFFFCC;
270+
background-color: #FFFFCC;
268271
padding: 12px 15px;
269272
border-collapse: collapse;
270273
}
271-
272-
273274
</style>
274-
<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js\"></script>
275-
276-
<script type="text/javascript">
277-
\$(document).ready(function(){
275+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
276+
<script>
277+
$(document).ready(function(){
278278
/* set current to collapsed initially */
279-
\$('#currentId').nextUntil('tr.header').slideToggle(100, function(){});
279+
$('#currentId').nextUntil('tr.header').slideToggle(100, function(){});
280280
/* click callback to toggle tables */
281-
\$('tr.header').click(function(){
282-
\$(this).find('span').text(function(_, value){return value=='(Click to collapse)'?'(Click to expand)':'(Click to collapse)'});
283-
\$(this).nextUntil('tr.header').slideToggle(100, function(){
281+
$('tr.header').click(function(){
282+
$(this).find('span').text(function(_, value){return value=='(Click to collapse)'?'(Click to expand)':'(Click to collapse)'});
283+
$(this).nextUntil('tr.header').slideToggle(100, function(){
284284
});
285285
});
286-
});
286+
});
287287
</script>
288+
</head>
288289
"""
289290

290291
private fun getCurrentRows(result: Result): List<String> {
@@ -389,7 +390,7 @@ class HtmlReporter(
389390
}
390391

391392
private fun getGradleUrl(): String {
392-
return "<P>For information about Gradle releases click <a target=\"_blank\" href=\"https://gradle.org/releases/\">here</a>."
393+
return "<p>For information about Gradle releases click <a target=\"_blank\" href=\"https://gradle.org/releases/\">here</a>.</p>"
393394
}
394395

395396
private fun getGradleVersionUrl(version: String?): String {

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
GROUP=com.github.ben-manes
2-
VERSION_NAME=0.44.0
2+
VERSION_NAME=0.45.0
33

44
POM_INCEPTION_YEAR=2012
55
POM_PACKAGING=jar

0 commit comments

Comments
 (0)