- 导航/子菜单 href 统一为 ?page=<id>[#<slug>],支持复制/新开直达 - 启动时解析 ?page= 并同步导航高亮;子菜单跳转可组合 hash 定位分类 - 输入无效 pageId 时自动纠正 URL 到首页(replaceState,避免“内容回退但地址栏仍错误”) - 构建生成 dist/404.html:将 /<id>(或 /<repo>/<id>)回跳到 /?page=<id> 并保留 hash
24 lines
970 B
Handlebars
24 lines
970 B
Handlebars
<div data-container="nav-items">
|
|
{{#each this}}
|
|
<div class="nav-item-wrapper">
|
|
<a href="?page={{id}}" class="nav-item{{#if isActive}} active{{/if}}{{#if active}} active{{/if}}" data-page="{{id}}" data-type="nav-item" data-id="{{id}}" data-name="{{name}}" data-icon="{{icon}}">
|
|
<div class="icon-container">
|
|
<i class="{{icon}}"></i>
|
|
</div>
|
|
<span class="nav-text" data-editable="nav-item-name">{{name}}</span>
|
|
{{#if submenu}}<i class="fas fa-chevron-down submenu-toggle"></i>{{/if}}
|
|
</a>
|
|
{{#if submenu}}
|
|
<div class="submenu">
|
|
{{#each submenu}}
|
|
<a href="?page={{../id}}#{{#if slug}}{{slug}}{{else}}{{name}}{{/if}}" class="submenu-item" data-page="{{../id}}" data-category="{{name}}" data-category-id="{{#if slug}}{{slug}}{{else}}{{name}}{{/if}}">
|
|
<i class="{{icon}}"></i>
|
|
<span>{{name}}</span>
|
|
</a>
|
|
{{/each}}
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
{{/each}}
|
|
</div>
|