viktorvsk f3d33199f0
Some checks failed
CI / Lint & Test (push) Has been cancelled
Deploy Status Page / Build & Deploy (push) Has been cancelled
Волшебная Книга: Russian book storytelling app
- Book-styled UI with parchment aesthetic and Russian navigation
- Characters model with Konva.js 2D canvas drawing (draggable shapes)
- StoryPages model with character association and page navigation
- Stimulus controllers: canvas (editor) + canvas-preview (read-only)
- Full Russian interface: all labels, buttons, flash messages in Russian
2026-04-25 15:29:15 +00:00

71 lines
2.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<% content_for :title, "Волшебная Книга — Главная" %>
<div class="page-card">
<div class="book-cover">
<span class="cover-ornament">✦ ✦ ✦</span>
<h1 class="book-title">Волшебная Книга</h1>
<p class="book-subtitle">Место, где рождаются истории</p>
<div class="section-divider">❧ ❧ ❧</div>
<div class="cover-stats">
<div class="stat-block">
<span class="stat-number"><%= @total_pages %></span>
<span class="stat-label">страниц</span>
</div>
<div class="stat-block">
<span class="stat-number"><%= @characters.count %></span>
<span class="stat-label">персонажей</span>
</div>
</div>
<% if @pages.any? %>
<div class="section-divider">— ◆ —</div>
<h2 class="chapter-title" style="text-align:center">Содержание</h2>
<ul class="page-list">
<% @pages.each_with_index do |page, i| %>
<li>
<%= link_to story_page_path(page), class: "page-list-item" do %>
<span class="page-number">С. <%= i + 1 %></span>
<div>
<strong><%= page.title.presence || "Без названия" %></strong>
<p class="page-excerpt"><%= truncate(page.content, length: 120) %></p>
</div>
<% end %>
</li>
<% end %>
</ul>
<% else %>
<div class="empty-state">
<span class="empty-state-icon">📜</span>
<p>Книга пуста. Начните свою историю!</p>
<%= link_to "✎ Написать первую страницу", new_story_page_path, class: "btn btn-primary" %>
</div>
<% end %>
<% if @characters.any? %>
<div class="section-divider">— ◆ —</div>
<h2 class="chapter-title" style="text-align:center">Персонажи</h2>
<div class="character-grid">
<% @characters.each do |character| %>
<%= link_to character_path(character), class: "character-card" do %>
<% if character.canvas_data.present? %>
<canvas class="character-canvas-preview" data-canvas-data="<%= character.canvas_data %>"></canvas>
<% else %>
<div class="character-canvas-preview" style="display:flex;align-items:center;justify-content:center;font-size:3rem;">🧙</div>
<% end %>
<div class="character-name"><%= character.name %></div>
<% end %>
<% end %>
</div>
<% end %>
<div class="action-row" style="justify-content:center;margin-top:40px;">
<%= link_to "✎ Новая страница", new_story_page_path, class: "btn btn-primary" %>
<%= link_to " Новый персонаж", new_character_path, class: "btn btn-secondary" %>
</div>
</div>
</div>