前言
大家好,这里是 HJJJ。
想必作为一个 CS 学生,搭建一个个人博客是必经之路。然而由于本人先前的懒惰,一直没有探索这个领域。直到最近,突然发现自己已经学了不少东西了,而有些学到的东西由于缺少实际应用,已经快要忘记了——于是我决定搭建一个个人博客,用来记录学习过程和心得体会。
什么是网站?
网站是由一系列通过超链接相互关联的网页组成的集合,通过域名访问,并托管在一个或多个服务器上。服务器负责存储网站的内容,域名则提供了用户访问的地址。网站可以包含文本、图片、视频、音频等多种类型的内容,用户通过浏览器来访问这些内容。
静态网站和动态网站
网站大致分为静态网站和动态网站两类。
静态网站是指那些内容固定不变的网站,用户访问时看到的内容是预先生成的。这些网站通常使用 HTML、CSS 和 JavaScript 来构建,内容由开发者手动编写和更新。静态网站的优点是加载速度快且安全性较高,因为它们不依赖服务器端的处理。
动态网站则是指那些内容可以根据用户的请求动态生成的网站。这些网站通常使用服务器端语言(如 PHP、Python、Ruby 等)和数据库来存储和管理内容。动态网站的优点是可以提供个性化的用户体验和更丰富的功能,但它们可能会面临性能和安全方面的挑战。
对于个人博客来说,大多数时候我们只是在展示静态内容——文章、图片、代码片段。动态网站的功能虽然强大,但维护成本和性能开销都更高。因此,静态网站生成器成了我的首选。
选择 Hugo
静态网站生成器有很多选择:Jekyll、Hexo、Hugo、Zola……每个都有自己的特点。我最终选择 Hugo,主要看中三点:
- 速度极快:Hugo 基于 Go 语言构建,生成整个站点通常只需要几毫秒到几秒,远快于大多数同类工具。
- 单文件部署:Hugo 是一个独立的可执行文件,不需要安装任何依赖环境,下载就能用。
- 主题丰富:Hugo 社区提供了大量现成的主题,直接拿来用就能得到一个美观的博客。
Hugo 允许用户使用 Markdown 文件来编写内容,并通过模板系统来定义网站的结构和样式,对我这种想专注于写作的人来说非常友好。
如何使用 Hugo 搭建博客
首先,你需要寻找一个地方来放你的源码。这里以 Windows 系统为例,打开命令行工具,进入你想要存放博客源码的目录。例如,我想把源码放在 D 盘的
blog文件夹下:PowerShellcd D:\blog接下来,使用 Hugo 命令创建一个新的站点文件夹(我们这里先给它起名叫 myblog,你也可以换成别的名字):
PowerShellhugo new site myblog这条命令会在当前目录下创建一个名为
myblog的文件夹,里面包含了 Hugo 站点的基本结构。进入新创建的站点文件夹并初始化 Git:
PowerShellcd myblog git init初始化 Git 仓库是为了后续将代码推送到 GitHub。先在本地修改源码,完成内容编写后推送到 GitHub,再部署到托管服务器,这样其他人就可以通过互联网访问我们的网站了。
接下来,我们需要选择一个主题来美化我们的网站。Hugo 有很多现成的主题可供选择,你可以在 Hugo Themes 上浏览和选择适合你的主题。选择好主题后,按照主题的安装说明将其添加到你的 Hugo 站点中。以 PaperMod 为例,安装命令如下:
PowerShellgit submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod这条命令会将 PaperMod 主题添加到你的站点的
themes文件夹中。在你的站点的
hugo.toml配置文件中,你可以设置theme参数为你选择的主题名称。例如:tomltheme = "PaperMod"现在,你可以使用 Hugo 的命令来创建新的内容了。例如,创建一个新的博客文章:
PowerShellhugo new posts/my-first-post.md这条命令会在
content/posts文件夹下创建一个名为my-first-post.md的 Markdown 文件,你可以在其中编写你的博客内容。当你完成了内容的编写后,我们可以打开一个本地服务器来预览我们的网站:
PowerShellhugo server -D这条命令会启动一个本地服务器,并在浏览器中打开你的站点预览页面。你可以在这里查看你的博客文章,并进行调整和修改(
-D参数表示包括草稿文章在内的所有内容都会被预览)。
结语
至此,一个属于自己的博客就搭建完成了。从对网站一无所知,到亲手搭起一个 Hugo 站点,这个过程比想象中简单不少。
当然,搭建只是第一步。接下来要做的,是坚持写下去,让这里真正成为一个有内容、有温度的地方。希望下次回看这篇文章的时候,这里已经长出了不少东西。