refactor: route index through Base layout, dedup head/footer - #7
Merged
Conversation
index.astro imported Base but still rendered its own full document. Convert it to render through <Base>, removing the duplicate <head>, <Nav/>, and <footer> (now owned by Base/Footer.astro). Add an optional ogDescription prop to Base so the homepage keeps its distinct social-card copy. Delete the stale hand-written public/sitemap.xml — the @astrojs/sitemap integration generates sitemap-index.xml, which robots.txt already references. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013w1uYPCToTdEth65NQpxUR
Introduce the field-building arm of the site as content-collection-backed pages, all rendered through the Base layout: - src/content.config.ts: typed talks / workshops / curriculum collections (glob loader). Add a markdown file to publish an entry — no code change; draft: true hides one. - Pages: /community hub (auto-counts entries), /talks list, /curriculum (index + per-module detail), /workshops (index + per-workshop detail). - Nav: add Community; convert section links to cross-page anchors (/#publications etc.) so they resolve from any route; logo → /. - index.css: shared .prose styles for rendered markdown; promote the .link-paper / .repo-row / .social-link hover states to global so all pages reuse them (removed the duplicated inline block from index.astro). - Homepage: add a "Field building" teaser section linking into /community. - src/lib/date.ts: shared date formatter for content dates. Placeholder entries are seeded for each type; replace by editing the files. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013w1uYPCToTdEth65NQpxUR
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
website | 5beb773 | Commit Preview URL Branch Preview URL |
Jul 21 2026, 11:27 AM |
There was a problem hiding this comment.
Pull request overview
Refactors the homepage to render through the shared Base layout (deduping document <head>, nav, and footer), and adds a “field building” section with new Community/Talks/Workshops/Curriculum routes backed by Astro Content Collections. It also introduces a reusable date formatter and removes the stale hand-written sitemap in favor of @astrojs/sitemap.
Changes:
- Route
/throughsrc/layouts/Base.astro, removing duplicated document shell and moving shared hover styles intosrc/index.css. - Add new pages for Community, Talks, Workshops, and Curriculum (including dynamic
[...slug]routes) plus initial content collections and entries. - Extend
Basewith optionalogDescription(used for OG + Twitter description), and deletepublic/sitemap.xmlsince sitemap generation is handled by the integration.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/index.astro | Wraps homepage in <Base> and removes duplicated <head>/Nav/footer markup. |
| src/layouts/Base.astro | Adds ogDescription prop and uses it for OG/Twitter descriptions. |
| src/components/Nav.astro | Updates nav links to use /#... anchors for cross-route behavior and adds Community link. |
| src/components/Footer.astro | Owns footer markup/styles (now consistently applied via Base). |
| src/index.css | Adds .prose typography and centralizes shared hover styles previously inlined on /. |
| src/lib/date.ts | Introduces formatDate() helper used by Talks/Workshops pages. |
| src/pages/community.astro | New Community landing page summarizing field-building offerings. |
| src/pages/talks.astro | New Talks listing page backed by talks collection. |
| src/pages/workshops/index.astro | New Workshops listing page backed by workshops collection. |
| src/pages/workshops/[...slug].astro | New Workshop detail pages rendered from markdown via content collections. |
| src/pages/curriculum/index.astro | New Curriculum listing page backed by curriculum collection. |
| src/pages/curriculum/[...slug].astro | New Curriculum module detail pages rendered from markdown. |
| src/content.config.ts | Defines talks, workshops, and curriculum collections and schemas. |
| src/content/talks/deflection-vectors-guest-lecture.md | Adds initial talk entry (currently placeholder copy). |
| src/content/talks/adversarial-interp-neurips-socal.md | Adds initial talk entry (currently placeholder copy). |
| src/content/workshops/cohort-01-intro-adversarial-interp.md | Adds initial workshop entry (currently placeholder copy). |
| src/content/workshops/cohort-02-deception-detection.md | Adds initial workshop entry (currently placeholder copy). |
| src/content/curriculum/01-foundations.md | Adds initial curriculum module entry (currently placeholder copy). |
| src/content/curriculum/02-steering-and-control.md | Adds initial curriculum module entry (currently placeholder copy). |
| src/content/curriculum/03-adversarial-settings.md | Adds initial curriculum module entry (currently placeholder copy). |
| public/sitemap.xml | Deletes stale hand-written sitemap (sitemap integration generates index). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+1
to
+5
| const fmt = new Intl.DateTimeFormat('en-US', { | ||
| year: 'numeric', | ||
| month: 'short', | ||
| day: 'numeric', | ||
| }); |
| summary: "An introductory series taking the cohort from linear probes to their first working deflection-vector detector on an open-weights model." | ||
| tags: ["cohort", "hands-on", "probes"] | ||
| materials: "https://github.com/redarc-labs/workshop-materials" | ||
| draft: false |
| location: "Remote" | ||
| summary: "A one-day intensive on activation-level deception detection: building evaluation harnesses, red-teaming your own detectors, and reasoning about non-cooperative models." | ||
| tags: ["cohort", "deception detection", "evaluation"] | ||
| draft: false |
| speaker: "Manan Wadhwa" | ||
| tags: ["mech interp", "activation steering"] | ||
| slides: "https://example.com/slides/deflection-vectors" | ||
| draft: false |
| tags: ["adversarial interp", "deception detection"] | ||
| slides: "https://example.com/slides/adversarial-interp" | ||
| video: "https://example.com/video/adversarial-interp" | ||
| draft: false |
| duration: "Week 1–2" | ||
| summary: "The groundwork — residual streams, linear probes, and the linear representation hypothesis. Everything later modules build on." | ||
| tags: ["foundations", "probes"] | ||
| draft: false |
| duration: "Week 3–4" | ||
| summary: "From reading features to changing behaviour — constructing steering vectors, applying them, and measuring their effects." | ||
| tags: ["steering", "control"] | ||
| draft: false |
| duration: "Week 5–6" | ||
| summary: "The core of the field — what breaks when a model is actively non-cooperative, and how to build detection that survives adversarial pressure." | ||
| tags: ["adversarial interp", "deception detection"] | ||
| draft: false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
index.astro imported Base but still rendered its own full document.
, and (now owned by Base/Footer.astro). Add an optional ogDescription prop to Base so the homepage keeps its distinct social-card copy. Delete the stale hand-written public/sitemap.xml — the @astrojs/sitemap integration generates sitemap-index.xml, which robots.txt already references.Convert it to render through , removing the duplicate ,
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_013w1uYPCToTdEth65NQpxUR