summaryrefslogtreecommitdiff
path: root/cgithub/views/blob.eta
diff options
context:
space:
mode:
authorJoe Mou <dev@mou.fo>2026-09-03 01:26:44 -0400
committerJoe Mou <dev@mou.fo>2026-09-03 01:27:35 -0400
commit501587e256a065816f7eb6007030e728955a32dc (patch)
treed218635dd8403ec7904a3248b0f7d8efee34b74f /cgithub/views/blob.eta
parentf951c579f7093cc5c61bcb3c0905c7a6729df065 (diff)
Anchor blob lines so #L fragments work
Wrap each rendered line in a <span id="Ln">, for both syntax-highlighted and plain-text blobs, and shade the line a fragment targets.
Diffstat (limited to 'cgithub/views/blob.eta')
-rw-r--r--cgithub/views/blob.eta6
1 files changed, 4 insertions, 2 deletions
diff --git a/cgithub/views/blob.eta b/cgithub/views/blob.eta
index 444508e..be9a57e 100644
--- a/cgithub/views/blob.eta
+++ b/cgithub/views/blob.eta
@@ -22,9 +22,11 @@
<% } else if (it.htmlContent) { %>
<div class="box"><%~ it.htmlContent %></div>
<% } else if (it.htmlLines) { %>
- <pre class="box"><code><%~ it.htmlLines.join("\n") %></code></pre>
+ <pre class="box"><code><% for (const [i, line] of it.htmlLines.entries()) {
+ %><%= i ? "\n" : "" %><span id="L<%= i + 1 %>"><%~ line %></span><% } %></code></pre>
<% } else if (it.textLines) { %>
- <pre class="box"><code><%= it.textLines.join("\n") %></code></pre>
+ <pre class="box"><code><% for (const [i, line] of it.textLines.entries()) {
+ %><%= i ? "\n" : "" %><span id="L<%= i + 1 %>"><%= line %></span><% } %></code></pre>
<% } else { %>
<div class="box">This file cannot be displayed.</div>
<% } %>