shadowfacts.net/site/posts/2021-03-17-minecraft-mod-st.../java-versions.html.ejs

51 lines
1.5 KiB
Plaintext

<%
const fs = require("fs");
const path = require("path");
const data = JSON.parse(fs.readFileSync(path.join(metadata.sourceDir, "data.json")));
const maxJavaVersionCount = data.javaVersions[Object.keys(data.javaVersions)[0]];
const javaVersions = Object.keys(data.javaVersions).filter(k => data.javaVersions[k] / maxJavaVersionCount > 0.01);
const javaVersionWidth = 90 / javaVersions.length;
function prettyCount(k) {
const count = data.javaVersions[k];
if (count > 1000000) {
return Math.round(count / 100000) / 10 + "M";
} else if (count > 1000) {
return Math.round(count / 1000) + "k"
}
}
%>
<div id="java-version-chart" class="chart">
<%
for (const k of javaVersions) {
const percent = Math.round(100 * data.javaVersions[k] / data.total);
const heightFrac = 100 * data.javaVersions[k] / maxJavaVersionCount;
if (heightFrac < 1) continue;
%>
<div class="chart-column-container" style="width: <%= javaVersionWidth %>%;">
<div class="chart-column-spacer" style="height: <%= 100 - heightFrac %>%;">
<% if (heightFrac != 100) { %>
<span class="chart-column-data-label">
<%= prettyCount(k) %>
<br>
<%= percent %>%
</span>
<% } %>
</div>
<div class="chart-column theme-inverted" style="height: <%= heightFrac %>%;">
<% if (heightFrac == 100) { %>
<span class="chart-column-data-label">
<%= prettyCount(k) %>
<br>
<%= percent %>%
</span>
<% } %>
</div>
<span class="chart-column-label"><%= k %></span>
</div>
<%
}
%>
</div>