-
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Add local SEO image processing for posts #120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Caution Review failedThe pull request is closed. Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughIntroduces SEO post image preparation and MIME handling, updates OG type options, adds a post detail URL, revises post canonical pathing, and removes stale export files before writing. Wires a new SpaImagesDir env variable through env/kernel/tests. Adds a new pkg/images utility with fetch/resize/save/move helpers and comprehensive tests. Updates tests accordingly. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Caller as Build Trigger
participant Gen as SEO Generator
participant Img as images pkg
participant FS as Filesystem
participant HTTP as Remote Server
participant Site as Site URL Builder
Caller->>Gen: BuildForPost(post)
note over Gen: Initialize imageType = image/png
Gen->>Gen: preparePostImage(post)
alt Cover URL missing
Gen-->>Gen: return error
note right of Gen: Continue without image
else Cover URL present
Gen->>Img: Fetch(coverURL)
alt http/https
Img->>HTTP: GET coverURL
HTTP-->>Img: 200 OK + image bytes
else file/local
Img->>FS: Open file
FS-->>Img: Image bytes
end
Img-->>Gen: image, format
Gen->>Img: Resize(1200x630)
Gen->>FS: Ensure SPA images dir
Gen->>Img: DetermineExtension / BuildFileName
Gen->>Img: Save(path, img, ext)
Gen->>Gen: siteURLFor(relPath)
Gen-->>Gen: prepared{URL, MIME}
end
Gen->>Gen: Build OG data (Type=article, ImageType)
Gen->>FS: os.MkdirAll(outdir)
Gen->>FS: os.Remove(out) (ignore if not exists)
Gen->>FS: Write file
FS-->>Gen: OK
Gen-->>Caller: Result
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (11)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @gocanto, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly improves the SEO capabilities for blog posts by introducing a robust image processing system. It ensures that post cover images are appropriately sized and optimized for web display, and correctly configured with SEO-friendly metadata. This change streamlines the image handling process and enhances the discoverability and presentation of post content on search engines and social media platforms. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a valuable SEO enhancement by processing post cover images locally. The implementation is well-structured, with image handling logic cleanly separated into a new file and accompanied by a unit test. My review focuses on improving performance by reusing the HTTP client, enhancing error wrapping for better diagnostics, increasing the robustness of file operations, and expanding test coverage to include remote image fetching. Overall, these are solid changes that will improve the site's SEO capabilities.
Go Live
ENV_SPA_IMAGES_DIRvar.Summary
Summary by CodeRabbit
New Features
Tests
Chores
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Chores