利用基于Go Lang的Hugo来打造属于自己的博客系统
手把手教你搭建你的专属个人博客
Go lang无疑是目前的当红炸子鸡,极大地提高了后端编程的效率,同时有着极高的性能。借助Go语言我们 可以用同步的方式写出高并发的服务端软件,同时,Go语言也是云原生第一语言,Docker,Kubernetes等等著名的项目都是使用Go语言实现的。
Hugo 是基于 Go 语言的静态网站生成器。
什么是静态网站生成器?顾名思义,就是以最快的速度生成一个高可用的web页面,我们知道Django作为一款非常流行的框架被广泛应用,但是部署起来实在是太麻烦了,各种命令各种配置,动态页面必然要涉及数据库的配置和操作,另外只要涉及数据库操作,你就不得不考虑sql注入等一系列的安全因素。而纯静态页面则没有这个烦恼,如果我们只需要一个简单的站点,一些简单的功能和页面,比如博客,我们只想以极简的方式用markdown语法写下文字或者代码,让服务器访问纯静态页面,这就是静态网站生成器可以提供给我们的好处。
为啥选择Hugo?
Hugo是一种go语言编写的静态网站生成器。适用于搭建个人blog、公司主页、help等网站,是一种小型的CMS系统。静态站点的好处就是快速、安全、易于部署,方便管理。
Hugo的优点包含但不限于:
-
得益于Go的高性能,性能很快
-
世界上最快的静态网站生成工具,5秒生成6000个页面
-
文档为Markdown格式,语法超简单
-
Hugo 可以做静态文件生成工具,还是高性能web 服务
-
丰富的站点迁移工具,可以将wordpress,Ghost,Jekyll,DokuWiki,Blogger轻松迁移至 Hugo
-
超详细的文档
-
活跃的社区
-
更加自由的内容组织方式
-
丰富的主题模板,可以让你的网站更加炫目多彩
-
多环境支持:Macos,Linux,Windows
首先,可以去go的官网网站下载安装包 https://golang.google.cn/ 然后直接双击安装即可,不需要配置环境变量,因为安装过程自动配置,安装完毕后,打开命令行,输入
go version
显示主版本号即表示hugo安装成功
然后,可以进行hugo的在线源码编译安装,打开命令行,输入下面的命令
go get -u -v github.com/spf13/hugo
go build -o hugo main.go
mv hugo $GOPATH/bin
如果你不想在线编译安装,也可以去hugo的官网 https://github.com/gohugoio/hugo/releases 下载稳定版的压缩包,解压之后需要配置环境变量
装完以后,在命令行内输入
hugo version
打印出版本号即表示hugo安装成功
在命令行中输入命令
hugo new site hugo_blog
就生成了一个名字为hugo_blog的新站点,可以感受到速度非常快,和vue.js创建新站点的速度比起来简直天差地别
打开配置文件config.toml,这是hugo的站点的相关配置,可以进行一些个性化的定制,改为下面这样:
baseurl = "/"
title = "My site."
copyright = "Copyright (c) 2017, all rights reserved."
canonifyurls = true
languageCode = "en-US"
paginate = 3
theme = "hugo-dusk"
googleAnalytics = ""
disqusShortname = ""
[author]
name = ""
SectionPagesMenu = "main"
# Configure syntax highlight
[markup]
[markup.highlight]
style = "rrt" # dark themes: monokai, api, fruity, native, rrt, swapoff
[[menu.main]]
name = "Posts"
weight = -120
identifier = "post"
url = "/post/"
[[menu.main]]
name = "Tags"
weight = -110
identifier = "tag"
url = "/tags/"
[params.meta]
keywords = "blog, tech"
description = "Personal blog."
[params]
github = "github id"
gitlab = "gitlab id"
twitter = "twitter id"
linkedin = "linkedin id"
email = "myemail"
theme_colors = "default-dark" # uses color css file under static/css/default-dark.css
utterancesRepo="REPO_NAME" # Utterances is enabled when this param is set
utterancesTheme="github-dark" # Default: github-dark
utterancesIssueTerm="pathname" # Default: pathname
可以看到我们制定了一个主题hugo-dusk,添加了Theme后的站点才有血有肉,丰富多彩。
更多的主题可以在这个上面下载,都是免费而开源的 https://themes.gohugo.io/
进入到站点内的themes目录,输入命令下载hyde主题,hugo有很多漂亮的主题可以选择
git clone https://github.com/rhazdon/hugo-theme-hello-friend-ng
结构和样式有了,我们还没有内容。我们来创建站点的第一篇文章
输入命令
hugo new one.md
hugo在content下创建one.md文件,我们编写一些文件内容:
---
date: "2019-01-3"
title: "第一篇文章"
---
### 你好,欢迎您来到我的博客
然后在命令行中输入
hugo server
这样就可以看到已经在1313端口起了一个hugo服务
访问一下,就可以看到我们非常快速而简单博客已经做好了。
那么如何部署到线上呢?非常简单输入命令进行打包操作:
hugo --baseUrl="项目地址/"
* 需要注意“项目地址”为上传到gitee/GitHub的***.github/gitee.io/博客名称
hugo就会把你的站点生成纯静态页面,然后打包到public文件夹
将public上传到gitee/GitHub下就可以拥有你的专属个人博客了。
详细的git命令介绍,大家可以看下我总结的git命令总结