搭建个人博客的教程

第一步 确定所选择的框架

前言

所想要搭建静态博客,大致要走完这个流程(这是我用Hugo和Github搭建博客时的流程):

选择框架(网站生成器)–>在对应框架的主题库内选择主题(模板)–>对主题和模板进行修改,在本地渲染网页进行调试,产生public文件夹–>通过git将public内容上传至Github仓库托管–>由Github生成网页

Here we go!

博客分为静态网站和动态网站(顺便一提)

静态网站的核心特点

  1. 内容固定
    • 网站内容在更新前不会随访问变化,浏览器拿到的就是预先生成好的页面。
  2. 没有服务端动态逻辑
    • 没有 PHP、Python、Node.js 等后端程序实时输出数据。
    • 没有数据库(如 MySQL、MongoDB)实时读取。
  3. 部署极其简单
    • 可以直接放到任何 Web 服务器甚至 GitHub Pages 这类静态托管服务。
  4. 访问速度快
    • 没有复杂的服务端运算,页面加载非常迅速。
  5. 安全性高
    • 没有服务端程序与数据库,攻击面极小,不怕 SQL 注入等常见动态网站漏洞。

我们搭建一个静态网站可以是0金钱成本的,这就很不错。静态网站没有后端程序或数据库,缺点就是缺乏与用户的交互和动态(比如说评论,用户系统,个性化内容等等)。而动态网站就需要自己花钱去租赁服务器,租域名和维护网站安全,成本高昂。这篇文章则重点以Hugo框架为例详解搭建静态博客。

以下各个框架是由不同语言开发的,这意味着如果要使用框架可能需要对应的语言环境和技术基础。(建议善用AI)

静态框架

Hexo

  • 开发语言:Node.js
  • 优点
    • 上手简单,配置清晰,写 Markdown 就能发文章;
    • 插件多,主题丰富,社区活跃;
    • 文章少时构建速度较快;
    • 托管友好,常用 GitHub Pages 一键部署。
  • 缺点
    • 生成大型站点时速度和内存有限制;
    • 部分插件兼容性一般,需要一定技术基础;
    • 没有动态功能,不能直接实现评论、用户系统等,需要借助第三方服务。
    • 据说文章量大时(数百篇)渲染速度会明显减慢。

Hugo

  • 开发语言:Go
  • 优点
    • 构建速度极快,适合超大量内容的博客或网站(在文章数量庞大的时候仍能快速渲染);
    • 多语言和分区支持好,国际化方便;
    • 官方文档完善,可定制性强;
    • 无需数据库,部署简单。
  • 缺点
    • Go 模板语法较学习成本;
    • 中文社区和资源比 Hexo 少一些;
    • 插件、主题生态比 WordPress、Hexo要小。

Jekyll

  • 开发语言:Ruby
  • 优点
    • GitHub Pages 原生支持,免配置一键部署;
    • 社区成熟、文档齐全,主题不少;
    • 支持 Markdown、Liquid 模板。
  • 缺点
    • Ruby 环境搭建略麻烦;
    • 构建速度比 Hugo 慢,尤其内容多时;
    • 主题和插件生态不如 WordPress、Hexo广。

动态框架

Typecho

  • 开发语言:PHP
  • 优点
    • 极致轻量,对服务器资源要求低;
    • 后台清爽简洁,操作简单;
    • 插件和主题够用,适合个人极简博客;
    • 便于自定义和二次开发。
  • 缺点
    • 文档较为简略,社区小众,扩展生态有限;
    • 插件数量和兼容度不如 WordPress;
    • 动态系统,需配置数据库和服务器环境。

Halo

  • 开发语言:Java

  • 优点

    • 管理后台现代化、功能丰富;
    • 安全性较高,支持 Docker 部署,非常适合云服务器;
    • 支持丰富主题及插件,接口友好。
  • 缺点

    • Java 环境要求高,搭建门槛高于 PHP 类,资源消耗更大;
    • 生态和社区相较 WordPress略弱;
    • 插件扩展还在成长中。

WordPress

  • 开发语言:PHP
  • 优点
    • 全球用户最多、插件主题最全,能满足几乎所有网站需求;
    • 支持博客、电商、论坛、企业官网等各类应用场景;
    • 社区活跃,资源教程齐全;
    • 支持可视化编辑和多用户管理。
  • 缺点
    • 占用资源大,安全性需实时关注(更新和防护必不可少);
    • 简单小站显得太冗余,后台操作重;
    • 插件太多可能导致兼容和性能问题。

总结

  • 注重性能与极简:Hugo
  • 主题和插件多、上手快:Hexo
  • 省心原生支持 GitHub Pages:Jekyll
  • 服务器资源很小但要后台:Typecho
  • 现代化部署/Java生态:Halo
  • 功能最丰富/做企业级或加电商:WordPress

操作

首先在官网下载hugo,我们要安装带有extended的版本msedge_xzcSsXidDy

下载好后打开powershell,输入hugo version

WindowsTerminal_VyMpHMeT24

可以看到成功安装好了带有extended版本的hugo

找一个你想存放博客的本地文件的位置,打开powershell,输入hugo new site myblog

这样就会创建一个叫做myblog的文件夹,这就是你的博客项目。

(在实操中遇到更细节性的问题建议使用AI)

第二步 选择主题(模板)

在对应框架的主题库中找自msedge_398xUDZH59 己喜欢的主题,比如我们的hugo主题库

在这里找到一个你喜欢的主题,点进去一般会有两个按钮,Download和Demo

msedge_2XvQboIBPy

点击download可以跳转到对应的github项目,Demo可以预览作者给出的实例。

比如这个PaperMod

建议使用git指令来获取主题

首先在myblog文件夹内执行git init初始化项目

然后使用git submodule指令来抓取主题仓库(不懂的话可以把主题URL复制下来问AI)

git clone https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod

然后在myblog文件夹根目录找到hugo.toml或者config.toml(这两种文件名都可以,这是总配置文件),在title下面添加一行theme = "PaperMod"即可

到此我们可以在项目文件夹内使用hugo server -D来本地渲染一下你的网站

WindowsTerminal_VtI7GhlCI4

可以看到成功渲染在了localhost:1313,点进去即可看到。

第三步 创作你的网站

这是自由的一步,你要根据自己的想法来雕刻模板,创造出自己的网站。

第四步 生成public并推送

在本地调试的过程中其实已经生成了public文件。为了确保最新你可以先删除掉public文件,再在powershell运行hugo或者hugo --minify来生成public文件。这个public就是已完全编译好的静态网页文件。它不是源码,而是成品页面。把它推送至Github仓库,并且指定分支,Github会自动把文件作为网站托管。

可以把public里的内容单独拎出来。放在一个文件夹里,运行以下指令

git init
git add .  
# 将当前目录所有文件和修改(包括新文件、删除、修改)都加入 git 暂存区,准备提交
git commit -m "add workflow"
# 用说明(commit message)“add workflow”提交所有刚才 add 的文件和修改到本地 git 仓库。这一步是保存快照,也可把消息改成你喜欢的,比如 "更新文章" "首次初始化博客"
git remote add origin https://github.com/你的用户名/你的仓库名.git
#把你本地的 Git 仓库和远程的 GitHub 仓库关联起来,告诉 Git,远程仓库的名字叫 origin,地址是你 GitHub 的仓库 URL
git push origin master
# 说明:把本地 git 仓库的所有最新提交(commit)推送到远程 GitHub 仓库。推送后,所有新内容/修改会同步到 GitHub。如果你的仓库分支是main,则把master改成main

第一次可能还需要配置用户信息,如下

git config --global user.name "你的github用户名"
git config --global user.email "你的Github账号邮箱"

成功后你就可以在Github仓库里看到自己的文件。就像这样

msedge_ZdrvhZogut

第五步 配置Github pages和更新

在你的仓库上方有一个Settings按钮msedge_d4SGi9IbVp

进入找到Pages,就在这里生成你的网页

msedge_duWjELXcDV

可以用Github Actions或者手动选择分支来生成网页。成功后即可在这个页面看到上方的

msedge_udjrH8S8do Your site is live at xxx

进入即可查看你的网页。

后续更新网站内容只需要

git add .
git commit -m "update"
git push origin master

即可,原理上刷新你仓库内的那些public文件,就可以自动新建页面

常见问题

在本地渲染网页期间如果出现库报错一直无法解决的错误,可以看一下系统的语言环境是不是出了问题

在正式发布到Github之前记得修改好你.toml文件的BaseURL配置,这经常被忽略

posts文章手动创建无标题和时间,记得用hugo来生成文章

Git 仓库只会记录/推送你修改过的文件,而不会修改没变化的文件