Skip to content

🎉 站点功能增强说明

本次更新为站点添加了多项实用功能,提升用户体验和 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-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.rss
  • feed.atom
  • feed.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

📝 后续优化建议

  1. RSS 自动化: 设置 CI/CD 在内容更新时自动重新生成 RSS
  2. 性能预算: 在 CI 中集成 Lighthouse 检查
  3. A/B 测试: 测试新功能对用户行为的影响
  4. 国际化: 为多语言站点提供相应的 SEO 优化

🐛 问题排查

RSS 没有生成

  1. 确保已安装 feed 包:pnpm add -D feed
  2. 检查构建日志是否有错误
  3. 验证 Markdown 文件的 frontmatter 格式

性能监控不显示

  1. 确认浏览器支持 PerformanceObserver API
  2. 检查是否在开发环境或添加了 ?debug-perf 参数
  3. 查看浏览器控制台是否有错误

SEO 标签未生效

  1. 检查 transformHead 配置是否正确
  2. 验证 frontmatter 中的字段名称
  3. 查看生成的 HTML 源代码

📚 相关文档


更新日期: 2026-02-26 版本: 1.1.0

内容仅供学习参考,如有错误欢迎指正与 PR