<%
const slugify = (text) => text.toLowerCase().replace(/[^\w]/g, "-"); // 定义一个 slugify 函数,负责将文本转换为小写并替换非字母数字字符为横线
const slug = slugify(entry.name); // 使用 slugify 函数将 entry.name 转换成 slug 格式(小写并且替换特殊字符)
%>
<li>
<!-- 创建一个列表项,包含一个链接,链接的目标是基于 entry.name 创建的 slug -->
<a href="#<%= slug %>">
<span><%= entry.name %></span> <!-- 显示条目的名称 -->
</a>
<!-- 如果该条目有子条目(children),则递归显示子条目的列表 -->
<% if (entry.children.length) { %>
<ul>
<!-- 遍历每个子条目,并递归调用 'toc_item' 模板渲染子条目 -->
<% for (const subentry of entry.children) { %>
<%- include('toc_item', {entry: subentry}) %> <!-- 调用 'toc_item' 模板渲染子条目 -->
<% } %>
</ul>
<% } %>
</li>