From fb16dc2b017e339e6a36a89c9b5d8a830ce3a541 Mon Sep 17 00:00:00 2001 From: Joe Mou Date: Wed, 15 Jul 2026 02:08:17 -0400 Subject: Add Cloudflare Workers deployment target Split routes into a shared createApp() (src/app.ts) used by both the Node entry (src/index.ts) and a new Workers entry (src/worker.ts). Workers disallow runtime code generation, so scripts/compile-views.ts precompiles the Eta templates into src/views.generated.ts and rendering switches from renderAsync to the sync render. Static files move to public/static so Workers Static Assets can serve them; the Node build and serveStatic root are updated to match. Deploy with pnpm run deploy:cf, local dev with pnpm run dev:cf. Co-Authored-By: Claude Fable 5 --- static/style.css | 282 ------------------------------------------------------- 1 file changed, 282 deletions(-) delete mode 100644 static/style.css (limited to 'static/style.css') diff --git a/static/style.css b/static/style.css deleted file mode 100644 index e698993..0000000 --- a/static/style.css +++ /dev/null @@ -1,282 +0,0 @@ -:root { - color-scheme: light dark; - scrollbar-color: var(--border-color) var(--body-background); - - --body-background: light-dark( - oklch(95% 0.01 250), - oklch(20% 0.01 250) - ); - - --text-color: light-dark( - oklch(5% 0.01 250), - oklch(90% 0.01 250) - ); - - --border-color: light-dark( - oklch(80% 0.01 250), - oklch(40% 0.01 250) - ); - - --shade-background: light-dark( - oklch(90% 0.01 250), - oklch(30% 0.01 250) - ); - - --link-color: light-dark( - oklch(50% 0.15 250), - oklch(60% 0.15 250) - ); - - --pl-c: light-dark(#6e7781, #8b949e); - --pl-c1: light-dark(#0550ae, #79c0ff); - --pl-e: light-dark(#6639ba, #d2a8ff); - --pl-en: light-dark(#0550ae, #d2a8ff); - --pl-k: light-dark(#cf222e, #ff7b72); - --pl-s: light-dark(#0a3069, #a5d6ff); - --pl-v: light-dark(#953800, #ffa657); -} - -body { - margin: 1rem; - font-family: Helvetica, Arial, sans-serif; - background: var(--body-background); - color: var(--text-color); -} - -a { - text-decoration: none; - color: var(--link-color); -} - -h1, h2, h3, h4, h5, h6, -p, pre, ul, ol { - margin: .5em 0; -} - -input, select, button { - background-color: var(--body-background); - color: var(--text-color); - border: 1px solid var(--border-color); -} - -table { - width: 100%; - border-collapse: collapse; -} - -tr { - border: 1px solid var(--border-color); -} - -td { - padding: .25rem; - vertical-align: top; - &:first-child { - padding-left: .5rem; - } - &:last-child { - padding-right: .5rem; - } -} - -nav { - display: flex; - margin: .5em 0; - > a { - display: block; - padding-right: .5rem; - + a { - padding-left: .5rem; - border-left: 1px solid var(--border-color); - } - &:last-child { - padding-right: 0; - } - } -} - -section { - margin: 1rem 0; -} - -.box { - --box-padding: .5rem; - - margin: 1rem 0; - border: 1px solid var(--border-color); - padding: var(--box-padding); - - > *:first-child { - margin-top: 0; - } - > *:last-child { - margin-bottom: 0; - } - - > header:first-child { - margin: calc(-1 * var(--box-padding)); - margin-bottom: 0; - padding: .5rem; - border-bottom: 1px solid var(--border-color); - } - - > footer:last-child { - margin: 0 calc(-1 * var(--box-padding)); - padding: .5rem; - border-top: 1px solid var(--border-color); - } -} - -body > footer { - margin-top: 1rem; - text-align: center; -} - -.icon { - height: 1lh; - vertical-align: text-bottom; -} - -@media (prefers-color-scheme: dark) { - .icon { - filter: brightness(0) invert(1); - } -} - -.repo { - font-size: 120%; - font-weight: bold; -} - -.avatar { - float: right; - clip-path: circle(); -} - -.branch { - display: inline-block; - margin-right: 1rem; - padding: .2rem; - border: 1px solid var(--border-color); -} - -.repo-info { - .description { - margin-bottom: .2rem; - } - - .detail { - white-space: nowrap; - } - - div.detail { - overflow-x: hidden; - text-overflow: ellipsis; - } - - span.detail + span.detail { - margin-left: 1rem; - } -} - -pre.box { - /* Instead of scrolling overflow for long lines, grow the box. */ - width: fit-content; -} - -.overview, .release { - overflow-wrap: break-word; - - /* This is a bit convoluted: we want the effect of padding but using margins - * vertically so we get margin collapsing. */ - --box-padding: 1rem; - padding-top: 0; - padding-bottom: 0; - > header:first-child { - margin-top: 0; - } - > :first-child, > header:first-child + * { - margin-top: 1rem; - } - > :last-child { - margin-bottom: 1rem; - } - - a { - text-decoration: underline; - } - - h1, h2 { - border-bottom: 1px solid var(--border-color); - } - - img, video { - max-width: 100%; - } - - code, pre { - background: var(--shade-background); - } - - pre { - overflow-x: auto; - scrollbar-color: var(--border-color) var(--shade-background); - } -} - -.overview > header { - font-weight: bold; -} - -.release > header { - display: flex; - align-items: baseline; - > :first-child { - flex-grow: 1; - font-weight: bold; - } -} - -.timestamp { - white-space: nowrap; - font-size: .8rem; -} - -.commit { - display: flex; - justify-content: space-between; - padding: 0.5rem; - border: 1px solid var(--border-color); - + .commit { - border-top: none; - } -} - -.commit-author { - font-size: 0.8rem; - margin-top: 0.2rem; -} - -.commit-sha { - align-self: center; - font-size: 0.8rem; -} - -/* TODO Strip permalinks? */ -svg.octicon-link { - display: none; -} - -.pl-c { color: var(--pl-c); } -.pl-c1 { color: var(--pl-c1); } -.pl-e { color: var(--pl-e); } -.pl-en { color: var(--pl-en); } -.pl-k { color: var(--pl-k); } -.pl-s { color: var(--pl-s); } -.pl-v { color: var(--pl-v); } -.pl-ent { color: var(--pl-k); } -.pl-mh { font-weight: bold; color: var(--pl-en); } -.pl-bu { color: var(--pl-k); } -.pl-ii { color: var(--text-color); background-color: var(--pl-k); } -.pl-pds { color: var(--pl-s); } -.pl-smi { color: var(--text-color); } -- cgit v1.3.1