博客 作品集

基于 Astro 构建的作品集网站与技术博客,用于分享我的软件工程历程、展示项目作品,并记录编程思考。

Astrojs Preactjs tailwindCSS

目标

搭建一个在线平台,用于展示项目并分享开发经验。作品集部分呈现技术工作成果,博客则用于记录学习心得并回馈社区。

同时这也是我的个人文档库——一个可以随时回顾并查找已解决问题方案的地方。

作品集

作品集以简洁直观的方式展示项目。每个项目都有独立页面,配以清晰的技术说明。

project

project

博客

博客用于分享技术探索。内容包括实用教程、项目实践心得,以及对复杂概念的简化阐释。

目标是让复杂思想更易理解,并提供可在其他项目中复用的具体解决方案。文章支持交互式 React 组件(得益于 MDX),可通过实时演示而非简单截图来说明概念。

project

project

技术选型

选择 Astro 是看重其性能优先的理念。不同于传统 JavaScript 框架,Astro 生成超快的静态页面,仅在真正需要时才加载 JavaScript。

架构基于 monorepo,同时托管博客和作品集。Header、Footer 及布局系统等核心组件集中在共享包中,在两个应用间复用。这避免了代码重复,确保整个平台样式一致。

样式方面选用 纯 CSS 而非 Tailwind,以保持对视觉风格的完全控制,打造独特设计。内容采用 MDX 编写,结合 Markdown 的简洁性与 React 组件的强大功能。

project

project

基础设施与部署

部署架构在保证稳定性和性能的同时支持快速迭代。实施了包含开发、预发布和生产三个级别的多环境配置。

生产环境托管在 GitHub Pages 以确保可靠性,预发布和预览环境则运行在 Cloudflare Pages 上以提升速度。每个功能分支自动生成独立的预览环境,极大简化了代码审查和测试流程。

通过 GitHub Actions 实现完全自动化,编排整个工作流:推送分支触发构建和预览部署,合并到主分支则部署至生产环境。Astro 构建通过 Turbo 优化,pnpm 确保快速且可重现的依赖安装。

这套工作流让我能够并行开发多个功能,每个功能都有独立环境,在预发布环境验证后,即可自信地部署到生产环境。

Deployment architecture

Deployment architecture

Deployment architecture

性能与 SEO

SEO 从一开始就是优先事项。每个页面包含完整的元数据、自动生成的 XML 站点地图,以及优化的 robots.txt 文件。

HTML 结构语义化且易于访问,使用合适的标签以便索引。URL 简洁且具有描述性,网站自动生成 Open Graph 标签,优化社交分享效果。