最近,除了用公众号来记录自己学到的东西之外,也同时维护了这个博客。博客虽然是一个很古外的产物,但是听起来是很Geek的事。独立的域名、服务器、创作内容组成。 个人博客设置了一道技术门栏,虽然技术本身不难,但是阻碍了不少人链接世界,少了一种方法。通过本文你将学会一种零成本搭建个人博客的方法。
1. 介绍
1.1 什么是 GitHub Pages?
GitHub Pages 是一组静态网页集合(Static Web Page),这些静态网页由 GitHub 托管(host)和发布,所以是 GitHub + Pages。
1.2 什么是 Hugo?
Hugo 是用 Go 语言写的静态网站生成器(Static Site Generator)。可以把 Markdown 文件转化成 HTML 文件。相比于WordPress更轻量。
1.3 Github仓库
我们需要在Github中创建两个仓库:
- 博客源码仓库:储存用 Hugo 写的所有 Markdown 源文件及图像、音频或视频文件。
- GitHub Pages 仓库:储存用 Hugo 命令生成的静态 Html 文件,最后网页显示的内容。
1.4 运行环境
本篇教程假设你已经:
- cdls
2. 安装 Hugo
根据官方文档安装Hugo,这里是Mac系统下的安装步骤:
```bash
brew install hugo
hugo version
```
安装完成后,查看Hugo版本信息:
```bash
hugo v0.120.4-f11bca5fec2ebb3a02727fb2a5cfb08da96fd9df+extended darwin/amd64 BuildDate=2023-11-08T11:18:07Z VendorInfo=brew
```
我安装的是最新v0.120版本。
3. 创建 Github仓库
进入Github 仓库创建页,创建上述两个仓库:
- 博客源码仓库
- GitHub Pages 仓库
4. 本地克隆项目
执行以下命令克隆项目到本地:
```bash
git clone https://github.com/your_username/your_repository.git
```
将`your_username`和`your_repository`替换为实际的用户名和仓库名。
5. 使用 Hugo 搭建博客
在项目根目录下执行以下命令搭建博客:
```bash
hugo new site your_website_name --gc || true
cd your_website_name/static || true
hugo # 如果你有图片等资源文件需要复制到此文件夹,可以执行此命令进行复制操作,否则可以跳过这一步。等待Hugo生成静态网站文件并更新你的DNS解析记录。
以下是根据提供的内容重构的文本,并保持了段落结构:
Hugo 网站的基本目录结构如下:
```plaintext
.
├── archetypes // 存放用 hugo 命令新建的 Markdown 文件应用的 front matter 模版
│ └── default.md
├── assets // 存放所有静态文件,如图片
├── content // 存放内容页面,比如「博客」、「读书笔记」等
├── data // 存放创建站点时 Hugo 使用的其他数据
├── hugo.toml // 网站配置文件
├── i18n // 多语言配置
├── layouts // 存放定义网站的样式
├── static // 存放其他静态资源
└── themes // 存放主题文
```
在 Hugo 中,可以使用社区提供的现成主题来快速构建网站。选择好主题之后,可以按照主题文档中的指导进行安装。安装完成后,需要对主题进行一些基本的配置。通常,这些配置信息会被存储在一个名为 `config.toml` 或 `menus.toml` 的文件中。例如,可以通过修改 `config.toml` 文件中的 `baseURL` 和 `themes` 字段来更改网站的域名和启用所选主题。
此外,还可以使用 Hugo 的模板系统来创建自定义文章类型和页面。例如,可以创建一个名为 "博客" 的主菜单项,并将其与 "blog/index.md" 文件关联起来,以便在网站上显示该页面。类似地,还可以创建其他类型的菜单项和页面,以满足个人或商业网站的需求。
根据您提供的信息,您可以使用以下命令创建 Markdown 文件并套用 archetypes 文件夹中的 front matter 模版:
```
hugo new blog/test/index.md
```
这将创建一个名为“index.md”的新文件,并将其保存在“blog/test”目录中。该文件将被自动添加到 archetypes 文件夹中的默认模板中,以便您可以在空白处使用 Markdown 编写内容 。