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>
This commit is contained in:
2026-06-06 03:36:35 +00:00
parent 58552b536f
commit c75cd188c1
220 changed files with 12685 additions and 10 deletions

36
html/13.html Normal file
View File

@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Natural Fantasy Guidelines</title>
<link rel="stylesheet" href="book-page.css">
</head>
<body>
<h1>A RAW BEAUTY</h1>
<p>The natural fantasy style relies on a careful balance between moments of calm, serenity and beauty, alternating with moments of raw and direct contact with the inevitable facts of life. Neither of these aspects can be sacrificed: keeping only the first means presenting a false and “sanitized” version of nature; keeping only the second leads to self-indulging morbidity.</p>
<div class="note">
<p>This doesnt mean that you have to include explicit or particularly gory descriptions. On the contrary, discussing how to handle scenes of violence and death is paramount, especially when they involve people or animals (see Core Rulebook, page 147).</p>
</div>
<h2 class="section-header">THE HUNT</h2>
<p>Killing other living creatures to protect your community or provide resources is a common theme of natural fantasy and should be handled with care.</p>
<ul>
<li><strong>Never minimize.</strong> Be it that of an animal, a plant, a person, or a spirit, death is a significant event that should be dignified. It should never be cold or systematic, especially in a natural fantasy game, where it should have ecological, emotional or spiritual consequences. As explained on page 86 of the Core Rulebook, there is no obligation to kill an enemy reduced to 0 Hit Points. It is a choice.</li>
<li><strong>Never demonize.</strong> If necessity demands it and proper respect is shown for the consequences, killing another creature to save lives, protect the ecosystem, or transform their body into nourishment, tools or instruments is an integral part of the cycle of life, not a violation.</li>
</ul>
<h2 class="section-header">EVERY LIFE MATTERS</h2>
<p>Even when the world revolves around the cyclical return of every lifeform to the stream of souls (one of the Eight Pillars of Fabula Ultima, as shown on page 9), one should never downplay the value of life. While its true that life (as a form of energy) lasts for eternity across countless incarnations, this life (the memories, personality, and feelings of a specific individual) is unique and irreplaceable, and the moment it leaves us should never not be seen as a tragedy.</p>
<div class="start-note">
<h3>BEFORE WE START</h3>
<p><em>(Note: The following text appeared in the raw source but was separated from the main document flow.)</em></p>
</div>
</body>
</html>