fix: standardize blog social preview images and slugs#832
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (80)
📝 WalkthroughWalkthroughThis PR standardizes blog post frontmatter by adding Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@blog/2026-03-20-agentic-blockchain-indexing.md`:
- Line 90: Replace the recommended file-deletion workaround (removing
`.github/workflows/test.yaml`) with guidance to refresh the GitHub CLI OAuth
workflow scope; instruct readers to run the command to refresh their token with
workflow scope (e.g., use `gh auth refresh -s workflow`) and then retry the
push, and update the sentence on line 90 to reference refreshing the CLI token
rather than deleting CI workflow files.
In `@blog/2026-03-20-best-blockchain-indexers.md`:
- Line 145: The article currently shows inconsistent chain counts ("150+ chains
supported" and "149+ for Goldsky"); pick the authoritative source (or recount)
and make both occurrences match the verified number. Update the text instances
containing the string "150+ chains supported" and the Goldsky mention
referencing "149+" so they use the same verified value (and adjust any nearby
copy like the Goldsky line to reflect the unified count).
In `@scripts/validate-blog-social-images.js`:
- Around line 38-43: The toStaticFilePath function currently just joins
staticDir with imagePath and can be bypassed by path traversal (e.g.,
"/../file"); fix by resolving and normalizing the candidate path and explicitly
enforcing it is contained within staticDir: use path.resolve(staticDir,
imagePath.slice(1)) (or path.join + path.resolve) to get resolvedPath, compute
base = path.resolve(staticDir), then if resolvedPath === base or
resolvedPath.startsWith(base + path.sep) return resolvedPath, otherwise return
null; apply the same containment check for the other occurrence referenced
around the 95-99 region.
In `@src/css/custom.css`:
- Around line 284-291: The table overflow rules for the selector "article
.markdown table" are currently global but should only apply on small screens;
wrap those declarations in a mobile-only media query (e.g., max-width
breakpoint) so the display:block, width:max-content, max-width:100%,
overflow-x:auto and -webkit-overflow-scrolling only apply at mobile widths and
leave desktop table rendering unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 1a069a6f-7b7c-4648-864c-9b61da12d9b9
⛔ Files ignored due to path filters (1)
static/blog-assets/best-blockchain-indexers.pngis excluded by!**/*.png
📒 Files selected for processing (80)
.gitignoreblog/2023-08-08-methods-to-query-blockchain-data.mdblog/2023-08-17-what-is-an-indexer.mdblog/2023-08-22-envio-grant-program-is-live.mdblog/2023-08-31-navigating-challenges-in-blockchain-indexing.mdblog/2023-09-06-envio-community-update-1.mdblog/2023-09-27-envio-community-update-2.mdblog/2023-10-04-how-to-become-a-blockchain-dapp-developer.mdblog/2023-10-19-envio-celebrates-first-grantee-project-multi-chain-liquidation-metrics-indexer.mdblog/2023-10-24-indexer-benchmarking-results.mdblog/2023-10-26-envio-community-update-3.mdblog/2023-11-09-powers-of-dedicated-hosting-for-web3-apps.mdblog/2023-11-15-simplify-data-retrieval-multi-chain-dapps.mdblog/2023-11-23-envio-bounty-poap-multi-chain-indexer.mdblog/2023-11-29-envio-community-update-4.mdblog/2023-12-13-envio-bounty-erc4626-token-vault-indexer.mdblog/2023-12-19-envio-community-update-5.mdblog/2024-01-17-envio-empowers-jarvis-network.mdblog/2024-01-31-envio-community-update-6.mdblog/2024-02-12-envio-azuro-developer-grant-multi-chain-open-source-indexer.mdblog/2024-02-20-envio-data-indexing-on-lukso.mdblog/2024-03-01-envio-community-update-7.mdblog/2024-03-27-envio-community-update-8.mdblog/2024-03-27-envio-data-indexing-on-harmony.mdblog/2024-03-28-envio-celebrates-azuro-indexer-grantee.mdblog/2024-04-22-envio-hypersync-powers-data-access-on-fuel-network.mdblog/2024-05-08-envio-community-update-9.mdblog/2024-05-24-case-study-peppy-finance.mdblog/2024-05-30-envio-community-update-may-2024.mdblog/2024-07-01-envio-community-update-june-2024.mdblog/2024-07-17-case-study-gblast.mdblog/2024-07-18-data-indexing-on-fuel.mdblog/2024-08-02-envio-community-update-july-2024.mdblog/2024-08-13-case-study-sablier.mdblog/2024-08-19-building-chaindensity.mdblog/2024-09-02-envio-community-update-aug-2024.mdblog/2024-09-27-case-study-limitless.mdblog/2024-10-02-envio-community-update-sep-2024.mdblog/2024-10-09-case-study-bridgg-op-superchain.mdblog/2024-10-15-ethonline24-envio-hackathon-winners.mdblog/2024-10-29-envio-community-update-oct-2024.mdblog/2024-11-08-hosted-service-v2.mdblog/2024-11-13-how-to-cut-aws-cloud-costs.mdblog/2024-11-26-indexing-and-reorgs.mdblog/2024-11-28-envio-community-update-november-2024.mdblog/2024-12-09-tokenizing-real-world-assets.mdblog/2024-12-18-case-study-zkpass.mdblog/2024-12-24-envio-community-update-december.mdblog/2025-01-21-what-is-a-blockchain-indexer.mdblog/2025-01-30-envio-developer-update-january.mdblog/2025-02-27-envio-dev-update-feb.mdblog/2025-03-17-what-is-multi-chain-indexing.mdblog/2025-03-26-envio-supports-70-networks.mdblog/2025-03-31-envio-dev-update-march-2025.mdblog/2025-04-15-oracle-wars.mdblog/2025-04-25-developer-update-april-2025.mdblog/2025-05-16-monad-hackathon-winners-2025.mdblog/2025-05-29-developer-update-may-2025.mdblog/2025-06-12-how-to-index-monad-data-using-envio.mdblog/2025-06-17-how-to-index-megaeth-data-using-envio.mdblog/2025-06-24-building-visualizers-and-dashboards-on-monad.mdblog/2025-06-24-dev-update-june-2025.mdblog/2025-07-30-dev-update-july-2025.mdblog/2025-08-29-dev-update-august-2025.mdblog/2025-09-30-dev-update-september-2025.mdblog/2025-10-28-dev-update-october-2025.mdblog/2025-11-12-encode-london-2025.mdblog/2025-11-13-metamask-smart-accounts-hackathon-winners.mdblog/2025-11-26-dev-update-november-2025.mdblog/2025-12-16-dev-update-december-2025.mdblog/2025-12-3-migrating-alchemy-subgraphs-to-envio.mdblog/2026-01-28-blockchain-indexer-app-backends.mdblog/2026-01-28-dev-update-january-2026.mdblog/2026-02-25-dev-update-february-2026.mdblog/2026-03-20-agentic-blockchain-indexing.mdblog/2026-03-20-best-blockchain-indexers.mddocs/HyperIndex/supported-networks/tempo.mdpackage.jsonscripts/validate-blog-social-images.jssrc/css/custom.css
Add explicit preview images to the two latest blog posts and normalize inline markdown formatting in the agentic post so local builds/rendering stay stable while preserving content. Made-with: Cursor
Backfill frontmatter image metadata across blog posts and normalize slugs that produced duplicate /blog/blog paths so shared links resolve with the intended cover image. Add build-time validation to enforce valid blog image paths and prevent future social card regressions. Made-with: Cursor
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Prevent static image path traversal in blog social-image validation by enforcing resolved paths remain under static/. Restrict markdown table overflow behavior to mobile breakpoints so desktop table layout is unchanged. Made-with: Cursor
67546e9 to
ab462b0
Compare
Summary
imagefrontmatter across blog posts so shared URLs use explicit cover images/blog/...and produced duplicateblog/blogURL pathsscripts/validate-blog-social-images.jsand wire it intoprebuild/build-llmto prevent regressionsMade with Cursor
Summary by CodeRabbit
Release Notes
New Features
Improvements
Documentation