mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 08:09:18 +02:00
Unify the three public pages (à propos, charte, licence) onto a single grid layout (.page-content) with sticky TOC sidebar, replacing the old separate / / markup. - Merge about.php, charte.php, licence.php templates into shared .page-content / .content-section structure - Add CommonMark HeadingPermalinkExtension for stable heading anchors - Use SlugNormalizer for TOC links so they match rendered heading IDs - Standardize link styling across content blocks: bold black, accent on hover (consistent with global link style) - Fix code block wrapping: use pre-wrap instead of pre, constrain grid columns with min-width:0, auto scrollbar - Fix apropos page grid placement: force content-section into column 2 so contacts and credits stay in the content area, not the sidebar Also includes accumulated WIP changes: - Header gradient: hardcoded purple-to-green (replaces CSS variables) - Search placeholder font - Duration field: replace minutes/sec/heures with h:m:s time inputs - TFE file optional for formats 1,4,6 with client-side JS toggle - Licence form: em-dash to hyphen, details/summary classes - Pill search: block Enter key form submission when no results - Draft autosave: remove CSRF rotation (broke concurrent FilePond uploads) - Language pill: clear hints for excluded main languages - Search results: gradient placeholder cards for items without covers - TFE display: format durée values as XhYm instead of decimal
24 lines
698 B
PHP
24 lines
698 B
PHP
<main class="page-content" id="main-content">
|
|
|
|
<!-- LEFT: sticky table of contents -->
|
|
<?php if (!empty($tocItems)): ?>
|
|
<nav class="apropos-toc" aria-label="Sections de la page">
|
|
<p class="apropos-toc-label">PARTIES</p>
|
|
<ul>
|
|
<?php foreach ($tocItems as $item): ?>
|
|
<li><a href="<?= htmlspecialchars($item['href']) ?>"><?= htmlspecialchars($item['label']) ?></a></li>
|
|
<?php endforeach; ?>
|
|
</ul>
|
|
</nav>
|
|
<?php endif; ?>
|
|
|
|
<div class="content">
|
|
<?php if (!empty(trim($content))): ?>
|
|
<?= $html ?>
|
|
<?php else: ?>
|
|
<p>Contenu à venir.</p>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
</main>
|