prosberry/specs/001-add-blog/plan.md

3.8 KiB

Implementation Plan: Add Blog "Medkulturni kotiček"

Branch: 001-add-blog | Date: 2025-11-17 | Spec: /Users/markpoljansek/prosberry_produkcija/specs/001-add-blog/spec.md Input: Feature specification from /specs/001-add-blog/spec.md

Note: This template is filled in by the /speckit.plan command. See .specify/templates/commands/plan.md for the execution workflow.

Summary

The project aims to expand the existing static website prosberry.si by adding a new blog section called "Medkulturni kotiček". This blog will dynamically display articles, with the newest article prominently featured, followed by three recent articles, and an archive list. A key aspect is the automation of content management, allowing the website owner to easily add new articles by simply creating HTML files with embedded JSON metadata and running a Bash script (posodobi_blog.sh). This script will generate the main blog page, ensuring chronological sorting and consistent styling. The website's main navigation will also be updated to include a "Blog" link.

Technical Context

Language/Version: Bash/Shell (for posodobi_blog.sh), HTML, CSS, JavaScript (for existing main.js).
Primary Dependencies: jq (for posodobi_blog.sh).
Storage: Filesystem (HTML files for articles, generated index.html).
Testing: Bats-core for posodobi_blog.sh unit tests; HTML/CSS/JS Linting/Validation and Link Checking for static pages.
Target Platform: Web browsers (static website). Project Type: Web application (static site generation).
Performance Goals: posodobi_blog.sh generates blog/index.html within 5 seconds for up to 100 articles. All blog pages load within 2 seconds on a standard broadband connection.
Constraints: Easy and automated article addition for the owner. Styling must be consistent with existing site. Blog layout must be fully responsive.
Scale/Scope: Blog section with dynamic article display. Automated content generation for articles. Navigation update.

Constitution Check

GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.

No specific gates defined in the project's constitution yet. Assuming no violations for now.

Project Structure

Documentation (this feature)

specs/[###-feature]/
├── plan.md              # This file (/speckit.plan command output)
├── research.md          # Phase 0 output (/speckit.plan command)
├── data-model.md        # Phase 1 output (/speckit.plan command)
├── quickstart.md        # Phase 1 output (/speckit.plan command)
├── contracts/           # Phase 1 output (/speckit.plan command)
└── tasks.md             # Phase 2 output (/speckit.tasks command - NOT created by /speckit.plan)

Source Code (repository root)

.
├── blog/
│   ├── index.html # AUTO-GENERATED
│   ├── template.html
│   └── clanki/
│       └── YYYY-MM-DD-naslov-clanka.html
├── posodobi_blog.sh
├── assets/
│   └── images/
│       └── blog/ # New directory for blog images
├── css/
│   └── style.css # Modified
├── header-template.html # Modified
├── footer-template.html # Modified
├── js/
│   └── main.js # Existing, potential minor modifications
└── ... (other existing files and directories)

Structure Decision: The project will follow a single project structure, with new directories and files specifically for the blog feature integrated into the existing website structure. The blog/ directory will house the blog's main page, template, and individual article files. A new script posodobi_blog.sh will reside in the root. Existing css/style.css, header-template.html, and footer-template.html will be modified.