Files
cv-site/doc
juanatsap 12bd9c7cd8 feat: enhance PDF export with 4 customizable parameters
Add comprehensive parameter support to /export/pdf endpoint:
- lang: Language selection (en/es)
- length: CV length (short/long)
- icons: Icon visibility (show/hide)
- version: Theme variant (extended/clean)

Backend Changes:
- Enhanced PDF generator with cookie injection for user preferences
- Cookies set before chromedp navigation to apply all preferences
- Updated filename pattern: CV-{Name}-{lang}-{length}-{version}.pdf
- Comprehensive parameter validation with descriptive error messages
- All parameters optional with sensible defaults (en, short, show, extended)

Testing:
- Added pdf_test.go with parameter validation tests
- Tests cover all valid/invalid parameter combinations
- Tests verify default parameter application

Documentation:
- Updated API documentation (doc/3-API.md)
- Added detailed parameter descriptions and examples
- Updated quick reference with all parameter options
- Added process flow diagram showing cookie injection
- Documented error responses for each invalid parameter

Implementation Details:
- Cookie domain set to "localhost" for chromedp context
- Cookies: cv-language, cv-length, cv-icons, cv-theme
- PDF generation leverages existing @media print CSS
- No changes to frontend CSS or templates

Tested:
- Parameter validation ( All invalid params rejected correctly)
- Default parameters ( Applied when params omitted)
- PDF generation with all parameter combinations ( Working)
2025-11-19 10:43:19 +00:00
..

CV Project Documentation

Complete documentation for the Go + HTMX CV website project.


📚 Quick Navigation

For Developers

Getting Started

Technical Implementation

Deployment & Operations


For Users & Customizers


📖 Documentation Overview

Core Technical Documentation

# Document Purpose Audience
1 ARCHITECTURE.md Go backend architecture, package structure, design patterns Backend developers
2 MODERN-WEB-TECHNIQUES.md HTMX/Hyperscript frontend architecture, component patterns, ADRs Frontend developers
3 API.md Complete API reference with all endpoints API consumers, integrators
4 HYPERSCRIPT-RULES.md Hyperscript coding conventions Frontend developers
5 ZOOM_IMPLEMENTATION.md Zoom feature implementation details Feature developers

User & Operations Documentation

# Document Purpose Audience
6 USER_GUIDE.md End-user feature documentation CV users
7 CUSTOMIZATION.md Content and style customization CV customizers
8 DEPLOYMENT.md Deployment instructions and operations DevOps, site operators
9 SECURITY.md Security policies and reporting Security teams
10 PRIVACY.md Privacy policy and data handling Legal, compliance

🏗️ Architecture Quick Reference

Backend: Go (Hono-inspired routing)

  • Clean package structure (internal/ pattern)
  • Template caching and rendering
  • JSON-based CV data model
  • Middleware: logging, security headers, CORS

Frontend: HTMX + Hyperscript + Vanilla CSS

  • Hypermedia-driven architecture (minimal JavaScript)
  • Server-side rendering with HTMX partial updates
  • Declarative behaviors with Hyperscript
  • Component-level skeleton loaders
  • Light/dark/auto color themes

Key Features:

  • Custom zoom control (25%-175%)
  • Bilingual support (English/Spanish)
  • Keyboard shortcuts (L/I/V/?)
  • Print-optimized CSS
  • Mobile responsive
  • Accessibility (WCAG AA compliance)

🎯 Common Tasks

"I want to..."

...understand the system architecture → Start with 1-ARCHITECTURE.md (backend) and 2-MODERN-WEB-TECHNIQUES.md (frontend)

...add a new feature → Read 2-MODERN-WEB-TECHNIQUES.md for frontend patterns, 3-API.md for backend APIs

...customize my CV content → Follow 7-CUSTOMIZATION.md for content and styling changes

...deploy to production → Use 8-DEPLOYMENT.md for step-by-step deployment instructions

...understand HTMX patterns → Check 2-MODERN-WEB-TECHNIQUES.md Section 6 (HTMX Patterns)

...write Hyperscript code → Follow conventions in 4-HYPERSCRIPT-RULES.md

...report a security issue → See 9-SECURITY.md for responsible disclosure process


📦 Archive

Historical documentation (bug fixes, testing reports, implementation notes) is stored in archive/ for reference. These documents are not actively maintained but preserved for historical context.


🔗 External Resources


📝 Documentation Standards

All documentation in this project follows these standards:

  • Markdown format with GitHub-flavored syntax
  • Clear structure with table of contents for long documents
  • Code examples with syntax highlighting
  • Up-to-date reflecting current implementation
  • Versioned via Git with meaningful commit messages

Last Updated: 2025-11-18 Documentation Status: Clean, organized, zero redundancy Total Active Docs: 11 core documents + archive