技术
欢迎来到我的新博客 Welcome to My New Blog
XinLiu
2 分钟阅读 min read
🎉 博客正式上线
经过一段时间的准备和开发,我的个人博客终于正式上线了!这个博客使用了当前最流行的技术栈构建,包括:
- Astro - 现代化的静态站点生成器
- Tailwind CSS - 实用优先的 CSS 框架
- TypeScript - 类型安全的 JavaScript
- Cloudflare Pages - 全球边缘网络部署
为什么选择 Astro?
在众多的静态站点生成器中,我最终选择了 Astro,主要基于以下几个原因:
1. 极致的性能
Astro 采用了独特的 Islands Architecture(岛屿架构),默认情况下不向客户端发送任何 JavaScript。这意味着:
- ⚡ 更快的加载速度
- 📱 更好的移动端体验
- 🔍 更好的 SEO 表现
2. 灵活的框架集成
// 可以在同一个项目中使用不同的框架
import ReactComponent from './components/React.jsx';
import VueComponent from './components/Vue.vue';
import SvelteComponent from './components/Svelte.svelte';
3. 内容优先的设计理念
Astro 的 Content Collections 功能让管理博客文章变得异常简单:
// src/content/config.ts
const blog = defineCollection({
schema: z.object({
title: z.string(),
description: z.string(),
pubDate: z.coerce.date(),
tags: z.array(z.string()),
}),
});
博客功能特性
这个博客实现了以下核心功能:
- ✅ Markdown 支持 - 使用 Markdown 编写文章,支持代码高亮
- ✅ 响应式设计 - 完美适配各种设备
- ✅ 暗色模式 - 保护眼睛,适应不同环境
- ✅ 评论系统 - 基于 GitHub Discussions 的 Giscus
- ✅ RSS 订阅 - 方便读者订阅更新
- ✅ 自动部署 - GitHub Actions + Cloudflare Pages
代码示例
这里是一个简单的 Astro 组件示例:
---
// Component Script (runs on server)
const { title } = Astro.props;
const items = await fetch('/api/items').then(res => res.json());
---
<!-- Component Template (HTML + JS) -->
<div>
<h1>{title}</h1>
<ul>
{items.map(item => (
<li>{item.name}</li>
))}
</ul>
</div>
未来计划
在接下来的时间里,我计划:
- 🎯 定期分享技术文章和学习心得
- 🛠️ 持续优化博客功能和用户体验
- 🤝 与读者互动,共同学习成长
- 📚 构建个人知识库
结语
感谢你访问我的博客!如果你对文章内容有任何问题或建议,欢迎在评论区留言。让我们一起在技术的道路上不断前行!
P.S. 如果你也想搭建类似的博客,可以查看我的 GitHub 仓库,里面有完整的源代码和搭建教程。