feat: Implement blog home and post components with sidebar and pagination

- Added BlogHome component for displaying posts with sorting options (latest/popular).
- Integrated Sidebar with About, Hot Posts, Tags, and Misskey Iframe components.
- Created BlogPost component to render individual posts with metadata and content.
- Developed GravatarAvatar component for user avatars.
- Implemented Markdown rendering with syntax highlighting and custom code blocks.
- Added pagination component for navigating through posts.
- Enhanced login form with OpenID Connect options and email/password authentication.
- Utility functions for generating post URLs and calculating reading time.
This commit is contained in:
2025-07-30 00:18:32 +08:00
parent 1b29d50ba4
commit 92c2a58e80
23 changed files with 196 additions and 63 deletions

View File

@ -0,0 +1,12 @@
import type {Post} from "@/models/post";
export function getPostHref(post: Post) {
return `/p/${post.id}`;
}
// 阅读分钟数
export function calculateReadingTime(content: string): number {
const words = content.length;
const readingTime = Math.ceil(words / 270);
return readingTime;
}