%
const proj = theme.wiki.tree[page.wiki]
var hasTOC = true
function layoutTocBody() {
if (toc(page.content).length > 0) {
hasTOC = true
return toc(page.content, {
list_number: item.list_number,
min_depth: item.min_depth,
max_depth: item.max_depth
});
}
hasTOC = false
return ''
}
function layoutTocHeader(title) {
var el = ''
el += `
`
return el
}
function layoutDocTree(pages) {
var el = ''
for (let p of pages) {
if (p.title == null || p.title.length == 0) {
continue
}
let isActive = ''
if (p.path === page.path) {
isActive += ' active'
}
el += ``
}
return el
}
function layoutDiv(fallback) {
var type = ''
if (proj?.pages) {
type = proj.pages.length > 1 ? 'multi' : 'single'
} else {
let toc_content = toc(page.content)
if (toc_content && toc_content.length > 0) {
type = 'single'
}
}
var el = ''
if (type.length > 0) {
el += ``
if (proj) {
// wiki 布局
if (proj.sections && proj.sections.length > 0 && proj.pages.length > 1) { // 多 pages
for (let sec of proj.sections) {
if (sec.pages.length == 0) {
continue
}
if (sec.title?.length > 0) {
el += layoutTocHeader(sec.title)
}
el += ``
el += layoutDocTree(sec.pages)
el += `
`
}
} else { // 单 page
if (proj.pages.length == 1) {
el += layoutTocHeader()
}
el += ``
el += layoutDocTree(proj.pages)
el += `
`
if (hasTOC == false) {
return ''
}
}
} else {
// post 布局
el += layoutTocHeader()
el += ``
el += `
`
el += layoutTocBody()
el += `
`
el += `
`
if (hasTOC == false) {
return ''
}
}
el += ``
} else if (item.fallback) {
const fallback = theme.widgets[item.fallback]
el += partial(fallback.layout, {item: fallback})
}
return el
}
%>
<%- layoutDiv() %>