22
33一个纯前端部署的个人主页生成系统。
44
5- ## 特性
5+ ## ✨ 核心特性
66
7- - ✅ 纯前端部署,无需服务器和数据库
8- - ✅ 通过 YAML 配置文件一站式管理站点内容
9- - ✅ 支持 Markdown 内容创作,自动渲染为响应式网页
10- - ✅ 内置多种主题(明亮、暗黑、学术),支持运行时切换
11- - ✅ 响应式设计,完美适配各种设备
12- - ✅ 支持 PDF 在线预览和文件下载
13- - ✅ 可部署到 GitHub Pages,零成本托管
7+ ### 🎯 零配置部署
8+
9+ - ✅ ** 纯前端部署** ,无需服务器和数据库
10+ - ✅ ** 通用路径适配** ,支持子目录和根域名部署
11+ - ✅ ** 一键部署** 到 GitHub Pages,零成本托管
12+ - ✅ ** 自动化脚本** ,清理、构建、部署一步完成
13+
14+ ### 📝 强大的内容管理
15+
16+ - ✅ ** YAML 配置文件** 一站式管理站点内容
17+ - ✅ ** Markdown 创作** ,自动渲染为响应式网页
18+ - ✅ ** 自动文件夹扫描** ,在 ` content/ ` 下创建文件夹即可自动生成页面
19+ - ✅ ** 文档中心** ,支持层级结构、面包屑导航、双向链接
20+ - ✅ ** 自动文件扫描** ,引用文件自动在文件页面展示
21+ - ✅ ** 新闻时间轴** ,支持多种事件类型和论文状态
22+
23+ ### 🎨 丰富的展示功能
24+
25+ - ✅ ** 多主题支持** (明亮、暗黑、学术、玻璃),支持运行时切换
26+ - ✅ ** 国际化(i18n)** ,支持中英文切换
27+ - ✅ ** 响应式设计** ,完美适配各种设备
28+ - ✅ ** 汉堡菜单** ,移动端自动收纳次要导航
29+ - ✅ ** PDF 在线预览** 和文件下载
30+
31+ ### 🔧 开发者友好
32+
33+ - ✅ ** 配置驱动** ,通过 ` collections ` 控制文档集合
34+ - ✅ ** 安全更新机制** ,fork 后可安全获取上游更新
35+ - ✅ ** Git merge strategy** ,自动保护用户内容
36+ - ✅ ** 代码质量工具** (ESLint、Stylelint、Prettier)
1437
1538## 快速开始
1639
@@ -33,12 +56,8 @@ npm run init
3356# 本地开发
3457npm run dev
3558
36- # 构建和部署
37- # 子目录部署 (yourusername.github.io/ppage)
38- ./scripts/deploy.sh
39-
40- # 根域名部署 (yourusername.github.io 或自定义域名)
41- ./scripts/deploy.sh root
59+ # 构建和部署(自动适配任意路径)
60+ npm run deploy
4261```
4362
4463### 方式二:直接使用示例模板
@@ -58,55 +77,103 @@ npm install
5877# 本地开发
5978npm run dev
6079
61- # 构建和部署
62- # 子目录部署 (yourusername.github.io/ppage)
63- ./scripts/deploy.sh
64-
65- # 根域名部署 (yourusername.github.io 或自定义域名)
66- ./scripts/deploy.sh root
80+ # 构建和部署(自动适配任意路径)
81+ npm run deploy
6782```
6883
69- ## 文档
84+ ## 📚 文档
7085
7186- [ USER_GUIDE.md] ( ./USER_GUIDE.md ) - 详细使用文档
7287- [ INIT_GUIDE.md] ( ./INIT_GUIDE.md ) - ` ppage init ` 命令使用指南
7388- [ UPDATE_GUIDE.md] ( ./UPDATE_GUIDE.md ) - 如何安全地更新 fork 的代码
89+ - [ LINT.md] ( ./LINT.md ) - 代码质量工具使用指南
7490
75- ## 🚢 部署
91+ ## 💡 主要功能
7692
77- PPage 支持两种部署方式,自动适配不同的访问路径:
93+ ### 自动文件夹扫描
7894
79- ### 子目录部署(默认)
95+ 在 ` content/ ` 目录下创建任何文件夹,系统会自动:
8096
81- 适用场景:` yourusername.github.io/ppage ` 或 ` domain.com/ppage `
97+ - 扫描并识别文件夹
98+ - 生成导航菜单项
99+ - 创建对应的路由和页面
82100
83- ``` bash
84- # 1. 配置 public/config.yml 中的 deploy 信息
85- # 2. 执行部署(自动清理、构建、部署)
86- ./scripts/deploy.sh
101+ 通过 ` public/config.yml ` 中的 ` collections ` 配置控制:
102+
103+ ``` yaml
104+ collections :
105+ tutorials :
106+ enabled : true # 是否启用
107+ showInNavigation : true # 是否在导航栏显示
108+ showInMobile : false # 移动端是否直接显示
109+ order : 1 # 导航顺序
87110` ` `
88111
89- ### 根域名部署
112+ ### 文档中心
113+
114+ 强大的文档管理系统,支持:
115+
116+ - **层级结构**:通过 ` parent` 字段建立父子关系
117+ - **智能排序**:支持置顶、优先级、order 多级排序
118+ - **面包屑导航**:自动生成文档路径
119+ - **双向链接**:自动识别文档间引用
120+
121+ # ## 自动文件扫描
122+
123+ 在 Markdown 中引用文件,系统会自动:
124+
125+ - 扫描所有 Markdown 中的文件链接
126+ - 在文件页面自动展示
127+ - 支持 PDF 预览和下载
128+
129+ # ## 新闻时间轴
130+
131+ 展示学术动态和重要事件:
132+
133+ - 支持多种事件类型(论文、获奖、会议等)
134+ - 论文状态追踪(已接收、在线、已发表)
135+ - 时间轴展示,直观易读
136+
137+ # # 🚢 部署
138+
139+ PPage 使用**相对路径构建**,自动适配任何部署路径,无需手动配置 base path。
90140
91- 适用场景: ` yourusername.github.io ` 或自定义域名 ` yourdomain.com `
141+ # ## 一键部署
92142
93143` ` ` bash
94144# 1. 配置 public/config.yml 中的 deploy 信息
95- # 2. 执行根域名部署(自动清理、构建、部署)
96- ./scripts/deploy.sh root
145+ deploy:
146+ repository: "https://github.com/yourusername/yourrepo"
147+ branch: "gh-pages"
148+ customDomain: "" # 可选,填写自定义域名
149+
150+ # 2. 执行部署(自动清理、构建、部署)
151+ npm run deploy
97152` ` `
98153
154+ # ## 支持的部署场景
155+
156+ ✅ **子目录部署**:`yourusername.github.io/ppage`
157+ ✅ **根域名部署**:`yourusername.github.io`
158+ ✅ **自定义域名**:`yourdomain.com`
159+
160+ **自动适配原理**:
161+
162+ - 构建时使用 `base : ' ./' ` 相对路径
163+ - 运行时通过 ` window.location.pathname` 动态检测部署路径
164+ - 无需手动配置,一次构建随处可用
165+
99166# ## 手动构建
100167
101168` ` ` bash
102- # 子目录部署构建(base = /ppage/)
103- npm run build:subdir
169+ # 清理旧文件
170+ npm run clean
104171
105- # 根域名部署构建(base = / )
106- npm run build:root
172+ # 构建(自动使用相对路径 )
173+ npm run build
107174
108- # 自定义 base path
109- VITE_BASE_PATH=/custom/ npm run build
175+ # 预览构建结果
176+ npm run preview
110177` ` `
111178
112179更多部署细节请查看 [USER_GUIDE.md 的部署指南](./USER_GUIDE.md#-部署指南)。
@@ -121,21 +188,74 @@ npm run update
121188` ` `
122189
123190**受保护的文件**(更新时不会被覆盖):
191+
124192- ` public/config.yml` - 你的站点配置
125193- ` content/` - 你的所有内容
126194- ` public/assets/` - 你的资源文件
127195- ` scripts/deploy.sh` - 你的部署脚本
128196
129197详细更新流程请查看 [UPDATE_GUIDE.md](./UPDATE_GUIDE.md)。
130198
131- ## 技术栈
199+ # # 🔧 技术栈
200+
201+ - **前端框架**:React 18 + Vite
202+ - **路由**:React Router 6
203+ - **Markdown 渲染**:markdown-it
204+ - **配置解析**:js-yaml
205+ - **样式**:CSS Modules + CSS Variables
206+ - **代码质量**:ESLint + Stylelint + Prettier
207+ - **国际化**:React Context 自定义 i18n
208+
209+ # # 🛠️ 开发指南
210+
211+ # ## 本地开发
212+
213+ ` ` ` bash
214+ # 安装依赖
215+ npm install
216+
217+ # 启动开发服务器
218+ npm run dev
219+
220+ # 代码检查
221+ npm run lint
222+
223+ # 代码格式化
224+ npm run format
225+
226+ # 自动修复问题
227+ npm run lint:fix
228+ ` ` `
229+
230+ # ## 项目结构
231+
232+ ```
233+ ppage/
234+ ├── content/ # 内容目录
235+ │ ├── pages/ # 文档页面
236+ │ ├── posts/ # 博客文章
237+ │ ├── files/ # 文件资源
238+ │ └── tutorials/ # 自定义文档集合
239+ ├── public/
240+ │ ├── config.yml # 站点配置文件
241+ │ └── assets/ # 静态资源
242+ ├── src/
243+ │ ├── components/ # React 组件
244+ │ ├── pages/ # 页面组件
245+ │ ├── utils/ # 工具函数
246+ │ ├── config/ # 配置解析
247+ │ ├── i18n/ # 国际化
248+ │ └── themes/ # 主题样式
249+ └── scripts/ # 工具脚本
250+ ├── deploy.sh # 部署脚本
251+ ├── init.js # 初始化脚本
252+ └── update.js # 更新脚本
253+ ```
254+
255+ ## 🤝 贡献
132256
133- - React 18 + Vite
134- - React Router
135- - markdown-it
136- - js-yaml
137- - CSS Modules + CSS Variables
257+ 欢迎提交 Issue 和 Pull Request!
138258
139- ## License
259+ ## 📝 License
140260
141- MIT
261+ MIT License - 详见 [LICENSE](LICENSE) 文件
0 commit comments