in plugin/src/main/java/io/fabric8/maven/plugin/mojo/internal/HelmIndexMojo.java [127:199]
protected void generateHTML(File outputHtmlFile, Map<String, ChartInfo> charts) throws MojoExecutionException {
Map<String,SortedSet<ChartInfo>> chartMap = new TreeMap<>();
for ( ChartInfo chartInfo : charts.values()) {
String key = chartInfo.getName();
SortedSet<ChartInfo> set = chartMap.get(key);
if (set == null) {
set = new TreeSet<>(createChartComparator());
chartMap.put(key, set);
}
set.add(chartInfo);
}
try (PrintWriter writer = new PrintWriter(new FileWriter(outputHtmlFile))) {
writer.println("<html>");
writer.println("<head>");
writer.println(getHtmlFileContentOrDefault(headHtmlFile,
"<link href='style.css' rel=stylesheet>\n" +
"<link href='custom.css' rel=stylesheet>\n" +
"<title>" + helmTitle + "</title>\n"));
writer.println("</head>");
writer.println("<body>");
writer.println(getHtmlFileContentOrDefault(introductionHtmlFile, "<h1>" + helmTitle + "</h1>"));
writer.println("<table class='table table-striped table-hover'>");
writer.println(" <hhead>");
writer.println(" <tr>");
writer.println(" <th>Chart</th>");
writer.println(" <th>Versions</th>");
writer.println(" </tr>");
writer.println(" </hhead>");
writer.println(" <tbody>");
for (Map.Entry<String, SortedSet<ChartInfo>> entry : chartMap.entrySet()) {
String key = entry.getKey();
SortedSet<ChartInfo> set = entry.getValue();
if (!set.isEmpty()) {
ChartInfo first = set.first();
HelmMojo.Chart firstChartfile = first.getChartfile();
if (firstChartfile == null ) {
continue;
}
String chartDescription = getDescription(firstChartfile);
writer.println(" <tr>");
writer.println(" <td title='" + chartDescription + "'>");
String iconHtml = "";
String iconUrl = findIconURL(first, set);
if (Strings.isNotBlank(iconUrl)) {
iconHtml = "<img class='logo' src='" + iconUrl + "'>";
}
writer.println(" " + iconHtml + "<span class='chart-name'>" + key + "</span>");
writer.println(" </td>");
writer.println(" <td class='versions'>");
for (ChartInfo chartInfo : set) {
HelmMojo.Chart chartfile = chartInfo.getChartfile();
if (chartfile == null) {
continue;
}
String description = getDescription(chartfile);
String version = chartfile.getVersion();
String href = chartInfo.firstUrl();
writer.println(" <a href='" + href + "' title='" + description + "'>" + version + "</a>");
}
writer.println(" </td>");
writer.println(" </tr>");
}
}
writer.println(" </tbody>");
writer.println(" </table>");
writer.println(getHtmlFileContentOrDefault(footerHtmlFile, ""));
writer.println("</body>");
} catch (IOException e) {
throw new MojoExecutionException("Failed to write to " + outputHtmlFile + ". " + e, e);
}
}