Storyline: chapter structure + formatted Campaign Overview
The Storyline section is now a set of hand-written chapters. /storyline
lists them; /storyline/{slug} renders one inside a shell with a sticky
chapter nav and prev/next pager. Chapters are declared in
StorylineController::CHAPTERS, each pointing at a Twig partial under
templates/storyline/chapters/.
First chapter is the Brackenford Campaign Overview: the campaign-bible
text laid out as a long-form reading page -- numbered section headers,
a "by the numbers" / "the cast" quick-reference strip, pull-quotes for
in-world lines, GM callouts for the ticking clocks and the red herring,
and the escalation ladder. Storyline styles added to app.css.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,9 +3,29 @@
|
||||
{% block title %}Storyline · dmtools{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{{ include('_partials/page_placeholder.html.twig', {
|
||||
title: 'Storyline',
|
||||
icon: '📜',
|
||||
blurb: 'The campaign storyline will live here. Shape still to be decided — session log, plot threads, or a wiki-style document.',
|
||||
}) }}
|
||||
<div class="storyline-index">
|
||||
<header class="mb-4">
|
||||
<div class="text-uppercase small text-body-secondary fw-semibold" style="letter-spacing:.08em">Storyline</div>
|
||||
<h1 class="display-6 mb-2">Brackenford</h1>
|
||||
<p class="text-body-secondary mb-0" style="max-width:60ch">
|
||||
The campaign bible, split into chapters. Start with the overview for the whole
|
||||
arc; later chapters will cover sessions, locations and the people of the village.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<ol class="storyline-chapter-list list-unstyled">
|
||||
{% for slug, chapter in chapters %}
|
||||
<li>
|
||||
<a href="{{ path('app_storyline_chapter', {slug: slug}) }}" class="storyline-chapter-card">
|
||||
<span class="storyline-chapter-num">{{ loop.index }}</span>
|
||||
<span class="storyline-chapter-body">
|
||||
<span class="storyline-chapter-title">{{ chapter.title }}</span>
|
||||
<span class="storyline-chapter-summary">{{ chapter.summary }}</span>
|
||||
</span>
|
||||
<span class="storyline-chapter-go" aria-hidden="true">→</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user