<% 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>