aboutsummaryrefslogtreecommitdiff
path: root/views/layouts/base.eta
diff options
context:
space:
mode:
authorJoe Mou <dev@mou.fo>2026-09-04 21:26:21 -0400
committerJoe Mou <dev@mou.fo>2026-09-04 21:49:59 -0400
commit3fd91017f05714fb5c049d662ae00dc31203485b (patch)
treef33466d43994da205c8081782c73639a25ca4f5b /views/layouts/base.eta
parentae000d743ef54368d21596d590e1acc0d90b370e (diff)
Split the page shell out of the repository layout
layout.eta was two things at once: the HTML shell every page needs and the repository chrome around it. owner.eta, being the one page that is not about a repository, could use neither and carried its own copy of the shell, which had drifted -- its footer named no build commit and did not link to the original page on GitHub. The shell moves to views/layouts/base.eta, taking its title and any deferred scripts as layout data, and the chrome to views/layouts/repo.eta, a layout over it that adds the clone commands, nav, search box, and the "/" shortcut that focuses it. Repository pages point at repo.eta and render as before; owner.eta uses base.eta directly and so gains the footer it was missing. Templates now live in more than one directory, so scripts/build.ts walks views/ recursively and keys each template by its path underneath it. Names crossing a directory are written from the views root ("/layouts/base.eta"), the one form both Eta's filesystem resolver and the precompiled resolver in worker.ts agree on; siblings stay relative. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ba5p88cWtCq42vf3uweweL
Diffstat (limited to 'views/layouts/base.eta')
-rw-r--r--views/layouts/base.eta17
1 files changed, 17 insertions, 0 deletions
diff --git a/views/layouts/base.eta b/views/layouts/base.eta
new file mode 100644
index 0000000..fb644f5
--- /dev/null
+++ b/views/layouts/base.eta
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title><%= it.title %></title>
+ <link rel="stylesheet" href="/static/style.css">
+ <% for (const src of it.scripts ?? []) { %>
+ <script src="<%= src %>" defer></script>
+ <% } %>
+</head>
+<body>
+ <%~ it.body %>
+
+ <footer>Generated by cgithub commit <code><%= it.buildCommit %></code> ยท <a href="<%= it.githubUrl %>" rel="noreferrer">View original</a></footer>
+</body>
+</html>