-
Notifications
You must be signed in to change notification settings - Fork 0
/
doc-toc.ejs
27 lines (27 loc) · 1.61 KB
/
doc-toc.ejs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<ul>
<% let _inc_site_url = config.root || '/' %>
<% if (_inc_site_url.slice(-1) === '/') { %>
<% _inc_site_url = _inc_site_url.slice(0, -1) %>
<% } %>
<% items.forEach(_inc_item => { %>
<li>
<% const _inc_collection = _inc_item.collection || collection %>
<% const _inc_docs = (site.data[`knosys/${repo}/${_inc_collection}`] || {}).items %>
<% const _inc_base_part = base || '' %>
<% const _inc_base_url = `${_inc_site_url}${_inc_base_part}` %>
<% const _inc_url_parts = page.path.replace('/index.html', '').replace(base ? new RegExp(`^${_inc_base_part}`) : '', '').slice(1).split('/') %>
<% if (_inc_item.items) { %>
<span><%= _inc_item.text %></span>
<%- partial('_ksio/components/doc-toc', { repo, items: _inc_item.items, base: _inc_base_part, collection: _inc_collection }) %>
<% } else if (_inc_item.slug) { %>
<% if (_inc_collection === 'pages') { %>
<a<% if (_inc_item.slug === _inc_url_parts[1] && _inc_url_parts.length === 2) { %> class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_item.slug %>/"><%= _inc_item.text %></a>
<% } else { %>
<a<% if (_inc_item.slug === _inc_url_parts.slice(-1)[0]) { %> class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_collection %>/<%= _inc_item.slug %>/"><%= _inc_docs[_inc_item.slug].title %></a>
<% } %>
<% } else { %>
<a<% if (_inc_item === _inc_url_parts.slice(-1)[0]) { %> class="is-selected"<% } %> href="<%= _inc_base_url %>/<%= _inc_collection %>/<%= _inc_item %>/"><%= _inc_docs[_inc_item].title %></a>
<% } %>
</li>
<% }) %>
</ul>