🎉 站点功能增强说明
本次更新为站点添加了多项实用功能,提升用户体验和 SEO 表现。
✨ 新增功能
1. 📡 RSS 订阅功能
- 功能: 支持 RSS 2.0、Atom 1.0 和 JSON Feed 三种格式
- 订阅地址:
- RSS:
https://www.cmwrun.com/feed.rss - Atom:
https://www.cmwrun.com/feed.atom - JSON:
https://www.cmwrun.com/feed.json
- RSS:
- 说明页面: /rss-subscribe
- 实现文件:
.vitepress/theme/rss.ts
2. 📈 阅读进度条
- 功能: 页面顶部显示阅读进度
- 特性:
- 平滑动画
- 渐变色指示
- 智能显示/隐藏(滚动超过 50px 后显示)
- 组件:
.vitepress/theme/components/ReadingProgress.vue
3. 🧭 面包屑导航
- 功能: 文档页面顶部显示当前位置
- 特性:
- 自动识别路径结构
- 中文名称映射
- 响应式设计
- 组件:
.vitepress/theme/components/Breadcrumb.vue
4. 🔍 增强的 SEO
- Open Graph 标签: 社交媒体分享优化
- Twitter Cards: Twitter 分享卡片
- 结构化数据: JSON-LD 格式的文章数据
- 自动生成: 基于 frontmatter 和页面内容
- 实现文件:
.vitepress/theme/seo.ts
5. ⚡ 性能监控
- Web Vitals 监控:
- LCP (Largest Contentful Paint)
- FID (First Input Delay)
- CLS (Cumulative Layout Shift)
- FCP (First Contentful Paint)
- TTFB (Time to First Byte)
- 显示方式: 页面右下角悬浮按钮(开发环境或添加
?debug-perf参数) - 评分系统: 绿色(good) / 黄色(需改进) / 红色(差)
- 组件:
.vitepress/theme/components/PerformanceMonitor.vue
6. 🖨️ 打印样式优化
- 功能: 友好的打印和 PDF 导出样式
- 优化项:
- 隐藏导航、侧边栏等非内容元素
- 优化字体大小和行距
- 显示链接完整 URL
- 代码块样式优化
- 表格和图片适配
- 分页控制
- 样式文件:
.vitepress/theme/print.css
🚀 使用方法
启用/禁用功能
所有新功能已自动集成到主题中。如需调整:
typescript
// .vitepress/theme/index.ts
Layout() {
return h(DefaultTheme.Layout, null, {
'doc-before': () => [h(Breadcrumb), h(ReadingInfo)], // 面包屑 + 阅读信息
'layout-top': () => h(ReadingProgress), // 阅读进度条
'layout-bottom': () => [
h(PerformanceMonitor), // 性能监控(可选)
// ... 其他组件
],
});
}页面级 SEO 配置
在 Markdown 文件的 frontmatter 中添加 SEO 信息:
yaml
---
title: 文章标题
description: 文章描述,用于 SEO 和社交媒体分享
image: /images/cover.jpg
author: 作者名称
date: 2024-01-01
tags:
- JavaScript
- React
- 性能优化
---RSS 生成
RSS Feed 会在构建时自动生成:
bash
pnpm build生成的文件位于 .vitepress/dist/ 目录下:
feed.rssfeed.atomfeed.json
性能监控查看
- 开发环境: 自动显示
- 生产环境: 在 URL 中添加
?debug-perf参数
例如:https://www.cmwrun.com/page?debug-perf
📦 新增依赖
json
{
"devDependencies": {
"feed": "^4.2.2" // RSS Feed 生成
}
}🔧 配置文件变更
.vitepress/config.mts
typescript
// 添加 SEO 支持
import { createSEOTransformHead } from './theme/seo';
export default defineConfig({
// SEO 增强
transformHead: createSEOTransformHead(),
// RSS 订阅链接
head: [
['link', { rel: 'alternate', type: 'application/rss+xml', href: '/feed.rss' }],
// ...
],
// 构建后生成 RSS
buildEnd: async (config) => {
const { generateFeed } = await import('./theme/rss');
await generateFeed();
},
});🎨 样式定制
阅读进度条颜色
css
.reading-progress-bar {
background: linear-gradient(
90deg,
var(--vp-c-brand-1) 0%,
var(--vp-c-brand-2) 50%,
var(--vp-c-brand-3) 100%
);
}面包屑样式
css
.breadcrumb-link {
color: var(--vp-c-text-2);
}
.breadcrumb-link:hover {
color: var(--vp-c-brand-1);
}📊 性能影响
所有新增组件都采用了性能优化措施:
- ✅ 异步加载 (
defineAsyncComponent) - ✅ 条件渲染(仅在浏览器端)
- ✅ 事件节流/防抖
- ✅ 小体积(总计 < 50KB)
🧪 测试
运行测试确保功能正常:
bash
# 运行所有测试
pnpm test
# 运行特定测试
pnpm test tests/user-flows.spec.ts
# 带界面的测试
pnpm test:ui📝 后续优化建议
- RSS 自动化: 设置 CI/CD 在内容更新时自动重新生成 RSS
- 性能预算: 在 CI 中集成 Lighthouse 检查
- A/B 测试: 测试新功能对用户行为的影响
- 国际化: 为多语言站点提供相应的 SEO 优化
🐛 问题排查
RSS 没有生成
- 确保已安装
feed包:pnpm add -D feed - 检查构建日志是否有错误
- 验证 Markdown 文件的 frontmatter 格式
性能监控不显示
- 确认浏览器支持 PerformanceObserver API
- 检查是否在开发环境或添加了
?debug-perf参数 - 查看浏览器控制台是否有错误
SEO 标签未生效
- 检查
transformHead配置是否正确 - 验证 frontmatter 中的字段名称
- 查看生成的 HTML 源代码
📚 相关文档
更新日期: 2026-02-26 版本: 1.1.0