summaryrefslogtreecommitdiff
path: root/cgithub/views
diff options
context:
space:
mode:
authorJoe Mou <dev@mou.fo>2026-08-27 14:08:06 -0400
committerJoe Mou <dev@mou.fo>2026-08-27 14:53:38 -0400
commit0d60b8c8235c3c07f675aba7a56dd37b62519f9e (patch)
tree8c94cef7b3530e72fc8542072b037081e5bb18ae /cgithub/views
parent16dfeb61f79e6cd44c667422b8dc50f226269d80 (diff)
Display PDF blobs
GitHub renders a PDF with a viewer of its own and so ships no content for one, leaving the blob view with nothing to show. Its raw bytes come as application/octet-stream, which browsers download rather than display, so serve them from a new embed route that retypes them and point an <object> at that. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BErPR92xppzGFXkPqXPYj2
Diffstat (limited to 'cgithub/views')
-rw-r--r--cgithub/views/blob.eta7
1 files changed, 6 insertions, 1 deletions
diff --git a/cgithub/views/blob.eta b/cgithub/views/blob.eta
index c7315f6..444508e 100644
--- a/cgithub/views/blob.eta
+++ b/cgithub/views/blob.eta
@@ -14,6 +14,11 @@
<% if (it.image) { %>
<div class="box"><img src="/<%= it.repo.owner %>/<%= it.repo.name %>/raw/<%= it.branch %>/<%= it.path %>"></div>
+<% } else if (it.renderFileType === "pdf") { %>
+ <object class="box pdf" type="application/pdf"
+ data="/<%= it.repo.owner %>/<%= it.repo.name %>/embed/<%= it.renderFileType %>/<%= it.branch %>/<%= it.path %>">
+ This file cannot be displayed.
+ </object>
<% } else if (it.htmlContent) { %>
<div class="box"><%~ it.htmlContent %></div>
<% } else if (it.htmlLines) { %>
@@ -21,5 +26,5 @@
<% } else if (it.textLines) { %>
<pre class="box"><code><%= it.textLines.join("\n") %></code></pre>
<% } else { %>
- <div class="box">This file cannot be displayed</div>
+ <div class="box">This file cannot be displayed.</div>
<% } %>