Add blog via Astro content collections #19

Merged
Latte merged 1 commits from feature/blog into dev 2026-03-02 18:19:18 +00:00
Owner

Introduce blog support: content collection schema, listing and post
routes, and a sample Markdown post. Update docs and TODO; add blog
assets dir and adjust color variables in docs. Also set
absolute_redirect off in nginx.conf for container routing.

Description

Changes

  • ...

Related Issues

Checklist

  • I have tested my changes locally
  • Linting passes (make lint)
  • Tests pass (make test)
  • Documentation updated (if applicable)
  • No secrets or credentials are committed
Introduce blog support: content collection schema, listing and post routes, and a sample Markdown post. Update docs and TODO; add blog assets dir and adjust color variables in docs. Also set absolute_redirect off in nginx.conf for container routing. ## Description <!-- What does this PR do? Why is it needed? --> ## Changes - [ ] ... ## Related Issues <!-- Link related issues: Closes #123, Fixes #456 --> ## Checklist - [ ] I have tested my changes locally - [ ] Linting passes (`make lint`) - [ ] Tests pass (`make test`) - [ ] Documentation updated (if applicable) - [ ] No secrets or credentials are committed
Latte added 1 commit 2026-03-02 18:15:31 +00:00
Add blog via Astro content collections
CI / ci (push) Successful in 26s
CI / ci (pull_request) Successful in 27s
Docker / docker (pull_request) Successful in 15s
Enterprise AI Code Review / ai-review (pull_request) Successful in 1m53s
Security / security (pull_request) Successful in 6s
077cc06d75
Introduce blog support: content collection schema, listing and post
routes, and a sample Markdown post. Update docs and TODO; add blog
assets dir and adjust color variables in docs. Also set
absolute_redirect off in nginx.conf for container routing.
Owner

📋 Pull Request Summary

Adds a static blog powered by Astro Content Collections, including a content schema, a dynamic post page, and a first Markdown post. Also updates documentation and configuration (colors, instructions, TODOs) and makes small deployment/nginx adjustments.

Type: 🔀 Mixed

Changes

Added:

  • src/content/config.ts — Astro Content Collections schema for 'blog' (title, date, description, draft)
  • src/pages/blog/[...slug].astro — Dynamic page to render individual blog posts with styling and grid background
  • src/content/blog/love-without-access.md — First blog post in Markdown
  • Documentation snippets and instructions in DEVELOPMENT.md / README.md describing blog structure and how to add posts

📝 Modified:

  • DEVELOPMENT.md — updated project tree, color palette, page section descriptions, blog authoring instructions, and feature checklist
  • README.md — updated palette name, docker run port (3000 -> 80), and blog usage notes
  • TODO.md — marks blog as implemented and adjusts related items
  • nginx.conf — adds absolute_redirect off;

Files Affected

  • src/content/config.ts - New content collection definition for 'blog' using zod schema: title, date (coerced), description, optional draft flag.
  • src/pages/blog/[...slug].astro - New dynamic blog post page: builds static paths for non-draft posts, renders Markdown content via post.render() and Content component, includes prose styles and a subtle animated grid background.
  • src/content/blog/love-without-access.md - New Markdown blog post (full content, frontmatter: title, date, description).
  • 📝 DEVELOPMENT.md - Updated developer docs and project tree to include the blog structure, new color palette (Catppuccin Mocha variables), detailed blog authoring and image placement instructions, and adjusted list of site sections.
  • 📝 README.md - Docs update: palette renamed to Catppuccin Mocha, added blog feature notes, changed docker run mapping to publish container port 80 to host 3000.
  • 📝 TODO.md - Task list updated to mark the blog/collections as implemented and to add/adjust related checklist items (RSS noted as still open).
  • 📝 nginx.conf - Small nginx config change: adds absolute_redirect off; (affects redirect behavior when serving static site).

Impact

🟡 Scope: Medium
Introduces a new blog feature with content schema and rendering pipeline which affects build-time content collection behavior and site routes. Documentation and developer guides were updated accordingly. Visual/theme variables changed (may alter site appearance), and the Docker run instructions / nginx setting modify deployment behavior (note docker port mapping changed and absolute_redirect added). Reviewers should verify build, routing (/blog and individual posts), CSS variable usage, and deployment port assumptions.

## 📋 Pull Request Summary Adds a static blog powered by Astro Content Collections, including a content schema, a dynamic post page, and a first Markdown post. Also updates documentation and configuration (colors, instructions, TODOs) and makes small deployment/nginx adjustments. **Type:** 🔀 Mixed ## Changes **✅ Added:** - src/content/config.ts — Astro Content Collections schema for 'blog' (title, date, description, draft) - src/pages/blog/[...slug].astro — Dynamic page to render individual blog posts with styling and grid background - src/content/blog/love-without-access.md — First blog post in Markdown - Documentation snippets and instructions in DEVELOPMENT.md / README.md describing blog structure and how to add posts **📝 Modified:** - DEVELOPMENT.md — updated project tree, color palette, page section descriptions, blog authoring instructions, and feature checklist - README.md — updated palette name, docker run port (3000 -> 80), and blog usage notes - TODO.md — marks blog as implemented and adjusts related items - nginx.conf — adds `absolute_redirect off;` ## Files Affected - ➕ `src/content/config.ts` - New content collection definition for 'blog' using zod schema: title, date (coerced), description, optional draft flag. - ➕ `src/pages/blog/[...slug].astro` - New dynamic blog post page: builds static paths for non-draft posts, renders Markdown content via post.render() and Content component, includes prose styles and a subtle animated grid background. - ➕ `src/content/blog/love-without-access.md` - New Markdown blog post (full content, frontmatter: title, date, description). - 📝 `DEVELOPMENT.md` - Updated developer docs and project tree to include the blog structure, new color palette (Catppuccin Mocha variables), detailed blog authoring and image placement instructions, and adjusted list of site sections. - 📝 `README.md` - Docs update: palette renamed to Catppuccin Mocha, added blog feature notes, changed docker run mapping to publish container port 80 to host 3000. - 📝 `TODO.md` - Task list updated to mark the blog/collections as implemented and to add/adjust related checklist items (RSS noted as still open). - 📝 `nginx.conf` - Small nginx config change: adds `absolute_redirect off;` (affects redirect behavior when serving static site). ## Impact 🟡 **Scope:** Medium Introduces a new blog feature with content schema and rendering pipeline which affects build-time content collection behavior and site routes. Documentation and developer guides were updated accordingly. Visual/theme variables changed (may alter site appearance), and the Docker run instructions / nginx setting modify deployment behavior (note docker port mapping changed and absolute_redirect added). Reviewers should verify build, routing (/blog and individual posts), CSS variable usage, and deployment port assumptions.
Owner

AI Code Review

AI review encountered an error: Failed to parse JSON response: '{\n "summary": "Adds an Astro content-driven blog (content collection, a post, and dynamic post page) plus documentation updates and minor nginx/docker doc changes. The implementation mostly follows Astro patterns, but there are some correctness and operational issues (notably the catch-all route static paths), a few deployment/documentation mismatches, missing tests, and some small performance/security considerations for rendering Markdown and a background animation.",\n "overall_severity": "HI...'

Summary

Severity Count
HIGH 0
MEDIUM 0
LOW 0

Overall Severity: UNKNOWN
AI Recommendation: Changes Requested

<!-- AI_PR_REVIEW --> ## AI Code Review AI review encountered an error: Failed to parse JSON response: '{\n "summary": "Adds an Astro content-driven blog (content collection, a post, and dynamic post page) plus documentation updates and minor nginx/docker doc changes. The implementation mostly follows Astro patterns, but there are some correctness and operational issues (notably the catch-all route static paths), a few deployment/documentation mismatches, missing tests, and some small performance/security considerations for rendering Markdown and a background animation.",\n "overall_severity": "HI...' ### Summary | Severity | Count | |----------|-------| | HIGH | 0 | | MEDIUM | 0 | | LOW | 0 | --- **Overall Severity:** `UNKNOWN` **AI Recommendation:** Changes Requested
Latte merged commit 3a40c6560c into dev 2026-03-02 18:19:18 +00:00
Latte deleted branch feature/blog 2026-03-02 18:19:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Hiddenden/Cozy-Den#19