feat: 实现MeNav浏览器扩展支持接口

为支持浏览器扩展的HTML替换方案,对原仓库进行以下修改:
- 在generator.js中添加配置数据序列化和嵌入功能
- 在default.hbs中添加配置数据存储元素
- 在site-card.hbs和category.hbs中添加数据属性标识符
- 在script.js中添加全局MeNav对象和API方法
This commit is contained in:
Zuoling Rong
2025-05-22 22:58:02 +08:00
parent b7edd1dcbf
commit c72f7fd9f5
5 changed files with 432 additions and 220 deletions

View File

@@ -18,14 +18,14 @@
if (savedTheme === 'light') {
document.documentElement.classList.add('theme-preload');
}
// 读取并应用侧边栏状态
var sidebarCollapsed = localStorage.getItem('sidebarCollapsed') === 'true';
var isMobile = window.innerWidth <= 768;
if (sidebarCollapsed && !isMobile) {
document.documentElement.classList.add('sidebar-collapsed-preload');
}
// 添加这个类用于控制初始渲染
document.documentElement.classList.add('preload');
})();
@@ -58,7 +58,7 @@
<i class="fas fa-chevron-left toggle-icon"></i>
</button>
</div>
<div class="sidebar-content">
<div class="nav-section">
{{#if navigationData}}
@@ -117,12 +117,16 @@
</div>
{{/each}}
</main>
<!-- 主题切换按钮 -->
<button class="theme-toggle" aria-label="切换主题">
<i class="fas fa-moon"></i>
</button>
</div>
<!-- 配置数据 - 用于浏览器扩展 -->
<script id="menav-config-data" type="application/json" style="display: none;">
{{{configJSON}}}
</script>
<script src="script.js"></script>
</body>
</html>
</html>