这是这个博客的第一篇日常记录。
它不是一篇完整的技术教程,而是一次阶段性整理:这个网站为什么出现,我做了哪些选择,目前完成到了哪里,以及接下来准备怎样使用它。
为什么建立这个博客
我目前是地理专业学生,在学习过程中,课程笔记、代码片段等文件主要是放在obsidian里整理。但是时间一长文件库内容量一大,我就很难快速找到以前解决过的问题,或者说抓住我学习关注的重点,也不容易看清自己的学习路径。
因此,我想建立一个长期维护的个人博客,主要记录三类内容:
- 地理科学课程与研究方法的学习笔记;
- 编程、算法、数据分析和开发工具的使用经验;
- 地理与计算交叉领域的项目过程和复盘。
这个网站首先服务于我自己的知识整理,同时也希望其中一部分内容能为遇到相似问题的人提供参考。
我对网站的基本要求
以下且听GPT5.6胡扯: 开始之前,我并不了解完整的网站开发流程,只会一些 Python 基础。为了让网站真正能够长期使用,我给它设定了几个比较实际的要求:
- 不需要服务器、数据库和后台管理系统;
- 可以直接用 Markdown 写文章;
- 能免费部署,并且修改后可以自动更新;
- 支持分类、标签、归档和本地搜索;
- 在电脑和手机上都能正常阅读;
- 项目结构尽量清楚,方便以后逐步学习和维护。
这些要求最终决定了网站的技术方案。
最后的技术选择
网站使用 Astro 和 TypeScript 构建,文章通过 Astro Content Collections 管理。每篇文章都是一个 Markdown 文件,文章标题、发布日期、分类、标签等信息统一写在文件开头。
部署使用 GitHub Pages。代码推送到 GitHub 的 main 分支后,GitHub Actions 会自动完成检查、构建和发布。搜索使用 Pagefind 在构建阶段生成索引,不依赖数据库或第三方搜索服务。
目前使用的主要工具如下:
| 用途 | 工具 |
|---|---|
| 网站框架 | Astro |
| 开发语言 | TypeScript |
| 文章格式 | Markdown / MDX |
| 内容管理 | Astro Content Collections |
| 静态搜索 | Pagefind |
| 代码托管 | GitHub |
| 自动部署 | GitHub Actions + GitHub Pages |
| 自定义域名 | lingeocs.com |
第一次建站过程
整个过程大致可以分为几个阶段。
首先是在本地建立 Astro 项目,实现首页、文章、分类、标签、归档、项目、关于和搜索等页面。随后补充深浅色模式、文章目录、阅读进度、代码高亮、数学公式、RSS、sitemap 和自定义 404 页面。
网站能够本地运行后,我建立了 GitHub 仓库,并配置 GitHub Actions。这样每次更新文章后,只需要提交并推送代码,线上网站就会自动重新构建。
之后,我购买了 lingeocs.com(小巧思有没有人懂的),在阿里云完成实名认证和 DNS 解析,再把域名绑定到 GitHub Pages。DNS 记录已经正确生效,目前仍在等待 GitHub 完成 HTTPS 证书签发。
为了避免以后忘记操作过程,我还把建站、写文章、发布和排查问题的方法整理成了 Obsidian 文档,主要是能快速调用比如一些预制的提示词来帮我用ai上传或者安全维护之类的。
这次真正理解的事情
以前我会把“网站”理解成浏览器里看到的一个页面。实际动手之后,我才开始区分几个不同层次:
- Markdown 文件负责保存内容;
- Astro 负责把内容和组件构建成静态网页;
- Git 负责记录每次修改;
- GitHub 保存代码并运行自动部署;
- GitHub Pages 提供公开访问;
- DNS 把域名指向网站所在的位置;
- HTTPS 证书保证浏览器与网站之间的连接安全。
当这些部分被分开理解后,很多报错也不再只是“网站打不开”,而是可以继续判断它发生在内容、构建、部署、DNS 还是证书环节。
目前的状态
现在,网站的基本结构已经完成,自动构建与部署可以正常运行,文章也可以通过 Markdown 管理。站内暂时只有一篇用于检查功能的测试文章,这篇建站日记将成为第一篇正式内容。
网站仍然处于很早的阶段。页面设计、栏目组织和写作方式以后都可能调整,但基本的发布流程已经建立起来了。 还是感慨下GPT神力,我是区。
接下来准备做什么
接下来我准备先完成几件简单的事情:
- 等待自定义域名的 HTTPS 证书签发完成;
- 发布这篇建站日记,并逐步替换测试内容;
- 整理第一篇地理或 GIS 学习笔记;
- 在实际写作中继续调整分类、标签和页面细节;
- 保持备份,避免在文章和 Git 历史中放入敏感信息。
博客不需要一开始就很完整。现阶段最重要的是让写作和发布流程真正运转起来,然后持续积累内容。 等到我写到第100篇的时候再分享给我的同学朋友吧。
先记录到这里。