<% if (plugins.habits) { %>

Recent coding habits <% if (plugins.habits.commits?.fetched) { %> (computed from last <%= plugins.habits.commits.fetched %> commit<%= s(plugins.habits.commits.fetched) %>) <% } %>

<% if (plugins.habits.error) { %>
<%= plugins.habits.error.message %>
<% } else if (plugins.habits.facts) { %>
<% } %>
<% if (plugins.habits.charts) { %>
<% if (!Number.isNaN(plugins.habits.commits.hour)) { %>

Commit activity per hour of day

<% if (Array.isArray(plugins.habits.charts)) { %>
<%- plugins.habits.charts[0] %>
<% } else { %>
<% var displayedValues = []; %> <% for (let h = 0; h < 24; h++) { displayedValues.push([h, (plugins.habits.commits.hours[h]??0)/(plugins.habits.commits.hours.max??1), plugins.habits.commits.hours[h]]) } %> <% if (plugins.habits.trim) { %> <% while (displayedValues[0][1] === 0) { displayedValues.shift(); } %> <% while (displayedValues[displayedValues.length-1][1] === 0){ displayedValues.pop(); } %> <% } %> <% for(let i = 0; i < displayedValues.length; i++) { %>
<%= displayedValues[i][2] %>
<%= `${displayedValues[i][0]}`.padStart(2, 0) %>
<% } %>
<% } %>
<% } %>
<% if (!Number.isNaN(plugins.habits.commits.day)) { %>

Commit activity per day of week

<% if (Array.isArray(plugins.habits.charts)) { %>
<%- plugins.habits.charts[1] %>
<% } else { %>
<% for (let d = 0; d < 7; d++) { const p = (plugins.habits.commits.days[d]??0)/(plugins.habits.commits.days.max??1); %>
<%= plugins.habits.commits.days[d] %>
<%= ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][d] %>
<% } %>
<% } %>
<% } %> <% if (plugins.habits.linguist.available) { %>

Language activity

<% if (Array.isArray(plugins.habits.charts)) { %>
<%- plugins.habits.charts[2] %>
<% } else { %>
<% for (const [language, p] of plugins.habits.linguist.ordered) { %>
<%= language %>
<%= Math.round(100*p) %>%
<% } %>
<% } %>
<% } %>
<% } %> <% } %>