103 lines
4.4 KiB
Plaintext
103 lines
4.4 KiB
Plaintext
@model ManuscriptScanReviewViewModel
|
|
@{
|
|
ViewData["Title"] = "Review manuscript scan";
|
|
}
|
|
|
|
<section class="onboarding-shell" aria-labelledby="scan-review-title">
|
|
<div class="onboarding-panel onboarding-review-panel">
|
|
<div class="onboarding-copy">
|
|
<p class="eyebrow">@Model.SelectedBookTitle</p>
|
|
<h1 id="scan-review-title">Review manuscript scan</h1>
|
|
<p>@Model.DocumentTitle</p>
|
|
</div>
|
|
|
|
<div class="onboarding-scan-counts onboarding-review-counts">
|
|
<div>
|
|
<span>Chapters</span>
|
|
<strong>@Model.ChapterCount</strong>
|
|
</div>
|
|
<div>
|
|
<span>Scenes</span>
|
|
<strong>@Model.SceneCount</strong>
|
|
</div>
|
|
<div>
|
|
<span>Characters</span>
|
|
<strong>@Model.CharacterCandidateCount</strong>
|
|
</div>
|
|
<div>
|
|
<span>Words</span>
|
|
<strong>@Model.TotalWordCount.ToString("N0")</strong>
|
|
</div>
|
|
</div>
|
|
|
|
<section class="onboarding-review-grid" aria-label="Scan preview">
|
|
<div class="onboarding-review-section">
|
|
<h2>Chapters and scenes</h2>
|
|
@if (!Model.Chapters.Any())
|
|
{
|
|
<p>No chapters were detected. Make sure your chapter headings use Heading 1, or add clear chapter headings.</p>
|
|
}
|
|
else
|
|
{
|
|
<div class="onboarding-review-chapters">
|
|
@foreach (var chapter in Model.Chapters)
|
|
{
|
|
<article class="onboarding-review-chapter">
|
|
<header>
|
|
<span>Chapter @chapter.ChapterNumber</span>
|
|
<strong>@chapter.Title</strong>
|
|
<small>@chapter.WordCount.ToString("N0") words / @chapter.Scenes.Count scene@(chapter.Scenes.Count == 1 ? string.Empty : "s")</small>
|
|
</header>
|
|
@if (chapter.Scenes.Any())
|
|
{
|
|
<ol>
|
|
@foreach (var scene in chapter.Scenes)
|
|
{
|
|
<li>
|
|
<strong>@(scene.Title ?? $"Scene {scene.SceneNumberWithinChapter}")</strong>
|
|
<span>@scene.WordCount.ToString("N0") words</span>
|
|
@if (!string.IsNullOrWhiteSpace(scene.OpeningTextPreview))
|
|
{
|
|
<p>@scene.OpeningTextPreview</p>
|
|
}
|
|
</li>
|
|
}
|
|
</ol>
|
|
}
|
|
else
|
|
{
|
|
<p>No scene breaks were detected. PlotDirector will treat this chapter as one scene for now.</p>
|
|
}
|
|
</article>
|
|
}
|
|
</div>
|
|
}
|
|
</div>
|
|
|
|
<aside class="onboarding-review-section">
|
|
<h2>Character candidates</h2>
|
|
@if (!Model.CharacterCandidates.Any())
|
|
{
|
|
<p>No repeated character names were found yet.</p>
|
|
}
|
|
else
|
|
{
|
|
<ul class="onboarding-character-candidates">
|
|
@foreach (var candidate in Model.CharacterCandidates)
|
|
{
|
|
<li>
|
|
<strong>@candidate.Name</strong>
|
|
<span>@candidate.MentionCount mention@(candidate.MentionCount == 1 ? string.Empty : "s")</span>
|
|
</li>
|
|
}
|
|
</ul>
|
|
}
|
|
</aside>
|
|
</section>
|
|
|
|
<div class="onboarding-actions">
|
|
<a class="btn btn-outline-secondary" asp-controller="Onboarding" asp-action="Index">Back to setup</a>
|
|
</div>
|
|
</div>
|
|
</section>
|