Files
StarPunk/docs/DOCUMENTATION.md
Phil Skentelbery 372064b116 feat(tags): Add tag archive route and admin interface integration
Implement Phase 3 of v1.3.0 tags feature per microformats-tags-design.md:

Routes (starpunk/routes/public.py):
- Add /tag/<tag> archive route with normalization and 404 handling
- Pre-load tags in index route for all notes
- Pre-load tags in note route for individual notes

Admin (starpunk/routes/admin.py):
- Parse comma-separated tag input in create route
- Parse tag input in update route
- Pre-load tags when displaying edit form
- Empty tag field removes all tags

Templates:
- Add tag input field to templates/admin/edit.html
- Add tag input field to templates/admin/new.html
- Use Jinja2 map filter to display existing tags

Implementation details:
- Tag URL parameter normalized to lowercase before lookup
- Tags pre-loaded using object.__setattr__ pattern (like media)
- parse_tag_input() handles trim, dedupe, normalization
- All existing tests pass (micropub categories, admin routes)

Per architect design:
- No pagination on tag archives (acceptable for v1.3.0)
- No autocomplete in admin (out of scope)
- Follows existing media loading patterns

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-10 11:42:16 -07:00

2.4 KiB

PURPOSE

This document describes how documentation in this folder should be organized and supersedes any other instructions.

FOLDERS

ARCHITECTURE

The architecture folder should contain documentation reflecting the current design of the system and should be updated at the end of each release to ensure it is current.

DECISIONS

This folder contains any architectural decisions, documented as ADRs.

  • Format: ADR-NNN-brief-title.md (numbered sequentially)
  • Create an ADR when making architectural decisions, choosing between technical approaches, or establishing patterns

DESIGN

This folder is used by the architect to document implementation designs to be handed off to the developer. These designs should be sorted into subfolders reflecting the semantic version number of the release in question (e.g., v1.0.0/, v1.1.1/).

All developer interaction belongs in the appropriate version subfolder:

  • Implementation designs and specifications
  • Developer questions to the architect
  • Architect responses
  • Implementation reports (format: YYYY-MM-DD-description.md)
  • Implementation reviews

PROJECTPLAN

This folder contains documents relating to the future state of the project. There should be a single BACKLOG.md file that lists future features by priority as well as bugs (which are assumed to be high priority). Items in this file can have one of the following priorities:

  • Critical - Items that break existing functionality
  • High
  • Medium
  • Low

In addition to the backlog file each version should have a folder named for its semantic version with a RELEASE.md file which lists the features and bugs to be addressed in that release.

STANDARDS

Includes any standards written by the architect that the developer needs to reference during development. Any deprecated standards should be moved to the DEPRECATED subfolder when appropriate.

WHERE TO FIND DOCUMENTATION

  • Before implementing a feature: Check decisions/ for relevant ADRs and design/{version}/ for specifications
  • Understanding system architecture: Start with architecture/
  • Coding guidelines: See standards/
  • Past implementation context: Review design/{version}/ for similar work
  • Project roadmap and scope: Refer to projectplan/

KEY REFERENCES

  • Architecture: architecture/
  • Coding Standards: standards/python-coding-standards.md
  • Testing: standards/testing-checklist.md
  • Project Backlog: projectplan/BACKLOG.md