Commit Graph

17 Commits

Author SHA1 Message Date
6a7e988ca0 bug: Remove extraneous pages in books/core 2026-06-06 23:33:41 +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
1de1377033 bug: Pages numbered correctly in books/core 2026-06-06 22:44:37 +00:00
75c6ab9975 feat: Add core rules 2026-06-06 13:03:00 +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
41bbb7a44b chore: Format code with Prettier 2026-06-05 02:41:10 +00:00
a9dc508940 chore: Add Node.js .gitignore
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 02:38:42 +00:00
32991843d8 perf: Minify JSON save keys to reduce serialized state size
Replace verbose key names with short identifiers in collectData/applyData
(e.g. name→n, zenit→z, heroicSkills→hs). Nested bond, class, and spell
objects are mapped at the boundary so in-memory state and rendering code
are unchanged. applyData uses ?? fallbacks to remain compatible with data
saved under the old key names.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 02:36:13 +00:00
52ee6ea26b feat: Add Manage page, light/dark theme toggle, and URL sharing
- Move Save, Load, Export, Import buttons to a dedicated Manage page
- Add light theme with warm parchment palette; auto-detect via prefers-color-scheme, persisted to localStorage
- Add URL sharing: sheet state is deflate-raw compressed, base64-encoded, and stored in ?c= parameter; auto-save is suppressed when viewing a shared URL
- Extract JS to fabula-ultima-sheet.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 02:28:12 +00:00
9ade0820d6 chore: Move JS to separate file 2026-06-05 02:06:56 +00:00
74efbe9c1b feat: Light theme 2026-06-05 02:00:54 +00:00
75bdf92743 chore: Create Justfile for common tasks 2026-06-05 01:51:21 +00:00
d22393771a chore: Split out CSS 2026-06-05 01:48:25 +00:00
49f1419bc1 chore: Formatting 2026-06-05 01:42:05 +00:00
bc57e4d883 feat: Add import/export buttons 2026-06-04 02:08:18 +00:00
54e481ab62 Initial commit: Fabula Ultima HTML character sheet
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 02:04:41 +00:00