chore: archive completed OpenSpec change add-blog-section
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>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user