aboutsummaryrefslogtreecommitdiff
path: root/views/_languages.eta
diff options
context:
space:
mode:
authorJoe Mou <dev@mou.fo>2026-08-11 08:09:47 -0400
committerJoe Mou <dev@mou.fo>2026-08-11 08:13:58 -0400
commitb43ce92c7b16bdefedb7c4c2aef41f9417f1ddf6 (patch)
tree29ff6b47a16e62a58e17921f2c1200249c1845c0 /views/_languages.eta
parentecd01c4617ec0a6af05cfc4388bdc82986f25961 (diff)
Add language percentages to repo pages
GitHub no longer server-renders the repository sidebar; its React UI lazily fetches /:owner/:repo/_sidebar as JSON, which carries the language breakdown (name, percentage, color). getGitHubLanguages() uses that endpoint, and a new /api/:owner/:repo/languages fragment route renders the bar and legend the same way refs and latest-commit already work, so repo page loads still cost a single scrape. The latest-commit placeholder loader in refs.js is generalized over .placeholder[data-src] so both placeholders share it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'views/_languages.eta')
-rw-r--r--views/_languages.eta17
1 files changed, 17 insertions, 0 deletions
diff --git a/views/_languages.eta b/views/_languages.eta
new file mode 100644
index 0000000..8aca447
--- /dev/null
+++ b/views/_languages.eta
@@ -0,0 +1,17 @@
+<% if (it.languages.length > 0) { %>
+ <div class="languages box">
+ <div class="language-bar">
+ <% for (const lang of it.languages) { %>
+ <span style="width: <%= lang.percentage %>%; background: <%= lang.color ?? "#ededed" %>" title="<%= lang.name %> <%= lang.percentage %>%"></span>
+ <% } %>
+ </div>
+ <ul class="language-list">
+ <% for (const lang of it.languages) { %>
+ <li>
+ <span class="language-dot" style="background: <%= lang.color ?? "#ededed" %>"></span>
+ <%= lang.name %> <span class="language-percentage"><%= lang.percentage %>%</span>
+ </li>
+ <% } %>
+ </ul>
+ </div>
+<% } %>