HUGO安装说明(一)

这里介绍一下用hugo搭建博客的全过程。

windows系统,用vs code编辑内容,用hugo生成静态页面,提交到gitee,自动同步到云空间

缘起

想弄一个博客,但云主机太贵,php不懂 希望能够省钱,访问速度快,内容方便迁移 wordpress还是太复杂了,而且不想把内容都存到数据库里 本来就是一些文字和图片内容,为啥要弄那么多复杂的东西?

主要步骤

  1. 本地环境,安装 HUGO 和 VS CODE(包含插件)
  2. 七牛云对象存储配置
  3. 云空间准备,申请域名和备案,宝塔面板创建静态网站
  4. gitee仓库,webhook配置

具体说明

提前安装好git,用于保存文档的不同版本

  1. 下载hugo并安装 hugo是go语言开发的,可以把md文件转换成静态页面。go对我们的比较直观的好处是可以编译成可执行文件,在windows下直接执行 这里下载最新版: https://github.com/gohugoio/hugo/releases 注意:下载 windows-amd64.zip (arm是苹果的架构,amd64是amd公司先研发的,所以inter架构也用amd64) 20240228164650

下载后可以把 hugo.exe 所在目录加到path里,或者直接放到自己的博客目录下使用。

  • 创建站点,此时会生成很多目录和文件
1
hugo new site hugoblog 
  • hugo默认没主题,需要找一个主题,我用的 hugo-PaperMod 在刚才创建的目录里面有一个themes,进入这个目录,执行如下命令
1
git clone https://github.com/adityatelange/hugo-PaperMod.git PaperMod

注意:这里面的"PaperMod",是创建的新的目录名称,如果不加,目录名为"hugo-PaperMod"。

  • 创建文章
1
hugo new posts/story.md

此时,在posts目录下创建了story.md文件,然后就可以在story.md里面用 markdown 语法编辑自己的文章了。

注意:下面这部分是给hugo用的,这里也增加自己的参数(tags、categories)。文章的内容放在这一部分的后面。

1
2
3
4
5
6
7
8

+++
title = 'Story'
date = 2024-02-18T22:28:19+08:00
tags = ["blog", "simple"]
categories = ["blog"]
draft = true
+++
  • 修改配置文件

网上文章配置文件在 config.toml 里面,我这个版本在 hogo.toml 里面

下面贴出本站的参考配置

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
baseURL = 'https://yixiapp.com/'
languageCode = 'en-us'
# 网站标题
title = '一席桑麻的笔记本'
# 主题名称,themes目录下,主题目录的名称
theme = 'PaperMod'
# 放置生成的静态页面目录,默认是在public里面
# 这里改为了docs,是因为之前想放到github上来着
publishDir = "docs"
# 没有这个,主页上就没有标签和分类
[taxonomies]
tag = "tags"
category = "categories"
[params]
  defaultTheme = "auto"
  disableThemeToggle = "true"
[params.assets]
  disableFingerprinting = "true"
[markup]
  [markup.highlight]
    anchorLineNos = false
    codeFences = true
    guessSyntax = true
    hl_Lines = ""
    lineAnchors = ""
    lineNoStart =1
    lineNos = true
    lineNumbersInTable = true
    noClasses = true
    style = "monokai"
    tabWidth = 4
# 这种两个[[]]相当于列表
[[menu.main]]
  weight = 1
  identifier = "posts"
  pre = ""
  post = ""
  name = "归档"
  url = "/posts/"
  title = "Posts"
[[menu.main]]
  weight = 2
  identifier = "tags"
  pre = ""
  post = ""
  name = "标签"
  url = "/tags/"
  title = "Tags"
[[menu.main]]
  weight = 3
  identifier = "categories"
  pre = ""
  post = ""
  name = "分类"
  url = "/categories/"
  title = "Categories"
[search]
  enable = true
  type = "algolia"
  contentLength = 4000
  placeholder = ""
  maxResultLength = 10
  snippetLength = 50
  highlightTag = "em"
  absoluteURL = false
  [search.algolia]
    index = ""
    appID = ""
    searchKey = ""
[footer]
  enable = true
  # LoveIt 新增 | 0.2.0 自定义内容 (支持 HTML 格式)
  custom = ''
  # LoveIt 新增 | 0.2.0 是否显示 Hugo 和主题信息
  hugo = false
  # LoveIt 新增 | 0.2.0 是否显示版权信息
  copyright = true
  # LoveIt 新增 | 0.2.0 是否显示作者
  author = true
  # 网站创立年份
  since = 2023
  # ICP 备案信息,仅在中文显示
  icp = '沪ICP备18043359号-1' 
  # 许可协议信息 (支持 HTML 格式)
  license = '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>' 
[home]
  rss = 10
  [home.posts]
      enable = true
      # 主页每页显示文章数量
      paginate = 8
  [home.profile]
    enable = true
    gravatarEmail = ""
    avatarURL = "/images/avatar.png"
    title = ""
    subtitle = ""
    typeit = true
    social = true
    disclaimer = ""
[social]
  GitHub = ""
  Weibo = ""
  Steam = ""
  Zhihu = ""
  Douban = ""
  Devto = ""
  Bilibili = ""
  Email = ""
  Phone = ""
  RSS = true

以上都是从其它人的文章里copy出来的,并不全懂,里面有些冗余或无效的,请忽略

  1. 文章编辑

使用vs code安装插件进行编辑,因为markdown是图文分离的,而且之后打算把图片放到网络上,所以使用七牛作为图床。毕竟有免费的10g容量可以使用。即便之后需要付费,也比其它云服务便宜。

使用vs code的原因是,还可以用它写代码。vs code的安装比较简单可自行搜索。

vs code安装了三个插件 Office Viever、Markdown Preview、PicGo

Office Viever 用于编写markdown

Markdown Preview 用于显示预览

PicGo 用于处理图片,把图片上传到七牛云

  1. 建立网站

购买云服务、域名 如果对 Linux 不熟悉,可以安装宝塔面板

  1. 文章自动同步

在gitee建一个代码仓库,和本地的docs目录进行关联 用宝塔面板安装 webhook,得到webhook的设置信息 在gitee的仓库和网站的 webhook进行关联 编写webhook的配置文件,当接收到触发时使用git拉取gitee上的最新代码

这样当使用vs code编写好代码时,把代码推送到gitee,gitee触发webhook,webhook拉取最新的代码到网站的目录,从而实现自动部署

后面这几部分的细节以后后空再写

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus