Commit Graph

4 Commits

Author SHA1 Message Date
Jeff Emmett da39ee7751 Remove duplicate featured images from blog content
- Add removeLeadingImage() to strip the first image from content when it matches
  the featured image, preventing duplication on blog post pages
- Handles figure wraps, linked images, and standalone img tags
- Featured image now appears only once (in the header), not repeated in content

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:54:31 +00:00
Jeff Emmett 64da557836 Convert WordPress [caption] shortcodes to proper HTML figures
- Add convertCaptionShortcodes() to transform [caption]...[/caption] into
  <figure class="wp-caption"> with <figcaption>
- Handle both plain images and linked images (wrapped in <a> tags)
- Add CSS styling for figure captions in prose content
- All 17 posts with captions now display properly

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:59:15 +00:00
Jeff Emmett 204679b740 Fix blog excerpt rendering: remove shortcodes and decode HTML entities
- Add decodeExcerptEntities() to handle &mdash;, &hellip;, smart quotes, etc.
- Add removeShortcodes() to strip [caption] and other WordPress shortcodes
- Regenerate blog-posts.json and pages.json with cleaned excerpts

Fixes issue where [caption] tags and raw HTML entities appeared in blog listings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:46:20 +00:00
Jeff Emmett 1d0dfc342e feat: Add blog system with 72 posts from Squarespace export
- Parse Squarespace WordPress XML export and extract all blog posts
- Create blog listing page with posts grouped by year
- Create individual blog post pages with full content
- Add social sharing, prev/next navigation, related posts
- Configure Next.js for Squarespace CDN images
- Add Tailwind typography plugin for prose styling
- Include 357 artwork thumbnails from Airtable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 01:23:12 +00:00