Add book catalog example with global/local template system

Features:
- Global template configuration (sqlite_global_templates directive)
- Template path resolution relative to location
- Automatic template loading from directories
- Local templates override global templates
- Content handler installation via directive setter

Book Catalog Example:
- Complete working example with 10 technical books
- SQLite database with setup script
- 4 browseable pages (all, programming, databases, computer-science)
- Shared global templates (header, footer, book_card partial)
- Category-specific local templates with unique theming
- Responsive gradient UI design
- Working navigation and filtering

Configuration:
- sqlite_global_templates: HTTP main-level directive for shared templates
- sqlite_template: Location-level directive (sets content handler)
- Template resolution: {doc_root}{uri}/{template_name}
- All .hbs files in directories auto-loaded as partials

Technical improvements:
- Fixed content handler setup (not phase handler)
- Proper HttpModuleMainConf and HttpModuleLocationConf traits
- Template directory scanning and registration
- Error handling with debug logging
This commit is contained in:
Edward Langley
2025-11-15 14:52:39 -08:00
parent 63fbee6694
commit 9132d7485d
15 changed files with 1002 additions and 28 deletions

View File

@ -9,10 +9,14 @@ events {}
error_log logs/error.log debug;
http {
# Optional: Global templates directory for shared partials/layouts
# sqlite_global_templates "server_root/global_templates";
server {
listen 8080;
location / {
root "server_root";
location /people {
add_header "Content-Type" "text/html";
sqlite_db "db.sqlite3";
sqlite_query "SELECT id, name, address FROM person";