Merge branch 'gemin3'

This commit is contained in:
hehh
2025-11-24 03:12:03 +08:00
6 changed files with 206 additions and 110 deletions

104
DEPLOY.md Normal file
View 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
View File

@@ -1,98 +1,91 @@
<div align="center">
# Honesty's Personal Website # Honesty's Personal Website
现代化个人主页,融合科技感与个性化元素,展示个人技术栈、开源项目和博客文章。 一个轻量、优雅、现代化个人主页,融合科技感与个性化元素,展示个人技术栈、开源项目和博客文章。白天模式强调阅读与信息密度,夜间模式带来渐变与微光的沉浸视觉。
[![License](https://img.shields.io/github/license/lqbby/Tech-Home?color=blue)](LICENSE) <div align="center">
[![GitHub stars](https://img.shields.io/github/stars/lqbby/Tech-Home)](https://github.com/lqbby/Tech-Home/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/lqbby/Tech-Home)](https://github.com/lqbby/Tech-Home/network/members)
[在线预览](https://www.hehouhui.cn) | [关于我](https://about.hehouhui.cn) [![GitHub](https://img.shields.io/github/license/listener-He/Home?color=blue)](https://github.com/listener-He/Home/blob/main/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/listener-He/Home)](https://github.com/listener-He/Home/stargazers)
![首页预览](images/home.png) [![GitHub issues](https://img.shields.io/github/issues/listener-He/Home)](https://github.com/listener-He/Home/issues)
</div> </div>
## 🌟 简介 ## 🌟 项目亮点
这是一个现代化的个人主页项目,融合了科技感设计和个性化元素,用于展示个人信息、技术栈、开源项目和博客文章等内容。项目设计美观、响应式布局,支持白天/黑夜模式切换,为访问者提供良好的浏览体验 现代、响应式个人站点,融合美学设计与技术实力,打造专业个人品牌形象
## ✨ 特性 ### 🎨 视觉设计特色
- 🎨 现代化UI设计融合科技感与个性化元素 - **渐变美学**:精心设计的渐变色彩方案,营造现代感视觉体验
- 🌗 白天/黑夜模式自动切换 - **玻璃态效果**:白天柔和透明,夜间深色半透明,层次分明
- 📱 完全响应式设计适配PC、平板和手机设备 - **沉浸式夜间模式**:微光特效与深色主题,保护视力同时提升质感
- 🌀 3D交互式技术标签云 - **响应式布局**:完美适配桌面、平板、手机等各种设备
- 📊 动态展示GitHub项目和博客文章
- 🌈 个性化的INFJ人格特质展示
- 📞 多种联系方式集成GitHub、邮箱、微信、知乎等
- ⚡ 高性能优化,快速加载体验
- 🔧 易于定制和扩展
## 🚀 技术栈 ### 🚀 核心功能
- HTML5 + CSS3 + JavaScript - **渐变标题与微光夜间视觉**:仅标题保留渐变,正文统一实色,确保阅读清晰
- jQuery - 🧊 **玻璃态卡片**:白天柔和、夜间半透明深色,兼顾层次与审美
- Artalk (评论系统) - 🪐 **技术栈宇宙**PC 端 3D 标签球;移动端三行无缝横向滚动
- GitHub API - 📦 **内容聚合**GitHub 开源仓库(星标/分支信息、RSS 最新文章聚合
- 和风天气 API - 💬 **评论互动**Artalk 评论组件,移动端支持折叠/展开,桌/移端自适配样式
- Hitokoto 一言 - 🌗 **主题与语言**:一键切换 Day/Night 与 CN/EN自动缓存记忆
-**性能与体验**:缓存字段精简、骨架占位与淡入过渡、异步抓取避免阻塞
## 📁 项目结构 ## 🖼️ 页面预览
``` <div align="center">
Home/ <img src="images/home.png" alt="主页" width="32%" />
├── index.html # 首页 <img src="images/about-day.png" alt="关于 · 白天" width="32%" />
├── about.html # 关于我页面 <img src="images/about-night.png" alt="关于 · 夜间" width="32%" />
├── 404.html # 404页面 </div>
├── css/
│ ├── style.css # 首页样式
│ ├── about.css # 关于我页面样式
│ └── iconfont.css # 图标字体
├── js/
│ ├── main.js # 首页主逻辑
│ ├── about.js # 关于我页面逻辑
│ ├── config.js # 配置文件
│ └── ...
├── images/ # 图片资源
├── data/ # 数据文件
└── ...
```
## 🎯 功能模块 ## 🧩 页面结构
### 首页 (index.html) ### 🏠 主页index
- 个人简介展示 - 简洁直观的内容入口与导航
- 头像翻页动画 - 轻量、清晰、直达的用户体验
- Hitokoto一言
- 日期及时间显示
- 实时天气信息
- 星空背景动画
- 社交媒体链接
### 关于我 (about.html) ### 👤 关于页面about
- 个人信息展示 - **Profile**:头像、在线状态、个性化标题与社交链接
- 技术栈3D云图 - **Bio**:简介与格言,支持折叠/展开
- INFJ人格特质展示 - **Stats**:编程年限、开源项目数、关注者
- GitHub开源项目展示 - **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 ```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)** **Honesty (HeHouHui)**
- 博客: [blog.hehouhui.cn](https://blog.hehouhui.cn) - 博客: [blog.hehouhui.cn](https://blog.hehouhui.cn)
- GitHub: [@listener-He](https://github.com/listener-He) - GitHub: [@listener-He](https://github.com/listener-He)
- 邮箱: hehouhui@foxmail.com - 邮箱: [hehouhui@foxmail.com](mailto:hehouhui@foxmail.com)
---
<div align="center">
欢迎提出改进建议,或将该站点作为你的个人主页模板进行自定义与二次开发。
[![GitHub](https://img.shields.io/github/license/listener-He/Honesty-Home?color=blue)](https://github.com/listener-He/Honesty-Home/blob/main/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/listener-He/Honesty-Home)](https://github.com/listener-He/Honesty-Home/stargazers)
</div>

View File

@@ -1329,41 +1329,7 @@ body {
box-shadow: var(--glass-shadow); box-shadow: var(--glass-shadow);
} }
/* 添加Artalk评论组件的自定义样式 */ /* 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-container { #artalk-container {
@@ -1375,6 +1341,10 @@ body {
border: var(--glass-border); border: var(--glass-border);
box-shadow: var(--glass-shadow); 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 { #artalk-container .atk-comment-wrap {
background: var(--glass-bg); background: var(--glass-bg);
@@ -1383,6 +1353,17 @@ body {
opacity: 0.9; opacity: 0.9;
transition: opacity 0.2s; 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-main-editor { padding: 12px; font-size: 0.95rem; }
#artalk-container.atk-mobile .atk-comment-wrap { padding: 12px 14px; 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
images/about-night.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -69,7 +69,7 @@ class I18nManager {
"nav.home": "首页", "nav.home": "首页",
"nav.about": "关于", "nav.about": "关于",
"nav.blog": "博客", "nav.blog": "博客",
"status.online": "在线", "status.online": "活跃",
"profile.name": "Honesty", "profile.name": "Honesty",
"profile.role": "Java后端 & AI探索者", "profile.role": "Java后端 & AI探索者",
"profile.location": "上海, 中国", "profile.location": "上海, 中国",