Merge branch 'gemin3'
This commit is contained in:
104
DEPLOY.md
Normal file
104
DEPLOY.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 部署与自定义指南
|
||||
|
||||
本文档详细介绍如何在不同环境下部署站点,以及如何自定义配置、样式与数据源。阅读完成后,你可以将本项目快速上线并按需个性化。
|
||||
|
||||
## 环境要求
|
||||
|
||||
- 任意静态站点环境(Nginx/Apache/Node 静态服务、Vercel、Netlify、GitHub Pages 等)
|
||||
- 现代浏览器(移动/桌面)
|
||||
|
||||
## 本地预览
|
||||
|
||||
- 直接在本地打开 `index.html` 与 `about.html` 即可(双击或使用任意静态服务器)
|
||||
- 推荐使用简易静态服务器(任选其一):
|
||||
- Python:`python3 -m http.server 8080`
|
||||
- Node:`npx serve -s .`
|
||||
- Nginx:配置示例见下文
|
||||
|
||||
## 生产部署
|
||||
|
||||
### Vercel/Netlify
|
||||
|
||||
- 新建项目并选择本仓库(或上传构建产物)
|
||||
- 框架选择:None(静态),构建命令:无,输出目录:根目录(包含 HTML/CSS/JS)
|
||||
- 部署后即可通过平台提供的域名访问;可绑定自定义域名
|
||||
|
||||
### GitHub Pages
|
||||
|
||||
- 将仓库设置为公开
|
||||
- 在仓库 Settings → Pages:选择 `Branch: main` 与根目录
|
||||
- 等待构建完成后,使用生成的 `https://<username>.github.io/<repo>/` 访问
|
||||
|
||||
### Nginx
|
||||
|
||||
```
|
||||
server {
|
||||
listen 80;
|
||||
server_name your.domain.com;
|
||||
root /var/www/your-site;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
location ~* \.(css|js|png|jpg|gif|ico)$ {
|
||||
expires 30d;
|
||||
add_header Cache-Control "public, max-age=2592000";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 站点配置(js/config.js)
|
||||
|
||||
- GitHub 与 RSS
|
||||
- `SiteConfig.github.username`:GitHub 用户名
|
||||
- `SiteConfig.cacheKeys.github`:缓存键与过期时间(毫秒)
|
||||
- `SiteConfig.blog.rssUrl`:RSS 接口地址
|
||||
- `SiteConfig.cacheKeys.blog`:缓存键与过期时间(毫秒)
|
||||
- Artalk 评论
|
||||
- `SiteConfig.artalk.server` 与 `SiteConfig.artalk.site`
|
||||
- `dev.isLocal`:本地或非 HTTPS 环境下自动显示“评论区已关闭”提示
|
||||
- 主题与语言
|
||||
- 主题缓存:`SiteConfig.cacheKeys.theme.key/ttlMs`
|
||||
- 语言存取:使用 `localStorage('lang')`,页面内可切换 CN/EN
|
||||
|
||||
> 安全提示:请勿在 `config.js` 中硬编码敏感信息(如 Token)。本项目不需要服务端密钥;如需扩展 API,请在后端代理或使用服务端环境变量。
|
||||
|
||||
## 自定义样式
|
||||
|
||||
- 主题变量(css/about.css 顶部 `:root` 与 `[data-theme="night"]`)
|
||||
- 白天:`--text-primary/secondary/tertiary`、`--glass-bg`、`--accent`
|
||||
- 夜间:深色背景、微光强度、边框透明度等
|
||||
- 视觉模块
|
||||
- 兴趣卡片:圆角、边框与阴影在白天/夜间分别优化,可调整对比
|
||||
- 技术栈标签:PC 3D 球、移动端三行滚动;可修改渐变方案与速度
|
||||
- 标题渐变:仅在白天保留轻微渐变,正文统一实色以提升可读性
|
||||
- 评论组件(Artalk)
|
||||
- 桌/移端响应式:容器 `#artalk-container` 自动加 `.atk-mobile/.atk-desktop`
|
||||
- 移动端折叠:评论内容默认折叠,按钮“展开/收起”交互
|
||||
|
||||
## 数据缓存与性能
|
||||
|
||||
- GitHub 与 RSS 均采用前端缓存(`localStorage`)与过期策略
|
||||
- GitHub 数据已在写入缓存前进行精简(仅保留页面所需字段)
|
||||
- 渲染时添加淡入过渡与骨架占位,保证加载过程的平滑体验
|
||||
|
||||
## 常见问题
|
||||
|
||||
- 评论区在本地或非 HTTPS 环境显示“评论区已关闭”
|
||||
- 这是预期行为;上线到 HTTPS 环境并设置 `SiteConfig.artalk` 可开启
|
||||
- 夜间兴趣文本未显示渐变
|
||||
- 清理浏览器缓存后重试;检查 CSS 覆盖是否被自定义样式覆盖
|
||||
- GitHub/RSS 数据为空
|
||||
- 检查 `SiteConfig` 中的用户名与 RSS 接口;或查看浏览器控制台网络请求
|
||||
|
||||
## 进一步扩展
|
||||
|
||||
- 接入更多数据源(如 Twitter/知乎/掘金)
|
||||
- 为 3D 技术栈添加交互(点击跳链接、标签分组)
|
||||
- 增加文章详情页与分页列表
|
||||
|
||||
---
|
||||
|
||||
如果你在部署或自定义过程中遇到问题,欢迎提 Issue 或进行二次开发贡献。
|
||||
159
README.md
159
README.md
@@ -1,98 +1,91 @@
|
||||
<div align="center">
|
||||
|
||||
# Honesty's Personal Website
|
||||
|
||||
现代化个人主页,融合科技感与个性化元素,展示个人技术栈、开源项目和博客文章。
|
||||
一个轻量、优雅、现代化个人主页,融合科技感与个性化元素,展示个人技术栈、开源项目和博客文章。白天模式强调阅读与信息密度,夜间模式带来渐变与微光的沉浸视觉。
|
||||
|
||||
[](LICENSE)
|
||||
[](https://github.com/lqbby/Tech-Home/stargazers)
|
||||
[](https://github.com/lqbby/Tech-Home/network/members)
|
||||
<div align="center">
|
||||
|
||||
[在线预览](https://www.hehouhui.cn) | [关于我](https://about.hehouhui.cn)
|
||||
|
||||

|
||||
[](https://github.com/listener-He/Home/blob/main/LICENSE)
|
||||
[](https://github.com/listener-He/Home/stargazers)
|
||||
[](https://github.com/listener-He/Home/issues)
|
||||
|
||||
</div>
|
||||
|
||||
## 🌟 简介
|
||||
## 🌟 项目亮点
|
||||
|
||||
这是一个现代化的个人主页项目,融合了科技感设计和个性化元素,用于展示个人信息、技术栈、开源项目和博客文章等内容。项目设计美观、响应式布局,支持白天/黑夜模式切换,为访问者提供良好的浏览体验。
|
||||
现代、响应式个人站点,融合美学设计与技术实力,打造专业个人品牌形象。
|
||||
|
||||
## ✨ 特性
|
||||
### 🎨 视觉设计特色
|
||||
|
||||
- 🎨 现代化UI设计,融合科技感与个性化元素
|
||||
- 🌗 白天/黑夜模式自动切换
|
||||
- 📱 完全响应式设计,适配PC、平板和手机设备
|
||||
- 🌀 3D交互式技术标签云
|
||||
- 📊 动态展示GitHub项目和博客文章
|
||||
- 🌈 个性化的INFJ人格特质展示
|
||||
- 📞 多种联系方式集成(GitHub、邮箱、微信、知乎等)
|
||||
- ⚡ 高性能优化,快速加载体验
|
||||
- 🔧 易于定制和扩展
|
||||
- **渐变美学**:精心设计的渐变色彩方案,营造现代感视觉体验
|
||||
- **玻璃态效果**:白天柔和透明,夜间深色半透明,层次分明
|
||||
- **沉浸式夜间模式**:微光特效与深色主题,保护视力同时提升质感
|
||||
- **响应式布局**:完美适配桌面、平板、手机等各种设备
|
||||
|
||||
## 🚀 技术栈
|
||||
### 🚀 核心功能
|
||||
|
||||
- HTML5 + CSS3 + JavaScript
|
||||
- jQuery
|
||||
- Artalk (评论系统)
|
||||
- GitHub API
|
||||
- 和风天气 API
|
||||
- Hitokoto 一言
|
||||
- ✨ **渐变标题与微光夜间视觉**:仅标题保留渐变,正文统一实色,确保阅读清晰
|
||||
- 🧊 **玻璃态卡片**:白天柔和、夜间半透明深色,兼顾层次与审美
|
||||
- 🪐 **技术栈宇宙**:PC 端 3D 标签球;移动端三行无缝横向滚动
|
||||
- 📦 **内容聚合**:GitHub 开源仓库(星标/分支信息)、RSS 最新文章聚合
|
||||
- 💬 **评论互动**:Artalk 评论组件,移动端支持折叠/展开,桌/移端自适配样式
|
||||
- 🌗 **主题与语言**:一键切换 Day/Night 与 CN/EN,自动缓存记忆
|
||||
- ⚡ **性能与体验**:缓存字段精简、骨架占位与淡入过渡、异步抓取避免阻塞
|
||||
|
||||
## 📁 项目结构
|
||||
## 🖼️ 页面预览
|
||||
|
||||
```
|
||||
Home/
|
||||
├── index.html # 首页
|
||||
├── about.html # 关于我页面
|
||||
├── 404.html # 404页面
|
||||
├── css/
|
||||
│ ├── style.css # 首页样式
|
||||
│ ├── about.css # 关于我页面样式
|
||||
│ └── iconfont.css # 图标字体
|
||||
├── js/
|
||||
│ ├── main.js # 首页主逻辑
|
||||
│ ├── about.js # 关于我页面逻辑
|
||||
│ ├── config.js # 配置文件
|
||||
│ └── ...
|
||||
├── images/ # 图片资源
|
||||
├── data/ # 数据文件
|
||||
└── ...
|
||||
```
|
||||
<div align="center">
|
||||
<img src="images/home.png" alt="主页" width="32%" />
|
||||
<img src="images/about-day.png" alt="关于 · 白天" width="32%" />
|
||||
<img src="images/about-night.png" alt="关于 · 夜间" width="32%" />
|
||||
</div>
|
||||
|
||||
## 🎯 功能模块
|
||||
## 🧩 页面结构
|
||||
|
||||
### 首页 (index.html)
|
||||
- 个人简介展示
|
||||
- 头像翻页动画
|
||||
- Hitokoto一言
|
||||
- 日期及时间显示
|
||||
- 实时天气信息
|
||||
- 星空背景动画
|
||||
- 社交媒体链接
|
||||
### 🏠 主页(index)
|
||||
- 简洁直观的内容入口与导航
|
||||
- 轻量、清晰、直达的用户体验
|
||||
|
||||
### 关于我 (about.html)
|
||||
- 个人信息展示
|
||||
- 技术栈3D云图
|
||||
- INFJ人格特质展示
|
||||
- GitHub开源项目展示
|
||||
- 博客文章瀑布流
|
||||
- 个人时间线
|
||||
- 联系方式集成
|
||||
- 留言评论系统
|
||||
### 👤 关于页面(about)
|
||||
- **Profile**:头像、在线状态、个性化标题与社交链接
|
||||
- **Bio**:简介与格言,支持折叠/展开
|
||||
- **Stats**:编程年限、开源项目数、关注者
|
||||
- **MBTI**:人格代码、名称与四元素标签(白天实色高对比;夜间渐变微光)
|
||||
- **Tech Universe**:PC 3D 标签球;移动端三行滚动标签
|
||||
- **Interests**:两列卡片,圆角玻璃态,白天清爽、夜间半透明深色
|
||||
- **Open Source**:GitHub 仓库列表,星标与分支信息
|
||||
- **Latest Posts**:RSS 文章列表,标题/日期/分类
|
||||
- **Comments**:Artalk 评论区域,桌/移端响应式优化
|
||||
|
||||
## 🛠️ 部署
|
||||
## ⚙️ 技术栈与工程细节
|
||||
|
||||
- **前端技术**:原生 JS、CSS 与 HTML,无框架依赖
|
||||
- **评论系统**:Artalk 评论组件(HTTPS 环境启用;本地或非 HTTPS 显示关闭提示)
|
||||
- **数据获取**:GitHub REST API 拉取用户与仓库信息(写缓存前字段精简)
|
||||
- **内容聚合**:RSS 解析通过 DOMParser,失败时降级本地 JSON 或默认数据
|
||||
- **交互体验**:骨架加载与淡入动画、移动端可拖拽悬浮工具、ARIA 辅助属性
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
1. 克隆项目到本地:
|
||||
```bash
|
||||
git clone https://github.com/lqbby/Tech-Home.git
|
||||
# 克隆项目
|
||||
git clone https://github.com/listener-He/Honesty-Home.git
|
||||
|
||||
# 进入项目目录
|
||||
cd Honesty-Home
|
||||
|
||||
# 直接打开 HTML 文件预览
|
||||
open index.html
|
||||
open about.html
|
||||
```
|
||||
|
||||
2. 修改配置文件 `js/config.js` 中的API密钥和个人信息
|
||||
站点配置位于 `js/config.js`,用于设置 GitHub 用户名、RSS 地址、缓存策略、Artalk 服务等。
|
||||
|
||||
3. 部署到你喜欢的静态网站托管服务(GitHub Pages、Vercel、Netlify等)
|
||||
## 📦 部署与自定义
|
||||
|
||||
## 🙏 致谢
|
||||
请阅读《部署与自定义指南》获取详细说明:
|
||||
- [DEPLOY.md](./DEPLOY.md)
|
||||
|
||||
## 🙏 鸣谢与致敬
|
||||
|
||||
本项目在开发过程中参考和借鉴了以下开源项目:
|
||||
|
||||
@@ -101,14 +94,32 @@ git clone https://github.com/lqbby/Tech-Home.git
|
||||
|
||||
向这些项目的作者表示诚挚的感谢!
|
||||
|
||||
同时感谢以下开源项目的支持:
|
||||
|
||||
- [Artalk](https://artalk.js.org/) - 评论系统
|
||||
- [Remix Icon](https://remixicon.com/) - 图标库
|
||||
- [Normalize.css](https://necolas.github.io/normalize.css/) 与 [BootCDN](https://www.bootcdn.cn/) - 页面基础与加速
|
||||
- [GitHub](https://github.com/) 与 [RSS](https://www.rssboard.org/) 生态 - 内容聚合支持
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目采用 MIT 许可证,详情请参见 [LICENSE](LICENSE) 文件。
|
||||
本项目采用 [MIT](./LICENSE) 许可证。
|
||||
|
||||
## 👤 作者
|
||||
## 👨💻 作者
|
||||
|
||||
**Honesty (HeHouHui)**
|
||||
|
||||
- 博客: [blog.hehouhui.cn](https://blog.hehouhui.cn)
|
||||
- GitHub: [@listener-He](https://github.com/listener-He)
|
||||
- 邮箱: hehouhui@foxmail.com
|
||||
- 邮箱: [hehouhui@foxmail.com](mailto:hehouhui@foxmail.com)
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
欢迎提出改进建议,或将该站点作为你的个人主页模板进行自定义与二次开发。
|
||||
|
||||
[](https://github.com/listener-He/Honesty-Home/blob/main/LICENSE)
|
||||
[](https://github.com/listener-He/Honesty-Home/stargazers)
|
||||
|
||||
</div>
|
||||
@@ -1329,41 +1329,7 @@ body {
|
||||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
|
||||
/* 添加Artalk评论组件的自定义样式 */
|
||||
.artalk-comment {
|
||||
--at-color-main: var(--accent) !important;
|
||||
--at-color-font: var(--text-primary) !important;
|
||||
--at-color-meta: var(--text-secondary) !important;
|
||||
--at-color-border: rgba(128, 128, 128, 0.1) !important;
|
||||
--at-color-bg: var(--glass-bg) !important;
|
||||
--at-color-bg-grey: rgba(128, 128, 128, 0.05) !important;
|
||||
--at-color-bg-hover: rgba(128, 128, 128, 0.1) !important;
|
||||
--at-color-bg-light: var(--glass-bg) !important;
|
||||
--at-color-shadow: var(--glass-shadow) !important;
|
||||
}
|
||||
|
||||
[data-theme="night"] .artalk-comment {
|
||||
--at-color-font: var(--text-primary) !important;
|
||||
--at-color-meta: var(--text-secondary) !important;
|
||||
--at-color-border: rgba(255, 255, 255, 0.08) !important;
|
||||
--at-color-bg: var(--glass-bg) !important;
|
||||
--at-color-bg-grey: rgba(255, 255, 255, 0.05) !important;
|
||||
--at-color-bg-hover: rgba(255, 255, 255, 0.1) !important;
|
||||
--at-color-bg-light: var(--glass-bg) !important;
|
||||
--at-color-shadow: var(--glass-shadow) !important;
|
||||
}
|
||||
|
||||
.artalk-comment .atk-main-editor {
|
||||
backdrop-filter: blur(var(--glass-blur));
|
||||
-webkit-backdrop-filter: blur(var(--glass-blur));
|
||||
border-radius: var(--radius) !important;
|
||||
}
|
||||
|
||||
.artalk-comment .atk-comment-wrap {
|
||||
backdrop-filter: blur(var(--glass-blur));
|
||||
-webkit-backdrop-filter: blur(var(--glass-blur));
|
||||
border-radius: var(--radius) !important;
|
||||
}
|
||||
/* Artalk 组件(按容器选择器统一覆盖,移除无效类选择器) */
|
||||
|
||||
/* 确保评论区域适配白天/黑夜模式 */
|
||||
#artalk-container {
|
||||
@@ -1375,6 +1341,10 @@ body {
|
||||
border: var(--glass-border);
|
||||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
#artalk-container .atk-editor, #artalk-container .atk-editor textarea, #artalk-container .atk-editor input {
|
||||
background: var(--glass-bg);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
#artalk-container .atk-comment-wrap {
|
||||
background: var(--glass-bg);
|
||||
@@ -1383,6 +1353,17 @@ body {
|
||||
opacity: 0.9;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
#artalk-container .atk-dialog, #artalk-container .atk-layer .atk-dialog { background: var(--glass-bg); color: var(--text-primary); border: var(--glass-border); box-shadow: var(--glass-shadow); }
|
||||
[data-theme="night"] #artalk-container .atk-main-editor,
|
||||
[data-theme="night"] #artalk-container .atk-editor,
|
||||
[data-theme="night"] #artalk-container .atk-comment-wrap,
|
||||
[data-theme="night"] #artalk-container .atk-dialog,
|
||||
[data-theme="night"] #artalk-container .atk-layer .atk-dialog {
|
||||
background: rgba(30,30,35,0.55);
|
||||
color: var(--text-primary);
|
||||
border: 1px solid rgba(255,255,255,0.08);
|
||||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
|
||||
#artalk-container.atk-mobile .atk-main-editor { padding: 12px; font-size: 0.95rem; }
|
||||
#artalk-container.atk-mobile .atk-comment-wrap { padding: 12px 14px; font-size: 0.95rem; }
|
||||
|
||||
BIN
images/about-day.png
Normal file
BIN
images/about-day.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
BIN
images/about-night.png
Normal file
BIN
images/about-night.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
@@ -69,7 +69,7 @@ class I18nManager {
|
||||
"nav.home": "首页",
|
||||
"nav.about": "关于",
|
||||
"nav.blog": "博客",
|
||||
"status.online": "在线",
|
||||
"status.online": "活跃",
|
||||
"profile.name": "Honesty",
|
||||
"profile.role": "Java后端 & AI探索者",
|
||||
"profile.location": "上海, 中国",
|
||||
|
||||
Reference in New Issue
Block a user