Archive blog section proposal and update main specs. Specs created: - openspec/specs/blog-content/ - openspec/specs/blog-templates/ Archived to: openspec/changes/archive/2025-10-31-add-blog-section/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.8 KiB
blog-content Specification
Purpose
TBD - created by archiving change add-blog-section. Update Purpose after archive.
Requirements
Requirement: Blog Section Organization
Blog posts SHALL be organized in a dedicated content/blog/ directory following Hugo's content organization conventions.
Scenario: Blog section exists in content directory
Given the Hugo site structure
When examining the content directory
Then a content/blog/ directory SHALL exist
And section index files _index.de.md and _index.en.md SHALL exist in content/blog/
And these index files SHALL contain appropriate front matter (title, description)
Scenario: Blog posts use page bundles
Given a blog post to be published
When adding the post to the site
Then the post SHALL be organized as a page bundle (directory with index.de.md or index.en.md)
And the bundle directory name SHALL be URL-friendly (lowercase, hyphens, no special characters)
And any post-specific assets (images, files) CAN be stored within the bundle directory
Requirement: Blog Post Front Matter
Each blog post SHALL include properly structured front matter with essential metadata.
Scenario: Blog post front matter is complete
Given a blog post markdown file
When the post is processed by Hugo
Then the front matter SHALL include a title field
And the front matter SHALL include a date field in ISO 8601 format (YYYY-MM-DD)
And the front matter MAY include a description or summary field for excerpts
And the front matter MAY include a draft field to control publication status
Scenario: First blog post is ready
Given the Notion article "KI Generierte Website - ein Praxisbeispiel"
When converting it to Hugo format
Then a blog post SHALL exist at content/blog/ki-generierte-website-praxisbeispiel/index.de.md
And the post SHALL contain the full article content from Notion
And the front matter SHALL include title "KI Generierte Website - ein Praxisbeispiel"
And the front matter SHALL include an appropriate publication date
Requirement: Multilingual Blog Support
Blog content SHALL support both German and English following the site's internationalization pattern.
Scenario: Blog section metadata is multilingual
Given the blog section
When accessing the blog in different languages
Then content/blog/_index.de.md SHALL exist with German metadata
And content/blog/_index.en.md SHALL exist with English metadata
And both SHALL have appropriate translated titles and descriptions
Scenario: Blog posts can exist in multiple languages
Given a blog post
When translations are available
Then the post MAY have both index.de.md and index.en.md in the same bundle
And Hugo SHALL serve the appropriate language version based on the URL path
And language switching SHALL work between translated blog posts
Requirement: Content Formatting
Blog post content SHALL be written in Markdown with proper formatting support.
Scenario: Markdown content renders correctly
Given a blog post with Markdown content When Hugo processes the post Then headings (H1-H6) SHALL be rendered correctly And paragraphs, lists, and emphasis SHALL be formatted properly And code blocks with syntax highlighting SHALL be supported And links and images SHALL be rendered correctly And HTML content SHALL be allowed (Hugo's unsafe renderer is enabled in config)
Scenario: Special characters and formatting are preserved
Given blog post content with German special characters (ä, ö, ü, ß) When the post is rendered Then all special characters SHALL display correctly And quotation marks and em dashes SHALL be preserved And UTF-8 encoding SHALL be maintained throughout