fix(widgets): restore article list rendering and reference styles

This commit is contained in:
kate522 committed 2026-10-30 12:47:07 +08:00
1 parent 4ea00f1322
commit fc04bf65e6
18 files changed
+345 -97

No files matched your search

+21 -8
View File
@@ -85,10 +85,17 @@
}
function itemsUrl(widget, instance, page, segment) {
var base = String(config.restUrl || '').replace(/\/$/, '');
var url = base + '/' + encodeURIComponent(widget) + '/items?instance=' + encodeURIComponent(instance) + '&page=' + encodeURIComponent(page);
if (segment !== undefined && segment !== '') url += '&segment=' + encodeURIComponent(segment);
return url;
var url = new URL(config.restUrl, window.location.href);
var path = '/' + encodeURIComponent(widget) + '/items';
if (url.searchParams.has('rest_route')) {
url.searchParams.set('rest_route', url.searchParams.get('rest_route').replace(/\/$/, '') + path);
} else {
url.pathname = url.pathname.replace(/\/$/, '') + path;
}
url.searchParams.set('instance', instance);
url.searchParams.set('page', page);
if (segment !== undefined && segment !== '') url.searchParams.set('segment', segment);
return url.href;
}
function loaderOf(container) {
@@ -192,6 +199,14 @@
function initItems(container) {
if (!once(container, 'Items')) return;
if (container.hasAttribute('data-widget-lazy') && container.dataset.loaded !== '1') {
container.addEventListener('lazybeforeunveil', function (event) {
if (event.target === container && container.dataset.loaded !== '1') loadItems(container, 1, false);
});
// main.js loads asynchronously through loader_js. Its lazySizes scan
// may finish before this client binds, so consume an unveiled pager.
if (!container.classList.contains('lazyload')) loadItems(container, 1, false);
}
function jumpTo(input) {
var page = Math.min(Number(input.max), Math.floor(Number(input.value)));
if (!Number.isFinite(page) || page < 1 || page === Number(container.dataset.page || 1)) {
@@ -229,11 +244,8 @@
return;
}
if (trigger) {
// data-widget-ias marks the hidden reveal trigger the runtime clicks
// when the lazy container scrolls into view; it reloads page one.
event.preventDefault();
if (trigger.dataset.widgetIas === '1') loadItems(container, 1, false);
else loadItems(container, Number(trigger.dataset.nextPage || 2), true);
loadItems(container, Number(trigger.dataset.nextPage || 2), true);
return;
}
if (pageLink) {
@@ -346,6 +358,7 @@
var scope = root || document;
scope.querySelectorAll('.aksrt-widget-video[data-video-url]').forEach(initVideo);
scope.querySelectorAll('.aksrt-widget-quote').forEach(initQuote);
if (scope.matches && scope.matches('[data-widget-items]')) initItems(scope);
scope.querySelectorAll('[data-widget-items]').forEach(initItems);
scope.querySelectorAll('.widget-tab-post').forEach(initTabs);
scope.querySelectorAll('.aksrt-faq').forEach(initFaq);