69 lines
3.8 KiB
Markdown
69 lines
3.8 KiB
Markdown
# 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)
|
|
|
|
```text
|
|
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)
|
|
|
|
```text
|
|
.
|
|
├── 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.
|
|
|
|
|