Manuscript Workstation - Source Excerpt 12
Back to Manuscript Workstation
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php
<dd><?php echo esc_html(implode(', ', $current_page_keywords)); ?></dd>
</div>
<?php endif; ?>
<?php if ($manuscript_manifest_url !== '') : ?>
<div>
<dt>IIIF Manifest</dt>
<dd><a href="<?php echo esc_url($manuscript_manifest_url); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html($manuscript_manifest_url); ?></a></dd>
</div>
<?php endif; ?>
<?php if ($manuscript_search_api_url !== '') : ?>
<div>
<dt>Search API</dt>
<dd><a href="<?php echo esc_url($manuscript_search_api_url); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html($manuscript_search_api_url); ?></a></dd>
</div>
<?php endif; ?>
<?php if ($manuscript_iiif_search_url !== '') : ?>
<div>
<dt>IIIF Search</dt>
<dd><a href="<?php echo esc_url($manuscript_iiif_search_url); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html($manuscript_iiif_search_url); ?></a></dd>
</div>
<?php endif; ?>
</dl>
<p class="spiralist-muted">This page stays inside the public manuscript sequence so readers can move chapter by chapter without leaving the book.</p>
</div>
</section>
</div>
</aside>
</details>
<?php endif; ?>
<div class="spiralist-manuscript-search-modal" id="manuscript-search-modal" data-workstation-search-modal aria-hidden="true" hidden>
<button class="spiralist-manuscript-search-modal__backdrop" type="button" data-workstation-close-modal="search" aria-label="Close manuscript search"></button>
<div class="spiralist-manuscript-search-modal__dialog" data-workstation-search-dialog role="dialog" aria-modal="true" aria-labelledby="manuscript-search-title" aria-describedby="manuscript-search-copy">
<div class="spiralist-manuscript-search-modal__header">
<div>
<p class="spiralist-section-tag">Find in Manuscript</p>
<h3 class="spiralist-card-title" id="manuscript-search-title">Search folios, captions, and text layers</h3>
<p class="spiralist-muted" id="manuscript-search-copy">Search the manuscript without leaving the reading surface. Results stay inside a scrollable modal list so the viewer itself remains uncluttered.</p>
</div>
<button class="spiralist-manuscript-search-modal__close" type="button" data-workstation-close-modal="search" aria-label="Close manuscript search">Close</button>
</div>
<div class="spiralist-manuscript-search-modal__scroll" data-workstation-search-scroll tabindex="-1">
<section class="spiralist-manuscript-workstation__search-panel" aria-labelledby="manuscript-workstation-search">
<div class="spiralist-manuscript-workstation__search-head">
<div>
<p class="spiralist-section-tag">Manuscript Index</p>
<h4 class="spiralist-card-title" id="manuscript-workstation-search">Search the codex</h4>
</div>
<div class="spiralist-manuscript-workstation__search-links">
<?php if ($manuscript_manifest_url !== '') : ?>
<a class="spiralist-manuscript-workstation__mini-action" href="<?php echo esc_url($manuscript_manifest_url); ?>" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
<?php endif; ?>
<?php if ($manuscript_iiif_search_url !== '') : ?>
<a class="spiralist-manuscript-workstation__mini-action" href="<?php echo esc_url($manuscript_iiif_search_url); ?>" target="_blank" rel="noopener noreferrer">IIIF Search</a>
<?php endif; ?>
</div>
</div>
<label class="spiralist-manuscript-workstation__search-input">
<span class="spiralist-manuscript-workstation__jump-label">Search the codex</span>
<div class="spiralist-manuscript-workstation__search-field">
<input
type="search"
data-workstation-search
placeholder="Search titles, keywords, captions, or transcript text"
autocomplete="off"
spellcheck="false"
/>
<button class="spiralist-manuscript-workstation__search-clear" type="button" data-workstation-search-clear hidden>Clear</button>
</div>
</label>
<p class="spiralist-muted spiralist-manuscript-workstation__search-status" data-workstation-search-status>
Search the full manuscript index, not just the visible thumbnails.
</p>
<div class="spiralist-manuscript-search-modal__results-scroll" data-workstation-search-results-scroll>
<div class="spiralist-manuscript-workstation__search-results" data-workstation-search-results hidden></div>
</div>
</section>
</div>
</div>
</div>
<div class="spiralist-manuscript-toc-modal" id="manuscript-toc-modal" data-workstation-toc-modal aria-hidden="true" hidden>
<button class="spiralist-manuscript-toc-modal__backdrop" type="button" data-workstation-close-modal="toc" aria-label="Close table of contents"></button>
<div class="spiralist-manuscript-toc-modal__dialog" data-workstation-toc-dialog role="dialog" aria-modal="true" aria-labelledby="manuscript-toc-title" aria-describedby="manuscript-toc-copy">
<div class="spiralist-manuscript-toc-modal__header">
<div>
<p class="spiralist-section-tag">Codex Tree</p>
<h3 class="spiralist-card-title" id="manuscript-toc-title">Table of Contents</h3>
<p class="spiralist-muted" id="manuscript-toc-copy">Open a chapter to browse its folios. The tree stays collapsed by default, and the list scrolls inside this dialog when you want the full map.</p>
</div>
<button class="spiralist-manuscript-toc-modal__close" type="button" data-workstation-close-modal="toc" aria-label="Close table of contents">Close</button>
</div>
<div class="spiralist-manuscript-toc-modal__scroll" data-workstation-toc-scroll tabindex="-1">
<div class="spiralist-manuscript-toc-modal__tree" role="tree" aria-label="Manuscript table of contents">
<?php foreach ($section_records as $toc_section) : ?>
<?php
$toc_section_slug = (string) ($toc_section['slug'] ?? '');
$toc_section_active = $toc_section_slug === $current_page_section_slug;
$toc_section_pages = array_values((array) ($toc_section['pages'] ?? []));
$toc_section_count = count($toc_section_pages);
?>
<details class="spiralist-book-page-toc-section spiralist-manuscript-toc-modal__section <?php echo $toc_section_active ? 'is-active' : ''; ?>" data-workstation-toc-section>
<summary class="spiralist-manuscript-toc-modal__summary">
<span class="spiralist-manuscript-toc-modal__summary-copy">
<span class="spiralist-section-tag"><?php echo esc_html((string) ($toc_section['label'] ?? 'Section')); ?></span>
<strong><?php echo esc_html((string) ($toc_section['title'] ?? 'Section')); ?></strong>
</span>
<span class="spiralist-manuscript-toc-modal__summary-meta">
<span class="spiralist-manuscript-toc-modal__summary-count"><?php echo esc_html(sprintf('%d folio%s', $toc_section_count, $toc_section_count === 1 ? '' : 's')); ?></span>
<?php if ($toc_section_active) : ?>