61 Commits

Author SHA1 Message Date
jbrechtel 7f3769fcd8 feat: add SPINE_ORG env var to override org file path
Add SPINE_ORG environment variable support to scripts/run. When set,
the value is passed as spine-org-file via --eval before loading spine.el.

Usage:
  SPINE_ORG=~/my-books.org ./scripts/run
  SPINE_ORG=/work/personal-local/spine/sample-books.org ./scripts/run localhost:9090

When unset, defaults to ~/spine/books.org (existing behavior).
2026-06-23 22:19:51 -04:00
jbrechtel bbd9a455cd feat: wire book detail page with working shelf/status moves and note posting
- Add spine-move-book: move book between shelves by cutting/pasting headline
- Add spine-set-status: change TODO keyword (WANT/READING/READ/none)
- Add action=shelf and action=status cases to httpd/edit POST handler
- Wrap shelf/status selects in forms with onchange auto-submit to /edit
- Wire note composer as POST form to /edit with action=note
- Redirect all edit POSTs back to /book?id=X
- 7 new tests for move-book and set-status (error handling, property preservation)
2026-06-22 22:38:14 -04:00
jbrechtel cf511ac190 feat: add scripts/restart — stop spine silently then start it 2026-06-22 22:31:41 -04:00
jbrechtel ca03e87a46 refactor: redesign book detail page to match journal mockup styling
- Replace Pico CSS with index-style custom CSS variables
- Redesign layout: back breadcrumb, info table, shelf/status selects
- Update spine-book-model: add shelf_name, format_icon/label, tags_display,
  date display fields, rating display, status/shelf options
- Remove unused fields: meta, progress_label, formats array
- Update spine-book-model-test.el: 23 tests cover all new fields
- Add --text-danger CSS variable for remove button
2026-06-22 22:30:59 -04:00
jbrechtel df1a7aebc9 feat: add book detail view with spine-book-model, httpd/book handler, and title links
- Add spine--format-defs defconst shared between index and book models
- Add spine-book-model with status extraction, format selector, notes, recommendation
- Add templates/book.mustache (Pico CSS, journal-style layout)
- Add httpd/book handler serving the detail page
- Link book titles in index view to /book?id=X
- Add spine-book-model-test.el with 13 tests
2026-06-22 22:15:51 -04:00
jbrechtel c4248dcc89 feat: update HTTP handlers and templates for shelf model 2026-06-21 22:58:52 -04:00
jbrechtel 346fd7af5b feat: update HTTP handlers for shelf model 2026-06-21 22:55:20 -04:00
jbrechtel de057de0bf feat: rewrite spine-index-model for shelf grouping 2026-06-21 22:54:48 -04:00
jbrechtel e9ea0efa35 feat: update spine-add-form-model for shelf list 2026-06-21 22:53:05 -04:00
jbrechtel 6a961b8460 feat: remove spine-set-status, update edit functions for level-2 headlines 2026-06-21 22:52:49 -04:00
jbrechtel 609e168932 feat: adapt spine-add-book for shelf-based nesting 2026-06-21 22:52:00 -04:00
jbrechtel 858fc6c13b feat: add spine-shelves, adapt spine-books for shelf nesting 2026-06-21 22:51:01 -04:00
jbrechtel 6e2a796be9 feat: replace Pico CSS with mockup custom CSS in both templates 2026-06-21 22:03:29 -04:00
jbrechtel 653ee3442d feat: concise view sorts all books by LAST_MODIFIED, add property to sample data 2026-06-21 22:02:12 -04:00
jbrechtel fa6be9ff03 feat: add LAST_MODIFIED property tracked on book creation and edits 2026-06-21 21:58:16 -04:00
jbrechtel c505a3c239 feat: add root-level minibuffer actions and update template 2026-06-21 11:56:05 -04:00
jbrechtel 6e821de7b1 feat: add /edit handler with note prompt page and action dispatch 2026-06-21 11:51:27 -04:00
jbrechtel 719751cc84 feat: add minibuffer actions to spine-index-model for selected books 2026-06-21 11:47:50 -04:00
jbrechtel 95dc4b5db4 feat: add spine-set-status, spine-add-note, spine-set-rating 2026-06-21 11:43:56 -04:00
jbrechtel 8c8b004500 test: add failing tests for spine-set-status, spine-add-note, spine-set-rating 2026-06-21 11:42:28 -04:00
jbrechtel 17f928ffa8 docs: add edit book actions implementation plan 2026-06-21 09:40:16 -04:00
jbrechtel 41a8ba24d1 docs: add edit book actions design spec 2026-06-21 09:38:53 -04:00
jbrechtel 31833bf38e docs: add AGENTS.md with workflow conventions 2026-06-21 09:14:06 -04:00
jbrechtel 439f9d3eed fix: use nil for current_filter when no filter active, fix test 2026-06-21 09:11:20 -04:00
jbrechtel 4cf11fdd02 feat: add filter nav bar and summary group links to index template 2026-06-21 09:09:29 -04:00
jbrechtel 8e07d0efec feat: pass filter query param from index handler to model 2026-06-21 09:09:14 -04:00
jbrechtel 126330c1dc feat: add filter parameter to spine-index-model for concise default view 2026-06-21 09:08:54 -04:00
jbrechtel d00732a8ca test: add failing tests for filtered spine-index-model 2026-06-21 08:46:55 -04:00
jbrechtel fbe49d729b docs: add concise default view design spec 2026-06-21 08:34:58 -04:00
jbrechtel b6b0539b82 test: add tags to Piranesi and Ancillary Justice in sample data 2026-06-21 08:22:13 -04:00
jbrechtel 16bbccf67b fix: use raw defun httpd/add for proper redirect handling 2026-06-21 08:21:53 -04:00
jbrechtel 9259c1139d test: add ERT tests for spine-add-book 2026-06-21 08:19:29 -04:00
jbrechtel da8a20a7e1 feat: wire up /add handler with form model 2026-06-21 08:18:48 -04:00
jbrechtel 9aacccb2ee feat: add spine-add-book write function 2026-06-21 08:18:18 -04:00
jbrechtel a8ecf952c6 feat: add 'Add book' link to index header 2026-06-21 08:16:14 -04:00
jbrechtel a12e57ca9b feat: add add-book form template 2026-06-21 08:15:55 -04:00
jbrechtel 72f2f053a1 docs: add add-book form implementation plan 2026-06-21 08:12:49 -04:00
jbrechtel 62638382ac docs: add add-book form design spec 2026-06-21 08:10:40 -04:00
jbrechtel 7faf0cd8ac feat: render index via Mustache template with spine-index-model 2026-06-21 07:38:32 -04:00
jbrechtel 67e41ad110 docs: add mustache templating implementation plan 2026-06-21 07:37:29 -04:00
jbrechtel c7971eb297 docs: add mustache templating design spec 2026-06-21 07:31:18 -04:00
jbrechtel a6e2c99b62 feat: restyle index page with Pico CSS and emoji glyphs 2026-06-20 17:55:33 -04:00
jbrechtel 112ea4df07 feat: restyle empty-state page with Pico CSS 2026-06-20 17:55:04 -04:00
jbrechtel bbb40efd1a docs: add Pico CSS styling implementation plan 2026-06-20 17:53:47 -04:00
jbrechtel 1ad0631f5b docs: add Pico CSS styling design spec 2026-06-20 17:51:23 -04:00
jbrechtel 24f24620d3 fix: route / to /index, use cadr for query alist, rename lambda t param 2026-06-20 17:02:57 -04:00
jbrechtel 794ef3ffc9 feat: wire up / index handler replacing /hello 2026-06-20 16:59:19 -04:00
jbrechtel 94c310a0b3 feat: add spine-render-index and empty-state view functions 2026-06-20 16:59:06 -04:00
jbrechtel cc74ca5cfa test: add ERT tests for spine-books, fix cl-return-from issue 2026-06-20 16:58:45 -04:00
jbrechtel f25dffa183 feat: add spine-books model function with empty-prop nil handling 2026-06-20 16:57:57 -04:00