这款主题不仅拥有现代化的 UI 设计,还深度集成了运动数据可视化、AI 对话助手等硬核功能。本文将详细复盘这次 “AI 驱动开发” 的全过程,解析主题背后的技术细节。
1. 设计理念与架构规划
1.1 核心目标
传统的 Hexo 主题大多偏向于纯文本内容的展示,而我希望 “Awen” 主题能体现我的个人特质:“代码与运动”。因此,确立了以下核心特性:
- 沉浸式首屏 (Hero Splash):结合地图轨迹动画,展示马拉松运动精神。
- 极简主义设计:黑白灰为主色调,支持自动/手动深色模式。
- 数据可视化:原生支持 GPX 数据解析与图表渲染。
- AI 集成:内置 AI 聊天页面,作为个人数字分身。
1.2 技术选型
- 模板引擎: EJS (Hexo 默认,逻辑简单直接)
- 样式预处理: Stylus (简洁高效,无需括号分号)
- 前端库:
- AMap (高德地图 JS API 2.0)
- Chart.js (轻量级图表库)
- FontAwesome (图标库)
- 构建工具: Hexo Native
2. AI 赋能的关键功能实现
在开发过程中,我主要负责“提出需求”和“Code Review”,而 AI 负责具体的代码实现。以下是几个最具代表性的功能模块。
2.1 动态马拉松轨迹动画 (Hero Splash)
这是主题最复杂的功能之一。我需要解析 .gpx 文件,将经纬度坐标转换为高德地图坐标(纠偏),并在地图上绘制出动态生长的轨迹。
AI 的贡献:
- 坐标转换算法:AI 直接提供了 WGS84 到 GCJ02 的坐标转换函数,省去了我查找公式和调试的时间。
- 动画逻辑:利用
requestAnimationFrame实现平滑的轨迹生长动画,并计算缓动效果 (EaseOutQuart),让动画看起来更自然。 - 数据解析:自动生成了 XML 解析逻辑,从 GPX 文件中提取
trkpt及其扩展数据(心率、步频)。
|
2.2 Stats Overlay (数据统计浮层)
为了让首屏动画更具科技感,我们设计了一个悬浮的数据面板。
实现细节:
- 布局:AI 建议使用 Flexbox 布局,并实现了折叠/展开的交互逻辑,适配移动端。
- 实时更新:在动画循环中,AI 编写了逻辑来根据当前进度索引 (
currentIdx) 查找对应的 GPX 数据点,并实时更新 DOM 元素。 - 心率区间可视化:根据用户的年龄和静息心率,AI 自动生成了心率区间计算公式,并动态改变心率数值的颜色(热身、有氧、无氧等)。
|
2.3 深色模式与响应式设计
我要求主题必须支持深色模式,且能跟随系统自动切换。
AI 的解决方案:
- 使用 CSS Variables (
:rootvs[data-theme="dark"]) 定义全局颜色变量。 - 编写了一段精简的内联 Script 放在
<head>中,防止页面闪烁 (FOUC)。 - 针对移动端 (Max-width: 768px),AI 自动调整了 Sidebar 的行为,将其改为抽屉式导航,并优化了 Padding 和字体大小。
|
2.4 AI 聊天页面集成
为了集成我的 AI 智能体,我在主题中新增了一个 ai-chat 布局。
开发过程:
- 我只需告诉 AI:“我需要一个类似 ChatGPT 的聊天界面,左边是会话列表,右边是对话框。”
- AI 生成了完整的 HTML 结构和 CSS 样式,包括气泡消息、打字机效果光标、滚动到底部等细节。
- 虽然后端 API 调用逻辑需要我配置代理 (
coze_proxy_url),但前端的 UI 交互代码几乎是 100% 由 AI 生成的。
3. 开发体验总结
3.1 效率提升
使用 AI 开发 Hexo 主题,效率提升是数量级的。
- 样板代码:EJS 的循环结构、Stylus 的 Reset 样式,AI 秒级生成。
- 复杂逻辑:地图 API 的调用、Canvas 图表的配置、数学计算,这些通常需要查阅文档耗时数小时的工作,AI 分分钟搞定。
3.2 角色转变
开发者从“码农”变成了“产品经理”和“架构师”。我不再纠结于 div 怎么居中,而是专注于:
- 交互流程是否顺畅?
- 配色是否符合审美?
- 功能模块如何解耦?
3.3 遇到的挑战
AI 并非万能。在开发过程中也遇到了一些坑:
- 上下文丢失:当文件过长时,AI 可能会忘记之前的变量定义。
- 幻觉:偶尔会编造不存在的 Hexo 辅助函数,需要人工校验。
- 样式冲突:生成的 CSS 有时会覆盖全局样式,需要手动调整优先级。
4. 结语
“Awen” 主题的诞生,验证了在 AI 辅助下,个人开发者可以以极低的成本打造出专业级的产品。这不仅是一个博客主题,更是我对未来编程范式的一次实践。
如果你也想拥有一款独一无二的博客主题,不妨试试打开 IDE,唤起你的 AI 助手,开始你的创造之旅。
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!