快速开始指南
欢迎使用 Moments 时刻分享系统!这个指南将帮助你在 5 分钟内了解如何使用和配置 Moments。
🚀 第一步:了解基本概念
什么是 Moment?
一个 Moment 是一个时刻记录,包含:
- 标题 - 简短描述
- 内容 - 详细内容
- 日期 - 记录时间
- 作者 - 创建者
- 样式 - 显示风格
- 标签 - 分类标签
- 按钮 - 交互功能
基本结构
interface MomentProps {
title: string;
content: string;
date: string;
author: string;
style: 'simple' | 'feed' | 'photo-centric' | 'minimal';
tags?: string[];
actions?: Array<{
label: string;
href?: string;
onClick?: () => void;
variant?: 'primary' | 'secondary' | 'outline';
}>;
}
📝 第二步:创建你的第一个 Moment
1. 选择合适的分类文件
根据内容类型选择文件:
data/Moments/shares/blog.ts
- 博客相关data/Moments/shares/life.ts
- 生活记录data/Moments/shares/tech.ts
- 技术学习data/Moments/shares/test.ts
- 测试内容
2. 添加新的时刻
// 例如在 data/Moments/shares/life.ts 中添加
export const lifeMoments: MomentProps[] = [
// 现有的时刻...
// 🆕 添加你的新时刻
{
title: "今天的早餐",
content: "自己做了一份营养丰富的早餐,包括全麦面包、煎蛋和牛奶。感觉一天都充满了活力!",
date: "2025-08-01",
author: "你的名字",
style: 'simple',
tags: ['早餐', '生活', '健康'],
actions: [
{
label: '点赞',
variant: 'secondary',
onClick: () => alert('谢谢点赞!')
}
]
}
];
3. 保存并查看效果
保存文件后,Docusaurus 会自动重新加载,你可以在 /moments
页面看到新的时刻。
🎨 第三步:尝试不同的样式
让我们为同一个内容尝试不同的样式:
Simple 样式
{
title: "学习笔记",
content: "今天学习了 React Hooks 的使用方法...",
style: 'simple', // 简洁清晰
// ...
}
Feed 样式
{
title: "学习笔记",
content: "今天学习了 React Hooks 的使用方法...",
style: 'feed', // 社交媒体风格
// ...
}
查看效果差异
访问 /moments
页面,切换不同的分类,观察样式的区别。
🎯 第四步:添加交互功能
基础按钮
actions: [
// 链接按钮
{
label: '查看详情',
href: '/blog/my-post',
variant: 'primary'
},
// 事件按钮
{
label: '点赞',
variant: 'secondary',
onClick: () => console.log('已点赞')
}
]
使用预定义函数
import { handleLike, handleShare } from '../actions';
actions: [
{
label: '点赞',
onClick: () => handleLike("我的时刻")
},
{
label: '分享',
onClick: () => handleShare("我的时刻")
}
]
🔄 第五步:创建新的分类
如果现有分类不满足需求,可以创建新的分类:
1. 在配置中添加分类
编辑 data/Moments/categories.ts
:
export const CATEGORY_REGISTRY = {
// 现有分类...
// 🆕 新增分类
reading: {
id: 'reading',
name: '读书',
description: '读书心得和书籍推荐',
color: '#6f42c1',
icon: '📚'
}
};
2. 创建数据文件
创建 data/Moments/shares/reading.ts
:
import { MomentProps } from '../types';
export const readingMoments: MomentProps[] = [
{
title: "《深入理解计算机系统》",
content: "这本书让我对计算机底层有了更深的认识...",
date: "2025-08-01",
author: "RicMoe",
style: 'simple',
tags: ['读书', '计算机', '学习']
}
];
3. 添加到索引
编辑 data/Moments/shares/index.ts
:
export { readingMoments } from './reading';
export const CATEGORY_MOMENTS_MAP = {
// 现有映射...
reading: readingMoments, // 🆕 添加新映射
};
📊 第六步:查看统计信息
系统会自动计算统计信息:
import { getCategoryStats, getAllTagsWithStats } from '@site/data/Moments';
// 获取分类统计
const categoryStats = getCategoryStats();
console.log(categoryStats);
// 输出: [{ id: 'blog', name: '博客', count: 5, percentage: '25.0' }, ...]
// 获取标签统计
const tagStats = getAllTagsWithStats();
console.log(tagStats);
// 输出: [{ tag: 'React', count: 3 }, { tag: '学习', count: 2 }, ...]
🎉 完成!
恭喜你!现在你已经掌握了 Moments 系统的基础使用方法:
✅ 创建时刻 - 在对应分类文件中添加内容
✅ 选择样式 - 根据内容类型选择合适样式
✅ 添加交互 - 使用按钮提供用户交互
✅ 创建分类 - 根据需要扩展新的分类
✅ 查看统计 - 了解内容分布情况
🔍 下一步学习
深入了解
实际应用
❓ 常见问题
Q: 新添加的时刻没有显示?
A: 检查文件保存是否成功,Docusaurus 开发服务器是否重新加载。
Q: 按钮点击没有反应?
A: 确保 onClick 函数语法正确,检查浏览器控制台是否有错误。
Q: 新分类没有出现在筛选器中?
A: 确保完成了三个步骤:配置注册、创建数据文件、添加索引映射。
Q: 样式显示不正常?
A: 检查 style 属性是否为有效值:'simple'、'feed'、'photo-centric'、'minimal'。
需要帮助? 查看详细的 使用参考文档 或提出 Issue。