使用 Hugo 在 30 分钟内搭建博客,Hugo 是一个用 Go 语言编写的静态站点生成器

了解 Hugo 如何让网站构建再次变得有趣。
489 位读者喜欢这篇文章。
Woman programming

WOCinTech Chat。由 Opensource.com 修改。CC BY-SA 4.0

您是否想创建一个博客来分享您使用各种软件框架的最新冒险经历?您是否喜欢文档记录不完善的项目并想修复它?或者您只是想创建一个个人网站?

许多想创建博客的人都有一个重要的顾虑:缺乏关于内容管理系统 (CMS) 的知识或学习时间。那么,如果我说您不需要花费数天时间学习新的 CMS,设置基本网站,设计其样式以及加强其安全性以抵御攻击者呢?如果我说您可以在 30 分钟内从头到尾使用 Hugo 创建一个博客呢?

A sample blog created in Hugo

opensource.com

Hugo 是一个用 Go 语言编写的静态站点生成器。您可能会问,为什么要使用 Hugo 呢?

  • 因为没有数据库,没有需要任何权限的插件,也没有在您的服务器上运行的底层平台,所以没有增加安全隐患。
  • 该博客是一组静态网站,这意味着闪电般快速的服务时间。此外,所有页面都在部署时渲染,因此您的服务器负载非常小。
  • 版本控制很容易。一些 CMS 平台使用自己的版本控制系统 (VCS) 或将 Git 集成到其界面中。使用 Hugo,您的所有源文件都可以原生存在于您选择的 VCS 上。

坦率地说,Hugo 的目标是让网站编写再次变得有趣。让我们计时 30 分钟,开始吧?

0-5 分钟:下载 Hugo 并生成站点

为了简化 Hugo 的安装,请下载二进制文件。为此,请执行以下操作

  1. 下载适用于您操作系统的相应 压缩包
  2. 将压缩包解压到您选择的目录,例如 C:\hugo_dir~/hugo_dir;此路径将被称为 ${HUGO_HOME}
  3. 打开命令行并更改到您的目录:cd ${HUGO_HOME}
  4. 验证 Hugo 是否正在工作
    • 在 Unix 上:${HUGO_HOME}/[hugo version]
    • 在 Windows 上:${HUGO_HOME}\[hugo.exe version]
      例如,c:\hugo_dir\hugo version

    为了简单起见,我将 Hugo 二进制文件的路径(包括二进制文件)称为 hugo。例如,hugo version 在您的计算机上将转换为 C:\hugo_dir\hugo version

    如果您收到错误消息,则可能是您下载了错误的版本。另请注意,安装 Hugo 有许多可能的方法。有关更多信息,请参阅 官方文档。理想情况下,您将 Hugo 二进制文件放在 PATH 中。对于此快速入门,使用 Hugo 二进制文件的完整路径即可。

  1. 创建一个将成为您博客的新站点:hugo new site awesome-blog
  2. 更改到新创建的目录:cd awesome-blog

恭喜!您刚刚创建了您的新博客。

5-10 分钟:为您的博客设置主题

使用 Hugo,您可以自己为博客设置主题,也可以使用精美的现成 主题 之一。我选择了 Kiera,因为它非常简洁。要安装主题,请执行以下操作

  1. 更改到 themes 目录:cd themes
  2. 克隆您的主题:git clone https://github.com/avianto/hugo-kiera kiera。如果您没有安装 Git
    • GitHub 下载 .zip 文件。
    • 将其解压到您站点的 themes 目录。
    • 将目录从 hugo-kiera-master 重命名为 kiera
  3. 将目录更改为 awesome-blog 级别:cd awesome-blog
  4. 激活主题。主题(包括 Kiera)通常带有一个名为 exampleSite 的目录,其中包含示例内容和示例设置文件。要激活 Kiera,请将提供的 config.toml 文件复制到您的博客
    • 在 Unix 上:cp themes/kiera/exampleSite/config.toml .
    • 在 Windows 上:copy themes\kiera\exampleSite\config.toml .
    • 确认 Yes 以覆盖旧的 config.toml
  5. (可选)您可以启动服务器以直观地验证主题是否已激活:hugo server -D 并在您的 Web 浏览器中访问 http://localhost:1313。查看您的博客后,您可以通过在命令行中按 Ctrl+C 来关闭服务器。您的博客是空的,但我们正在取得进展。它应该看起来像这样

Example theming of a blog created in Hugo

opensource.com

您刚刚为您的博客设置了主题!您可以在官方 Hugo 主题 站点上找到数百个精美的主题。

10-20 分钟:向您的博客添加内容

碗在空的时候最有用,但博客并非如此。在此步骤中,您将向您的博客添加内容。Hugo 和 Kiera 主题简化了此过程。要添加您的第一篇文章

  1. 文章原型是您内容的模板。
  2. 将主题原型添加到您的博客站点
    • 在 Unix 上:cp themes/kiera/archetypes/* archetypes/
    • 在 Windows 上:copy themes\kiera\archetypes\* archetypes\
    • 确认 Yes 以覆盖 default.md 原型
  3. 为您的博客文章创建一个新目录
    • 在 Unix 上:mkdir content/posts
    • 在 Windows 上:mkdir content\posts
  4. 使用 Hugo 生成您的文章
    • 在 Unix 上:hugo new posts/first-post.md
    • 在 Windows 上:hugo new posts\first-post.md
  5. 在您选择的文本编辑器中打开新文章
    • 在 Unix 上:gedit content/posts/first-post.md
    • 在 Windows 上:notepad content\posts\first-post.md

此时,您可以尽情发挥。请注意,您的文章由两个部分组成。第一部分用 +++ 分隔。它包含有关您的文章的元数据,例如其标题。在 Hugo 中,这称为前置信息。在前置信息之后,文章开始。创建第一篇文章

+++
title = "First Post"
date = 2018-03-03T13:23:10+01:00
draft = false
tags = ["Getting started"]
categories = []
+++

Hello Hugo world! No more excuses for having no blog or documentation now!

您现在需要做的就是启动服务器:hugo server -D。打开您的浏览器并输入:http://localhost:1313/

Hugo blog

opensource.com

20-30 分钟:调整您的站点

我们所做的工作很棒,但仍然有一些小问题需要解决。例如,命名您的站点很简单

  1. 通过在命令行中按 Ctrl+C 停止您的服务器。
  2. 打开 config.toml 并编辑设置,例如博客的标题、版权、名称、您的社交网络链接等。

当您再次启动服务器时,您会看到您的博客更具个性化。还缺少一个基本的东西:菜单。这也是一个快速修复。回到 config.toml,在底部插入以下内容

[[menu.main]]
    name = "Home" #Name in the navigation bar
    weight = 10 #The larger the weight, the more on the right this item will be
    url = "/" #URL address
[[menu.main]]
    name = "Posts"
    weight = 20
    url = "/posts/"

这会为“首页”和“文章”添加菜单。您仍然需要一个“关于”页面。与其从 config.toml 文件中引用它,不如从 markdown 文件中引用它

  1. 创建一个关于文件:hugo new about.md。请注意,它是 about.md,而不是 posts/about.md。“关于”页面不是博客文章,因此您不希望它显示在“文章”部分中。
  2. 在文本编辑器中打开该文件并输入以下内容
+++
title = "About"
date = 2018-03-03T13:50:49+01:00
menu = "main" #Display this page on the nav menu
weight = "30" #Right-most nav item
meta = "false" #Do not display tags or categories
+++

> Waves are the practice of the water. Shunryu Suzuki

当您启动 Hugo 服务器并打开 http://localhost:1313/ 时,您应该看到您的新博客已准备好使用。(查看我在我的 GitHub 页面上的 我的示例。)如果您想更改菜单项的活动样式以使内边距稍微更好看(就像 GitHub 实时版本一样),请将 此补丁 应用到您的 themes/kiera/static/css/styles.css 文件。

A man in a red hat signifying the Opensource company called Red Hat
Marek Czernek 是一个真正的 Red Hatter。Marek 目前在 Red Hat 的技术培训部门担任课程开发人员。在业余时间,他喜欢学习任何与 Java、前端或数学相关的东西,并欣赏精美的文档和漂亮的代码。有时,他会为各种项目的文档做出贡献,例如 Tomcat 和 Liferay。

10 条评论

哇... 很棒的文章。读完这篇文章让我想立即开始写博客!:D

附言

已转向 Hugo

我对 Hugo 感兴趣已经有一段时间了,但我一直无法真正接触它,因为我从未找到像您这样有帮助的教程。非常感谢您写了这篇文章。

我赞同 Bryan 的评论。虽然我是 Jekyll 的用户,但 Hugo 一直在我的关注范围内。当我深入研究它时,我会在浏览器窗口中打开这个操作指南。

很棒的文章!hugo 很棒 :) 我花了很多时间试图弄清楚从众多选项中选择哪个,而 hugo 是最容易做的。而且它还在不断更新,并且拥有一个友好的社区。这是我的 https://jlozada2426.gitlab.io/blog/

> 将主题原型添加到您的博客站点

您不需要这样做,请参阅 [原型查找顺序](https://gohugo.com.cn/content-management/archetypes/#what-are-archetypes)。原型也会在主题中找到,如果站点根目录中不存在。

相同的机制适用于数据文件、模板、翻译...

您好,

恐怕这不是真的。您试过了吗?我刚刚试过,结果的前置信息如下所示

---
title: "First Post"
date: 2018-03-27T15:16:44+02:00
draft: true
---

那是默认的。主题目录中的查找在这里没有发生,恐怕是这样。

干杯!

回复 作者 评论者 (未验证)

将 Drupal 7 或 WordPress 站点转换为 Hugo 有多容易?有什么技巧吗?

感谢您的文章。真的很有帮助。您是否有关于如何在 Windows 上使用 Lets Encrypt 为 hugo 网站保护 SSL 的说明?再次感谢!!!’

谢谢 Marek。您是否有关于如何将此 Microsoft IIS 集成的说明或指导我到某个地方?

回复 作者 mczernek

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.