fix(frontend): close single 1:1 residuals without legacy paths

Unify TOC ownership, real video episode list, slider overlay, single-query related list, Zibll user-card after-box, and new-route subtitle/meta contracts.
This commit is contained in:
2026-07-13 13:18:19 +08:00
parent 48f7436030
commit 5ce43c4326
10 changed files with 1373 additions and 1298 deletions
+13 -1
View File
@@ -19,19 +19,31 @@
var navContainer = document.querySelector('[data-nav]');
if (!navContainer) return;
// Single-post TOC is owned by page-template.js (.posts-nav-box .toc-list).
// Do not invent a second .aksrt-section-nav tree on article singles.
if (document.querySelector('.posts-nav-box .toc-list, .posts-nav-box.toc-widget')) {
return;
}
var headings = navContainer.querySelectorAll(HEADING_SEL);
if (headings.length < MIN_HEADINGS) return;
var tocContainer = document.querySelector('.posts-nav-lists, .aksrt-section-nav');
if (!tocContainer) {
// Docs / page-navs only: create a dedicated container. Never inject into single sidebars.
if (document.body.classList.contains('single') || document.body.classList.contains('single-post')) {
return;
}
tocContainer = document.createElement('nav');
tocContainer.className = 'aksrt-section-nav';
tocContainer.setAttribute('aria-label', '文章目录');
var sidebar = document.querySelector('.content-layout__aside, .sidebar, .widget-area');
if (sidebar) {
sidebar.insertBefore(tocContainer, sidebar.firstChild);
} else {
} else if (navContainer.parentNode) {
navContainer.parentNode.insertBefore(tocContainer, navContainer);
} else {
return;
}
}