10 Commits

Author SHA1 Message Date
410eb3a5a8 chore: Add deploy plumbing for the share service
Add a hardened systemd unit, a Caddy reverse-proxy snippet that maps
/fabula/api/* to the loopback service, and Justfile build-server/
deploy-server recipes that build a static binary and ship + restart it.
Includes server/README documenting the API, config, and deploy steps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 02:01:37 +00:00
6461039bd7 refactor: Migrate the app to TypeScript
Convert the React app from JS/JSX to TS/TSX and add type-checking:
- Rename sheet-main, book, BookIndex, CharacterSheet to .ts(x) and
  add types (Fields, Bond, ClassEntry, Spell, CheckMap; loose
  SavedData for abbreviated save/share payloads)
- Add globals.d.ts for CSS imports and the __BOOK_DATA__ global
- tsconfig.json (strict, noEmit) and a 'typecheck' npm script
- webpack: handle ts/tsx via @babel/preset-typescript
- Enforce types with a tracked pre-commit hook (core.hooksPath),
  wired up automatically via the 'prepare' script
- Update stale Justfile format target for the src/ layout

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:51:53 +00:00
17274235ed chore: Fix pipeline 2026-06-08 22:57:36 +00:00
f7574aee21 bug: Update rare weapons tables 2026-06-08 22:13:31 +00:00
74c4fc2c2a chore: Build pipeline for books/core 2026-06-06 23:44:13 +00:00
b4a31d9e56 feat: Combine all core book pages into a single scrollable index.html
Replaces the iframe-based viewer with a self-contained file where each
page is a <section id="page-N">. Navigation (sidebar, prev/next, arrow
keys, URL hash) scrolls to sections instead of loading separate files.
Added build.py to regenerate index.html from the individual page files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 23:08:28 +00:00
c75cd188c1 feat: Add book viewer at /book with shared design system
- Add html/index.html: book viewer with auto-discovering sidebar,
  prev/next navigation, keyboard shortcuts, and URL hash persistence
- Add html/book-page.css: shared stylesheet for all book pages derived
  from fabula-ultima-sheet.css (dark theme, CSS variables, Cinzel/
  Crimson Text fonts, common class styles)
- Add book.js entry point so webpack injects the shared CSS into the
  book viewer; update webpack.config.js for two entry points, split
  CSS chunk, CopyWebpackPlugin for book pages, and /book dev server
  rewrite rule
- Add scripts/strip_watermark.py: removes "Guest Customer (Order
  #52072168)" watermark artifacts from all 210 book pages
- Add scripts/restyle_book.py: strips per-page <style> blocks and
  injects <link rel="stylesheet" href="book-page.css"> into all pages
- Update Justfile deploy to scp -r dist/* for the new /book subtree

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 03:36:35 +00:00
58552b536f chore: Use webpack to build production version 2026-06-05 03:04:58 +00:00
9ade0820d6 chore: Move JS to separate file 2026-06-05 02:06:56 +00:00
75bdf92743 chore: Create Justfile for common tasks 2026-06-05 01:51:21 +00:00