hexo-theme-stellar/layout/_partial/main/article/read_next.ejs

80 lines
2.4 KiB
Plaintext
Raw Normal View History

2021-02-20 13:09:41 +08:00
<%
function layoutDiv() {
2024-01-14 14:10:36 +08:00
var prev,next
var title = __('meta.read_next')
title_prev = __('meta.newer')
title_next = __('meta.older')
2021-07-07 23:56:41 +08:00
if (page.layout === 'post') {
2024-01-14 14:10:36 +08:00
prev = page.prev
next = page.next
} else if (page.layout === 'topic' && page.topic?.length > 0) {
const topicObject = theme.topic.tree[page.topic]
if (topicObject) {
const current_page_date = topicObject.pages.filter(p => p.path == page.path)[0].date
for (let p of topicObject.pages) {
if (p.date > current_page_date) {
if (prev == undefined || p.date < prev.date) {
prev = p
}
} else if (p.date < current_page_date) {
if (next == undefined || p.date > next.date) {
next = p
}
}
}
}
} else if (page.layout === 'wiki' && page.wiki?.length > 0) {
var title_prev = __('meta.prev');
var title_next = __('meta.next');
2023-12-06 13:20:04 +08:00
let proj = theme.wiki.tree[page.wiki];
2021-07-26 22:26:46 +08:00
if (proj) {
2023-12-07 14:03:41 +08:00
let ps = proj.pages?.filter(p => p.path == page.path)
if (ps?.length > 0) {
2023-12-06 13:22:07 +08:00
const current_page_number = ps[0].page_number || 0;
proj.pages.forEach((p, i) => {
if (p.page_number < current_page_number) {
if (prev == undefined || p.page_number > prev.page_number) {
prev = p;
}
} else if (p.page_number > current_page_number) {
if (next == undefined || p.page_number < next.page_number) {
next = p;
}
2021-07-26 22:26:46 +08:00
}
2023-12-06 13:22:07 +08:00
});
} else {
console.error('未找到当前页');
}
2021-07-26 22:26:46 +08:00
}
2021-02-20 13:09:41 +08:00
}
2021-02-25 20:49:43 +08:00
let el = '';
2021-02-20 13:09:41 +08:00
if (prev || next) {
2021-07-13 22:25:24 +08:00
el += '<div class="related-wrap reveal" id="read-next">';
2022-10-23 16:56:27 +08:00
el += '<section class="body">';
2022-10-24 23:30:34 +08:00
// prev
el += '<div class="item" id="prev">';
2021-02-20 13:09:41 +08:00
if (prev) {
2022-10-24 23:30:34 +08:00
el += '<div class="note">' + title_prev + '</div>';
el += '<a href="' + url_for(prev.path) + '">';
2022-11-06 19:46:47 +08:00
el += prev.title || prev.seo_title || prev.wiki || date(prev.date, config.date_format);
2021-06-26 12:40:13 +08:00
el += '</a>';
}
2022-10-24 23:30:34 +08:00
el += '</div>';
// next
el += '<div class="item" id="next">';
if (next) {
el += '<div class="note">' + title_next + '</div>';
el += '<a href="' + url_for(next.path) + '">';
2022-11-06 19:46:47 +08:00
el += next.title || next.seo_title || next.wiki || date(next.date, config.date_format);
2022-10-24 23:30:34 +08:00
el += '</a>';
}
el += '</div>';
2021-02-25 20:49:43 +08:00
el += '</section>';
el += '</div>';
2021-02-20 13:09:41 +08:00
}
2021-02-25 20:49:43 +08:00
return el;
2021-02-20 13:09:41 +08:00
}
%>
<%- layoutDiv(); %>