新增书签导入功能

This commit is contained in:
Zuoling Rong
2025-05-01 22:50:09 +08:00
parent 582cc652ac
commit f8bbd75576
10 changed files with 698 additions and 78 deletions

106
README.md
View File

@@ -2,6 +2,28 @@
一个个人主页/导航静态网站,自动化构建和部署,帮助你整理和展示你的网络收藏/项目
## 目录
- [在线预览](#在线预览)
- [功能特点](#功能特点)
- [技术栈](#技术栈)
- [项目结构](#项目结构)
- [快速开始](#快速开始)
- [部署方式](#部署方式)
- [快速部署到GitHub Pages](#快速部署到github-pages)
- [高级部署选项Cloudflare Pages](#高级部署选项cloudflare-pages)
- [书签导入功能](#书签导入功能)
- [使用方法](#使用方法)
- [自动化工作流程详解](#自动化工作流程详解)
- [书签配置自定义](#书签配置自定义)
- [模板说明](#模板说明)
- [配置文件结构](#配置文件结构)
- [设置网站字体](#设置网站字体)
- [设置网站图标](#设置网站图标)
- [添加新的网站链接](#添加新的网站链接)
- [贡献](#贡献)
- [许可证](#许可证)
## 在线预览
访问:[https://rbetree.github.io/menav/](https://rbetree.github.io/menav/)
@@ -14,6 +36,7 @@
- 🎯 分类展示网站链接
- 👥 支持展示社交媒体链接
- 📝 支持多个内容页面(首页、项目、文章、友链)
- 📌 支持从浏览器导入书签
## 技术栈
@@ -35,6 +58,7 @@ menav/
├── templates/ # HTML模板
│ └── index.html # HTML骨架模板文件
├── dist/ # 生成的静态网站由generator.js生成
├── bookmarks/ # 书签导入目录
├── config.yml # 默认配置文件
└── config.user.yml # 用户自定义配置文件
```
@@ -135,6 +159,85 @@ npm run dev
- 构建输出目录: `/`
- Node.js 版本: `16`或更高
## 书签导入功能
### 使用方法
1. **从浏览器导出书签**
- 在Chrome中: 打开书签管理器 -> 点击"更多"(三个点) -> 导出书签
- 在Firefox中: 打开书签库 -> 显示所有书签 -> 导入和备份 -> 导出书签为HTML
- 在Edge中: 设置 -> 收藏夹 -> 管理收藏夹 -> 导出为HTML文件
2. **导入书签到MeNav**
- 在项目根目录下创建 `bookmarks` 文件夹(如果不存在)
- 将导出的HTML书签文件放入 `bookmarks` 文件夹
- 提交并推送变更到仓库
- GitHub Actions将自动处理书签文件并生成书签配置
3. **书签处理流程**
- 系统会扫描 `bookmarks` 目录查找最新的HTML书签文件
- 解析书签文件中的链接和文件夹结构
- 自动为书签分配适当的图标
- 生成 `bookmarks.yml` 配置文件
- 处理完成后会自动清空 `bookmarks` 目录(防止重复处理)
- 重新构建并部署网站
4. **注意事项**
- 每次只处理一个书签文件,如有多个文件,系统会选择最新的那个
- 书签导入是构建时的一次性操作,不会在浏览器中保存或同步您的书签
- 如果想要更新书签,可以直接编辑 `bookmarks.yml`,或重新导出书签文件并重新导入
### 自动化工作流程详解
MeNav使用单一的GitHub Actions工作流处理书签导入与网站部署实现了无缝集成
1. **触发条件**:
- 当您推送任何更改到主分支(特别是向 `bookmarks` 目录添加HTML文件
- 手动触发工作流时通过GitHub Actions界面
2. **书签处理步骤**:
- 自动检测 `bookmarks/` 目录中的HTML文件
- 使用 `bookmark-processor.js` 脚本处理书签文件
- 生成/更新 `bookmarks.yml` 配置文件
- 提交更改(如有)并保存至仓库
- 自动清理已处理的HTML书签文件
3. **网站构建与部署**:
- 基于最新的配置(包括新生成的书签配置)构建网站
- 自动将构建结果部署到GitHub Pages
4. **故障排除**:
- 如果书签未正确显示请检查导出的HTML文件格式是否标准
- 可以通过GitHub Actions日志查看处理过程中的详细信息
- 确保书签文件是有效的HTML格式且包含正确的书签数据结构
### 书签配置自定义
处理后生成的 `bookmarks.yml` 文件可以手动编辑以进一步自定义:
```yaml
# 自动生成的书签配置示例
title: 我的书签
subtitle: 从浏览器导入的书签收藏
categories:
- name: 开发工具
icon: fas fa-folder
sites:
- name: GitHub
url: https://github.com
icon: fab fa-github
description: "从书签导入: GitHub"
# 更多网站...
# 更多分类...
```
您可以:
- 修改分类和网站的名称和描述
- 调整图标使用Font Awesome图标类
- 重新组织书签分类结构
- 添加或删除特定书签
**提示**: 尽管自动处理会清理原始HTML文件但修改后的 `bookmarks.yml` 会被保留,您可以随时手动编辑它来更新书签内容。
### 模板说明
@@ -267,11 +370,10 @@ categories:
description: 网站描述
```
## 贡献
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
## 许可证
MIT License
MIT License