Commit Graph

8 Commits

Author SHA1 Message Date
Kunthawat Greethong
e921b82d9e Fix: remove client:load from LiveSearch (Astro component, not framework) 2026-05-01 14:31:30 +07:00
Kunthawat Greethong
51b50212ca Add combined blog+marketing+portfolio template
- Added blog pages: posts index, post detail, category/tag archives, search, RSS
- Added BlogBase layout with Source Serif 4 font
- Added PostCard and TagList components
- Added utility functions: reading-time, site-identity
- Added posts collection with taxonomies to seed
- Updated menus with all sections: Home, Posts, Work, Pricing, Contact
- Added blog seed content: 3 posts with bylines
2026-05-01 13:50:52 +07:00
Kunthawat Greethong
978bf42e5a Add portfolio template to combined marketing+portfolio template
- Added portfolio pages: portfolio-index, portfolio-about, portfolio-contact
- Added work/[slug].astro for project detail pages
- Added PortfolioBase.astro layout with Playfair Display font
- Added ProjectCard.astro component
- Added projects collection with taxonomies (category, tag)
- Updated theme.css with --font-serif variable
- Added portfolio seed data with 4 projects
- Updated menus to include Work link
2026-05-01 13:22:24 +07:00
Kunthawat Greethong
9147821a16 fix: add optional chaining to all .map() calls in MarketingBlocks
The error "Cannot read properties of undefined (reading 'map')"
indicates some block fields are undefined. Added optional chaining
(?.) to all nested .map() calls for features, testimonials,
plans, and items arrays.

Also renamed prop from 'value' to 'blocks' and added check
for pageContent.length > 0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 12:40:16 +07:00
Kunthawat Greethong
d6868da01b fix: use EmDashHead page prop correctly (matching official template)
Official template uses: <EmDashHead page={pageCtx} />
Not: <EmDashHead emdash={...} pageContext={...} />

Also removed Font component from imports (causes esbuild parse error)
and uses Google Fonts link tag instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 12:32:40 +07:00
Kunthawat Greethong
3b1a3319b7 fix: add kysely dependency (required by emdash db driver)
EmDash's SQLite dialect uses kysely internally. Without it,
runtime throws "Cannot find module 'kysely'" error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 11:04:05 +07:00
Kunthawat Greethong
b6e76cc98b fix: remove Font component and fontProviders (esbuild parse error)
The Font component with spread syntax caused esbuild parse error
at Base.astro line 64. Replaced with direct Google Fonts link tag.

Also removed fonts[] array from astro.config.mjs since we're
loading Inter via <link> tag instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-01 10:18:59 +07:00
Kunthawat Greethong
065d92636a feat: add official EmDash marketing template
- Marketing landing page with hero, features, testimonials, FAQ, pricing
- EmDash CMS with pages collection and marketing blocks
- Full seed data with all content sections
- Dockerfile with entrypoint for database persistence
- Responsive design with CSS variables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-30 20:58:06 +07:00