hexo-theme-stellar/layout/_partial/main/navbar/nav_tabs_blog.ejs

67 lines
2.5 KiB
Plaintext

<%
function layoutDiv() {
var el = '';
el += '<div class="nav-wrap">';
el += '<nav class="sub post cap">';
if (is_home()) {
el += '<a class="active" href="' + url_for(config.index_generator.path) + '">' + __("btn.recent_publish") + '</a>';
} else {
el += '<a href="' + url_for(config.index_generator.path) + '">' + __("btn.recent_publish") + '</a>';
}
if (site.categories && site.categories.length > 0) {
if (page.category) {
el += '<a class="active" href="' + url_for(config.category_dir) + '">' + __("btn.category") + __("symbol.colon") + page.category + '</a>';
} else if (page.layout == "categories") {
el += '<a class="active" href="' + url_for(config.category_dir) + '">' + __("btn.categories") + '</a>';
} else {
el += '<a href="' + url_for(config.category_dir) + '">' + __("btn.categories") + '</a>';
}
}
if (site.tags && site.tags.length > 0) {
if (page.tag) {
el += '<a class="active" href="' + url_for(config.tag_dir) + '">' + __("btn.tag") + __("symbol.colon") + page.tag + '</a>';
} else if (page.layout == "tags") {
el += '<a class="active" href="' + url_for(config.tag_dir) + '">' + __("btn.tags") + '</a>';
} else {
el += '<a href="' + url_for(config.tag_dir) + '">' + __("btn.tags") + '</a>';
}
}
if (theme.topic?.publish_list?.length > 0) {
if (page.layout == 'index_topic') {
el += '<a class="active" href="' + url_for(theme.site_tree.topic.base_dir) + '">' + __("btn.topic") + '</a>';
} else {
el += '<a href="' + url_for(theme.site_tree.topic.base_dir) + '">' + __("btn.topic") + '</a>';
}
}
if (site.posts && site.posts.length > 0) {
if (is_archive()) {
el += '<a class="active" href="' + url_for(config.archive_dir) + '">' + __("btn.archives") + '</a>';
} else {
el += '<a href="' + url_for(config.archive_dir) + '">' + __("btn.archives") + '</a>';
}
}
const { nav_tabs } = theme.site_tree.blog
if (nav_tabs) {
for (let key of Object.keys(nav_tabs)) {
// 当 page 的末尾为 index.html 或者处于该 page 的某个子页面时也应该匹配
// if (full_url_for(page.path) == full_url_for(nav_tabs[key])) {
if (full_url_for(page.path).startsWith(full_url_for(nav_tabs[key]))){
el += '<a class="active" href="' + url_for(nav_tabs[key]) + '">' + key + '</a>';
} else {
el += '<a href="' + url_for(nav_tabs[key]) + '">' + key + '</a>';
}
}
}
el += '</nav>';
el += '</div>';
return el;
}
%>
<%- layoutDiv() %>