158 lines
3.4 KiB
Markdown
158 lines
3.4 KiB
Markdown
# Content Guide - MoreminiMore Website
|
|
|
|
## Overview
|
|
|
|
This website uses Astro 6 with Content Collections for managing blog posts and pages.
|
|
|
|
## Content Structure
|
|
|
|
```
|
|
src/content/
|
|
├── blog/
|
|
│ ├── post-1.md
|
|
│ ├── post-2.md
|
|
│ └── ...
|
|
└── config.ts # Content collection definitions
|
|
```
|
|
|
|
## Adding New Blog Posts
|
|
|
|
1. Create a new `.md` file in `src/content/blog/`
|
|
2. Use the frontmatter template below:
|
|
|
|
```markdown
|
|
---
|
|
title: "Your Post Title"
|
|
description: "SEO description for this post"
|
|
pubDate: 2026-04-22
|
|
image: "/images/blog/your-image.jpg"
|
|
tags: ["tag1", "tag2"]
|
|
---
|
|
|
|
Your content here...
|
|
```
|
|
|
|
## Frontmatter Fields
|
|
|
|
| Field | Type | Required | Description |
|
|
|-------|------|----------|-------------|
|
|
| `title` | string | Yes | Post title |
|
|
| `description` | string | Yes | SEO meta description |
|
|
| `pubDate` | Date | Yes | Publication date |
|
|
| `image` | string | Yes | Hero image path (16:9 recommended) |
|
|
| `tags` | string[] | No | Tags for categorization |
|
|
|
|
## Images
|
|
|
|
### Blog Post Images
|
|
- Location: `public/images/blog/`
|
|
- Aspect ratio: 16:9
|
|
- Recommended size: 1200x675px or larger
|
|
- Formats: JPG, PNG, WebP
|
|
|
|
### Service Page Images
|
|
- Location: `public/images/services/`
|
|
- Each service has dedicated images:
|
|
- `hero.jpg` - Hero section
|
|
- `about.jpg` - About section
|
|
- `feature-1.jpg`, `feature-2.jpg`, etc.
|
|
|
|
### Homepage Images
|
|
- Location: `public/images/`
|
|
- `hero-home.jpg` - Main hero
|
|
- `about-home.jpg` - About section
|
|
- `contact-home.jpg` - Contact section
|
|
|
|
## Page Structure
|
|
|
|
### Static Pages
|
|
- `src/pages/index.astro` - Homepage
|
|
- `src/pages/about-us.astro` - About page
|
|
- `src/pages/contact-us.astro` - Contact page
|
|
- `src/pages/faq.astro` - FAQ page
|
|
- `src/pages/portfolio.astro` - Portfolio page
|
|
|
|
### Service Pages
|
|
- `src/pages/web-development.astro`
|
|
- `src/pages/marketing-automation.astro`
|
|
- `src/pages/ai-automation.astro`
|
|
- `src/pages/tech-consult.astro`
|
|
|
|
### Blog
|
|
- `src/pages/blog/index.astro` - Blog listing
|
|
- `src/pages/blog/[slug].astro` - Individual post (dynamic)
|
|
|
|
### Legal
|
|
- `src/pages/privacy-policy.astro`
|
|
- `src/pages/terms-and-conditions.astro`
|
|
|
|
### Admin
|
|
- `src/pages/admin/consent-logs.astro` - Cookie consent logs
|
|
|
|
## Content Collections (Astro DB)
|
|
|
|
### Blog Collection
|
|
```typescript
|
|
const blogCollection = defineCollection({
|
|
type: 'content',
|
|
schema: z.object({
|
|
title: z.string(),
|
|
description: z.string(),
|
|
pubDate: z.date(),
|
|
image: z.string(),
|
|
tags: z.array(z.string()).optional(),
|
|
}),
|
|
});
|
|
```
|
|
|
|
## Adding New Pages
|
|
|
|
1. Create `.astro` file in `src/pages/`
|
|
2. Import and use Layout:
|
|
```astro
|
|
---
|
|
import Layout from '../layouts/Layout.astro';
|
|
---
|
|
<Layout title="Page Title" description="SEO description">
|
|
<main>
|
|
<!-- Your content -->
|
|
</main>
|
|
</Layout>
|
|
```
|
|
|
|
## SEO Best Practices
|
|
|
|
1. **Title**: Keep under 60 characters
|
|
2. **Description**: Keep under 160 characters
|
|
3. **Images**: Always include alt text
|
|
4. **Headings**: Use proper heading hierarchy (h1 → h2 → h3)
|
|
|
|
## Thai Content
|
|
|
|
All content is in Thai language. When adding new content:
|
|
- Use Thai characters
|
|
- Follow Thai writing conventions
|
|
- Include Thai punctuation
|
|
|
|
## Testing Content
|
|
|
|
```bash
|
|
# Run development server
|
|
npm run dev
|
|
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Preview production build
|
|
npm run preview
|
|
```
|
|
|
|
## Content Review Checklist
|
|
|
|
Before publishing:
|
|
- [ ] Proofread Thai content
|
|
- [ ] Check all images load correctly
|
|
- [ ] Verify links work
|
|
- [ ] Test on mobile view
|
|
- [ ] Check page titles and descriptions
|