Skip to content

bring content over#1

Merged
Vilos92 merged 6 commits into
mainfrom
content
Jun 7, 2026
Merged

bring content over#1
Vilos92 merged 6 commits into
mainfrom
content

Conversation

@Vilos92

@Vilos92 Vilos92 commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features
    • Blog with RSS feed and dynamic post pages, project portfolio listings, breadcrumb navigation, and dedicated 404/500 pages; reusable page head, layout, date formatting, and prose wrapper.
  • SEO & Discovery
    • Site-wide config with canonical URLs, trailing-slash normalization, sitemap generation (excludes error pages), and robots.txt.
  • Styling & Content
    • Themed code highlighting, global design tokens, responsive component styles, new blog posts and project data.

@coderabbitai

coderabbitai Bot commented Jun 7, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5fc38073-efee-4001-90c0-25294daedfe4

📥 Commits

Reviewing files that changed from the base of the PR and between b77dfee and 3a27f2d.

📒 Files selected for processing (1)
  • src/styles/breadcrumbs.css.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/styles/breadcrumbs.css.ts

📝 Walkthrough

Walkthrough

Populates Astro config and devDependencies, adds design tokens and breakpoints, global and component Vanilla Extract styles, layout components, content collection and two blog posts, blog pages + RSS, robots.txt, homepage and error pages, and a CI step plus .fallow baseline files.

Changes

Website Foundation & Content

Layer / File(s) Summary
Build Configuration & Dependencies
astro.config.mjs, package.json, public/robots.txt
Astro config now sets site/trailingSlash, Shiki themes, wires @astrojs/mdx and @astrojs/sitemap (excludes /404/ & /500/), and adds @vanilla-extract/vite-plugin. Dev deps updated and robots.txt references sitemap.
Design Tokens and Breakpoints
src/styles/tokens.ts, src/styles/breakpoints.ts
Exports fonts, palette, layout.contentWidth, breakpoints, touch-target constant, and media-query helpers for responsive/dark/high-contrast behaviors.
Global Styles and Layout Utilities
src/styles/global.css.ts
Global typography, base element rules, link/focus/utility styles, exports MAIN_CONTENT_ID, skipLink, and main layout styles.
Component-Specific Styles
src/styles/{prose,code,footer,breadcrumbs,projects}.css.ts
Vanilla Extract global and component rules for prose, Shiki-themed code blocks, footer, breadcrumbs, project list, with dark-mode, high-contrast, and coarse-pointer adjustments.
Layout Components
src/components/{BaseHead,BaseLayout,Breadcrumbs,Footer,FormattedDate,ProjectList,Prose}.astro
Reusable components: BaseHead (meta/canonical), BaseLayout (skip link, main, breadcrumbs, footer), Breadcrumbs, Footer, FormattedDate, ProjectList, and Prose wrapper wired to styles.
Content Collections, Projects Data, and Site Metadata
src/content.config.ts, src/data/projects.ts, src/site.ts
Blog collection with Zod schema and glob loader; typed project data exports (workspaceTools, activeProjects, olderProjects); siteTitle/siteDescription and formatTitle helper plus project re-exports.
Blog Posts and Content Files
src/content/blog/hello-world.md, src/content/blog/copyparty-tunnel.md
Adds two blog posts with frontmatter and full markdown content (including long copyparty guide).
Blog Pages and RSS Feed
src/pages/blog/index.astro, src/pages/blog/[...slug].astro, src/pages/rss.xml.js
Blog index lists posts, dynamic post page renders entries (getStaticPaths + render), and RSS endpoint returns sorted feed items.
Homepage and Error Pages
src/pages/index.astro, src/pages/{404,500}.astro
Homepage integrates latest post and project lists; 404/500 pages added using BaseLayout and Prose.
CI step and Baselines
.github/workflows/continuous-integration.yaml, .fallow/*
Adds bun run astro sync step to CI and initializes .fallow baseline & ignore files.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Server
  participant BaseLayout
  participant BaseHead
  participant Breadcrumbs
  participant ContentRenderer
  participant Footer
  User->>Server: request page (/, /blog, /blog/:slug)
  Server->>BaseLayout: compose page with title/description props
  BaseLayout->>BaseHead: set meta / canonical
  BaseLayout->>Breadcrumbs: compute crumbs from Astro.url.pathname
  BaseLayout->>ContentRenderer: render slot (index, blog list, or post Content)
  ContentRenderer->>BaseLayout: rendered HTML fragment
  BaseLayout->>Footer: include footer links/meta
  BaseLayout->>Server: return assembled HTML response
  Server->>User: deliver HTML
Loading

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Vilos92/vilos92.com#2: Shares wiring of @vanilla-extract/vite-plugin and related styling integration changes.
  • Vilos92/gdex#1: Related CI job structuring for the fallow job and audit steps.

Poem

🐰 I hopped into config, tidy and neat,
Tokens and styles make pages complete,
Breadcrumbs and posts in ordered rows,
RSS whispers where the feed wind blows,
A rabbit nods — the site’s now sweet!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'bring content over' is vague and generic, using non-descriptive language that doesn't convey specific information about what content or changes are being introduced. Consider using a more descriptive title that specifies the main changes, such as 'Add blog posts, layout components, and site configuration' or 'Initialize site with blog content and Astro components.'
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/content/blog/copyparty-tunnel.md`:
- Around line 169-173: The sample copyparty.conf is inconsistent: the access
line "r: greg, friend" references greg but the [accounts] block only defines
admin and friend; either add a "greg" account entry in the [accounts] section or
change "r: greg, friend" to "r: admin, friend" so the names match—update the
sample in the copyparty.conf snippet (look for the "[accounts]" block and the
mount entry that contains "r: greg, friend") to keep account names consistent.
- Line 42: Replace the non-descriptive link text "here" in the sentence that
points to Cloudflare's install docs with a descriptive phrase (for example
"Cloudflare Tunnel installation instructions" or "Cloudflare install and setup
guide") so the link reads naturally and is accessible; update the Markdown link
target but keep the existing URL
(https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/)
and ensure the sentence grammar remains correct after the substitution.
- Around line 71-72: The RUN line uses Markdown-style link syntax inside the
curl invocation which breaks the shell command; update the RUN curl command that
downloads cloudflared so it uses the raw URL string
"https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64"
(no square brackets or parentheses) and keep the rest of the pipeline (redirect
to /usr/local/bin/cloudflared and chmod +x /usr/local/bin/cloudflared)
unchanged.

In `@src/pages/rss.xml.js`:
- Line 7: The RSS feed uses the array returned by getCollection('blog') without
ordering; sort the posts array by their pubDate in descending (newest-first)
order before mapping to RSS items — e.g., sort posts (the variable from
getCollection) using a comparator that converts pubDate to Date and orders b - a
so the newest entries appear first when building the RSS.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 352848ce-a7f2-410d-bffb-9889e0781907

📥 Commits

Reviewing files that changed from the base of the PR and between bd65de6 and 29aa8c5.

⛔ Files ignored due to path filters (12)
  • bun.lock is excluded by !**/*.lock
  • public/Resume - Greg Linscheid.pdf is excluded by !**/*.pdf
  • public/blog/copyparty-2025-08-15.png is excluded by !**/*.png
  • public/blog/copyparty.svg is excluded by !**/*.svg
  • public/blog/hello-world.jpg is excluded by !**/*.jpg
  • public/favicon.ico is excluded by !**/*.ico
  • public/favicon.svg is excluded by !**/*.svg
  • public/fonts/atkinson-bold.woff is excluded by !**/*.woff
  • public/fonts/atkinson-regular.woff is excluded by !**/*.woff
  • public/greg-portrait.jpg is excluded by !**/*.jpg
  • public/milo-index.jpg is excluded by !**/*.jpg
  • public/milo.png is excluded by !**/*.png
📒 Files selected for processing (29)
  • astro.config.mjs
  • package.json
  • public/robots.txt
  • src/components/BaseHead.astro
  • src/components/BaseLayout.astro
  • src/components/Breadcrumbs.astro
  • src/components/Footer.astro
  • src/components/FormattedDate.astro
  • src/components/ProjectList.astro
  • src/components/Prose.astro
  • src/content.config.ts
  • src/content/blog/copyparty-tunnel.md
  • src/content/blog/hello-world.md
  • src/data/projects.ts
  • src/pages/404.astro
  • src/pages/500.astro
  • src/pages/blog/[...slug].astro
  • src/pages/blog/index.astro
  • src/pages/index.astro
  • src/pages/rss.xml.js
  • src/site.ts
  • src/styles/breadcrumbs.css.ts
  • src/styles/breakpoints.ts
  • src/styles/code.css.ts
  • src/styles/footer.css.ts
  • src/styles/global.css.ts
  • src/styles/projects.css.ts
  • src/styles/prose.css.ts
  • src/styles/tokens.ts

Comment thread src/content/blog/copyparty-tunnel.md Outdated
Comment thread src/content/blog/copyparty-tunnel.md Outdated
Comment thread src/content/blog/copyparty-tunnel.md
Comment thread src/pages/rss.xml.js

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/styles/breadcrumbs.css.ts`:
- Around line 35-40: Remove the obsolete WebkitOverflowScrolling style from the
responsive breadcrumb CSS: inside the '`@media`' block that targets
media.coarsePointer (the block containing flexWrap, overflowX,
WebkitOverflowScrolling), delete the WebkitOverflowScrolling: 'touch' entry so
only flexWrap: 'nowrap' and overflowX: 'auto' remain; ensure no other code
relies on that property and run the stylesheet linter/test to confirm no
regressions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 26312ae2-425d-43d9-9ee2-4f7e96fec86f

📥 Commits

Reviewing files that changed from the base of the PR and between 29aa8c5 and be41a66.

📒 Files selected for processing (4)
  • src/components/BaseLayout.astro
  • src/content/blog/copyparty-tunnel.md
  • src/pages/rss.xml.js
  • src/styles/breadcrumbs.css.ts
✅ Files skipped from review due to trivial changes (1)
  • src/content/blog/copyparty-tunnel.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/pages/rss.xml.js
  • src/components/BaseLayout.astro

Comment thread src/styles/breadcrumbs.css.ts
@Vilos92 Vilos92 merged commit fda242e into main Jun 7, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant