feat: 初始化 Astro 学习博客骨架

- Astro+TS 严格模式(禁止 any、显式返回类型)
- ESLint Flat Config + Prettier 格式化
- 内容集合(posts)与示例文章
- OSS 图床可配置 Img 组件
- 抽离 posts 数据逻辑(更易类型检查)
- getStaticPaths 修正(rest 路由传字符串)
- README/AGENTS 中文文档与约定
- Gitea CI:typecheck + lint
- 忽略 ref/(仅作临时参考)
This commit is contained in:
2025-11-27 17:08:07 +08:00
commit 6cc96a7126
24 changed files with 5381 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
---
import BaseLayout from './BaseLayout.astro';
interface Props {
title: string;
description?: string;
pubDate?: Date;
}
const { title, description, pubDate } = Astro.props;
---
<BaseLayout title={title}>
<article>
<h1>{title}</h1>
{pubDate && <p style="color:#666;">{pubDate.toLocaleDateString('zh-CN')}</p>}
{description && <p>{description}</p>}
<slot />
</article>
</BaseLayout>