前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hugo + GitHub Pages 搭建自己的网站

Hugo + GitHub Pages 搭建自己的网站

作者头像
lucifer210
发布于 2020-12-15 01:57:23
发布于 2020-12-15 01:57:23
1.4K00
代码可运行
举报
文章被收录于专栏:脑洞前端脑洞前端
运行总次数:0
代码可运行

点击上方蓝色“polarisxu”关注我,设个星标,不会让你失望

大家好,我是站长 polarisxu。

很早之前,我使用 WordPress 搭建了个人博客:http://blog.studygolang.com,毕竟那时候 WordPress 是首选。现如今,大家似乎更喜欢静态博客,各种语言的静态博客生成器轮子不断,比如 Go 语言的 Hugo 就是一个静态博客生成器。我个人认为,静态博客生成器流行的一个很大原因,是 Markdown 的流行,开发人员习惯了使用 Markdown 进行写作。

对于我,有另外一个痛点。最近在公众号写了一些文章,希望同步到博客,只是文字还好处理些,如果涉及到图片,微信公众号上传了一次,博客还得再来一次,挺费劲的。同时,为了保留最原始的文字,原始博文放在 GitHub 是一个不错的选择(用 Git 保留你的修改,不要太棒好嘛!)。

既然博文都保存在了 GitHub 上,怎么方便快速的基于 GitHub 来搭建自己的博客呢?(有些人直接就让在 GitHub 阅读,虽然可以,但体验还是不太好,而且看起来没有那么高大上,是不是?)

我想过使用 GitBook 来搭建,安装时,发现官方已经不维护 gitbook-cli 了,而且每次新增加文章,都得维护目录等,也是挺费劲的。于是放弃了这种方式。

这时我想到了通过静态博客生成器来搞。最喜欢 Go,自然 Hugo 成为第一选择。

废话不多少,记录下我搭建的过程。

01 安装 Hugo

你可以通过 https://github.com/gohugoio/hugo/releases 下载相应的安装包,我喜欢源码安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ go get -v github.com/gohugoio/hugo

如果你也想通过源码安装,请自行准备好 Go 环境。

查看版本同时验证是否安装成功:(查看该文时,最新版本可能变了)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hugo version
Hugo Static Site Generator v0.76.5 darwin/amd64 BuildDate: unknown

02 使用 Hugo

在你本机某个目录执行如下命令,创建一个网站,我使用 polarisxu 这个名字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hugo new site polarisxu
Congratulations! Your new Hugo site is created in /Users/xuxinhua/project/testhugo/polarisxu.

Just a few more steps and you're ready to go:

1. Download a theme into the same-named folder.
   Choose a theme from https://themes.gohugo.io/ or
   create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
   with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".

Visit https://gohugo.io/ for quickstart guide and full documentation.

进入 polarisxu 目录,查看目录结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tree
.
├── archetypes
│   └── default.md
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes

6 directories, 2 files

接下来需要为我们的网站指定一个主题,这里我们选择 https://themes.gohugo.io/hermit/ 这个主题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/Track3/hermit.git themes/hermit

将该主题增加到网站的配置文件中,这样才能生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo 'theme = "hermit"' >> config.toml

测试下是否成功,运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hugo serve

打开浏览器访问:http://localhost:1313/,看到如下内容:

对该主题进行一些配置。一般的,主题会有例子,我们直接拷贝例子中的 config.toml 覆盖网站的 config.toml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cp -rf themes/hermit/exampleSite/config.toml .

再次运行 hugo serve,页面如下:

可见,这个页面内容可以通过 config.toml 配置,根据需要做一些修改,页面变成这样:(不同主题可能不一样)

不过点击 「文章」 和 「关于」 都报 404。

增加列表页

在 content/posts 目录下新增一个文件:_index.md,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
title: "文章列表"
---

这时(hugo serve 会自动编译)点击 Posts,页面如下:

增加 About 页面

同样的,在 content/posts 目录下新增文件 about.md,正文内容随意,类似这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
title: "关于"
date: "2020-12-01"
---

这是关于页面,polarisxu。

测试文章

接着,增加一篇测试文章:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hugo new posts/my-first-post.md

这会在 content/posts 目录下生成一个 my-first-post.md 文件,里面内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
title: "My First Post"
date: 2020-11-30T23:33:03+08:00
draft: true
toc: false
images:
tags:
  - untagged
---

其中 --- 之间的数据是文章的元数据,在 Hugo 中叫做 Front Matter。

随意增加一些内容,并做一些修改:(其中 isCJKLanguage: true 用于准确计算中文字数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
title: "第一篇文章"
date: 2020-11-30T23:33:03+08:00
draft: false
toc: false
isCJKLanguage: true
images:
tags: 
  - 文章
---

这是第一篇文章。。。

查看文章详情:http://localhost:1313/posts/my-first-post/。

如果文章完成,可以执行 hugo 命令,生成静态页面。默认会将生成的静态页面放入 public 目录中。

关于 Hugo 更多的定制,比如 theme 的定制,这里不过多讲解,有兴趣的自己琢磨。比如虽然 https://polarisxu.studygolang.com/ 和这里的例子使用了同一个模板,但样子却有不少不同,你可以查看 https://github.com/polaris1119/polarisxu,对比到底做了什么,折腾一番,基本会了。

03 使用 GitHub Pages 部署站点

这是 GitHub 为你和你的项目准备网站的,GitHub Pages 官方站点:https://pages.github.com/,大概就是通过将网站内容放到 GitHub,通过 GitHub Pages 可以弄出一个自己的站点。它最常使用的是通过 Jekyll 这个站点生成器生成静态页面,有兴趣的自行查阅资料了解。我们应该使用 Hugo 生成静态页面,因此直接将静态页面部署到 GitHub Pages。

创建一个特殊的仓库

在 GitHub 上创建一个仓库,不过仓库名有特殊要求。如果是个人账号,比如我的 GitHub ID 是 polaris1119,则仓库名是:polaris1119.github.io;如果是组织账号,比如 studygolang 这个组织,则仓库名是:studygolang.github.io。

配置仓库

进入仓库的 Settings 页面,有一个区块叫 GitHub Pages,可以配置站点信息,比如内容来源、自定义域名、是否启用 HTTPS 等。

说明如下:

  • 数据源默认使用主分支下的根目录,我个人建议改为 docs 目录;
  • 自定义域名如果留空,则默认仓库名就是你的域名,比如我这里的 polaris1119.github.io;
  • 如果配置了自定义域名,则需要在你的域名配置上 CNAME 记录。我这里就是 polarisxu 这个子域名的 CNAME 值是 polaris1119.github.io;
  • 如果配置了自定义域名,启用 HTTPS 需要等待一段时间才能生效;

你可以在该仓库上正确的位置放置一个 index.html 文件,测试是否正常。

小细节:避免 Jekyll 起作用,可以在仓库根目录放一个空文件,文件名:.nojekyll

部署我们的站点

这里有两种做法。

1)方法一

上面 Hugo 项目的代码直接推送到 GitHub Pages 这个仓库中,在通过 Hugo 生成静态页面时,指定目标目录为 docs:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ hugo -d docs

这样 docs 下面的内容就是静态页面,是网站最终展示的内容。

2)方法二

Hugo 源网站内容单独放在一个仓,比如我放在了 https://github.com/polaris1119/polarisxu 这个仓库。这样分两个仓库相对麻烦先。但也有一个好处:GitHub Pages 站点有内容大小限制:不能超过 1 GB,这样分开可以节省空间,而且 Hugo 内容和站点解耦。

因此每次在 Hugo 站点项目写完文章后,需要生成静态内容,拷贝到 GitHub Pages 仓库,提交代码等。把这些步骤写成一个脚本,瞬间变简单了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh

hugo

cp -rf public/* ../polaris1119.github.io/docs/

cd ../polaris1119.github.io/

git add * && git commit -m 'new article' && git push

cd ../polarisxu/

04 总结

技术人员搞个自己的博客还是不错的,开始时花些时间折腾一个自己喜欢的站点,之后就是抽时间产出内容了。通过上面的介绍可知,现在搭建一个站点,完全不需要投入任何 money。

怎么样?有没有冲动自己搞一个。欢迎交流~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑洞前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
改变世界的3页内容
请允许我用一种传统的方式——引用词典中的定义开启这篇文章,即从科学的角度使用字典中对 "客观证据 "的定义:“如要称之为科学,调查方法必须遵循特定的推理原则收集可观察的、可验证的、可测量的证据。科学方法包括通过观察和试验收集数据,以及提出及测试假设。”1
高拓电子
2022/09/30
9130
印制电路板中常用标准介绍
1) IPC-ESD-2020: 静电放电控制程序开发的联合标准。包括静电放电控制程序所必须的设计、建立、实现和维护。根据某些军事组织和商业组织的历史经验,为静电放电敏感时期进行处理和保护提供指导。
高拓电子
2022/08/12
7940
焊接行业标准 IPC J-STD-006:电子产品的焊锡合金
全球电子行业采用无铅电子产品已经有近二十年了。在此期间,从事该行业的读者都认识到这个行业面临的变化和挑战,意识到要把铅(Pb)从电子产品中去除做起来没有那么简单。我认为,从一开始就要解决以下四个问题:
高拓电子
2022/09/22
1.9K0
电路实习报告:简易收音机的焊接
焊接一般分三大类:熔焊、接触焊和钎焊。熔焊是指在焊接过程中,将焊件接头加热至熔化状态,在不外加压力的情况下完成焊接的方法。如电弧焊、气焊等。接触焊是在焊接过程中,必须对焊件施加压力(加热或不加热)完成焊接的方法。如超声波焊、脉冲焊、摩擦焊等。钎焊是指低于焊件熔点的钎料和焊件同时加热到钎料熔化温度后,利用液态钎料填充固态工件的缝隙使金属连接的焊接方法。电子产品安装工艺中所谓的“焊接”使用焊料的熔点低于450摄氏度,是软钎焊的一种,主要使用锡、铅等低熔点合金材料作焊料,因此俗称“锡焊”。
全栈程序员站长
2022/11/01
1.5K0
电路实习报告:简易收音机的焊接
焊接常识知多少?
1. 电烙铁 手工焊接元件,这个肯定是不可少了。在这里向大家推荐烙铁头比较尖的那种,因为在焊接管脚密集的贴片芯片的时候,能够准确方便的对某一个或某几个管脚进行焊接(PS:早期我以为是这样的,后来熟了之后发现刀头的更好使!)。
单片机点灯小能手
2022/05/19
7680
焊接常识知多少?
电路板维修入门教程视频_电路板坏了去哪里维修
电容是由两片金属膜紧靠,中间用绝缘材料隔开而组成的元件。电容的特性主要是隔直流通交流。电容容量的大小就是表示能贮存电能的大小,电容对交流信号的阻碍作用称为容抗,它与交流信号的频率和电容量有关。
全栈程序员站长
2022/09/27
1.6K0
PCB阻焊是什么?
PCB阻焊,也叫PCB防焊,PCB阻焊膜,英文为Solder Mask or Solder Resist,采用绿色等感光油墨喷涂于PCB电路板表层。
硬件开源小站
2023/04/24
1.9K0
快速识别PCB绿色产品标识
2003年2月13日,欧盟137《官方公报》公布了欧洲议会和欧盟部长理事会共同批准的《报废电子电气设备指令》(WEEE 2002/96/EC)和《关于限制在电气电子设备中使用某些有害物质指令》(ROHS 2002/95/EC) 两指令是欧盟在环保领域的又一新举措,前一指令除对报废电子电气设备的回收和处理作出特殊规定,还规定回收费用由生产者承担;后一指令要求在2006年7月1日起在欧盟市场上禁止出售含有铅等6种有害物质的电子电气设备. 这两项指令都反映了发达国家在贸易政策上,市场的对外开放是行前提的. 这些前提除了符合各种技术标准外。还需要符合劳工以及环保标准。两指令的生效期在2004年8月13日以后。其适用范闹包括家电等。
高拓电子
2022/08/17
9980
美国先进封装制造蓝图(MRHIEP):高性能计算相关的先进封装及异质集成技术
MRHIEP(Manufacturing Roadmap for Heterogeneous Integration and Electronics Packaging,异构集成和电子封装制造路线图)项目是由加州大学洛杉矶分校(UCLA)的 Center for Heterogeneous Integration and Performance Scaling(UCLA Chips)和国际半导体产业协会(SEMI)合作开展的。该项目于 2023 年 12 月 6 日发布了一份多机构报告。这份报告是美国本土先进封装的快速启动指南,代表了约 100 名来自 40 多家公司、学术机构、产业联盟和政府机构的行业资深人士的共同努力。其目标是为美国制定一份可操作的先进封装路线图,基于异构集成路线图(HIR)并增添制造方法说明来实施 HIR。该项目专注于高性能计算(HPC)和医疗电子与混合封装等关键领域,旨在利用美国本土技能、能力和基础设施,构建具有多样性、稳健性和安全性的全球供应链。
光芯
2025/04/08
1240
美国先进封装制造蓝图(MRHIEP):高性能计算相关的先进封装及异质集成技术
主动推理研究机构和主动推理生态系统
这份文件简要调查了主动推理研究所和主动推理生态系统的现状,并概述了我们未来的方向。它将被版本化为一般和局部生态系统的活表示(循环和更新),描述主动推理研究所的过去、现在和未来行动。
CreateAMind
2023/09/28
3810
主动推理研究机构和主动推理生态系统
如何做职业规划并进行求职准备(持续更新)「建议收藏」
总结:就现在情况,大学我不考研,安心求职 考研=我要“它”+我现在就要 我不要“它”:测试是个实践性很强的工作,测试招聘学士学位占比低,研究型的测试研究生学历比起小本并不能带来太大优势 我现在不要:不可否认,学历可以突破职业瓶颈,所以我要考研,但是是在很多年以后,而不是现在。(等以后进入管理阶层,有了丰富的经验,考取工商管理MBA,得到的相关的文凭技能人脉会更加有价值)
全栈程序员站长
2022/11/01
3.2K0
如何做职业规划并进行求职准备(持续更新)「建议收藏」
纪念晶体管诞生71周年——改变世界30款芯片大阅兵!
1947年12月23日,第一个基于锗半导体的具有放大功能的点接触式晶体管面世,标志着现代半导体产业的诞生和信息时代正式开启。
新智元
2018/12/29
1.1K0
数据中心机房建设方案
数据中心机房总面积大约178平方米,使用面积约为123平方米,分为三个功能区域,分别为主设备机房、动力机房、操作间、钢瓶间。各间需要单独隔开。隔开后主设备机房用于放置配线柜、机柜、服务器、小型机、网络设备、通讯设备等重要设备;动力机房放置UPS、电池、配电柜等。
全栈程序员站长
2022/08/22
2.7K0
数据中心机房建设方案
python解析word拆分Excel选择题格式(3、判断题)
文件名【国家危化经营取证判断题.docx】,创个文件直接复制进去即可进行python的读取操作,输出的时候会uuid的方式生成uuid.csv文件
红目香薰
2022/11/30
2.5K0
电脑史话(说历史视频)
从1980年8月到1981年8月,在整整一年的时间里,埃斯特奇领导着“国际象棋”工程计划13人小组奋力攻关。“当时很少有人体会到,这一小组人即将改写全世界的历史。”(英特尔华裔副总裁虞有澄语)据说,IBM公司后来围绕PC机的各项开发,投入的力量逐步达到450人,英特尔公司也组成“特殊客户部”为PC机供应高质量的芯片。   根据协定,微软公司应该为PC机提供包括BASIC在内的系列电脑语言软件。然而,未来的PC电脑,最需要的软件是操作系统,于是,比尔·盖茨把IBM的代表介绍给了另一家以研制CP/M操作系统软件闻名的DR数字研究公司。   接下来发生的事情又出现了戏剧性情节,CP/M操作系统软件的设计者基多尔恰好不在家,而他的太太又不愿在保密协定上签字画押,千载难逢的机遇与DR公司失之交臂。   IBM的代表只得掉转头来,仍请微软公司帮助解决操作系统的问题。比尔·盖茨急中生智,想起了西雅图电脑公司的软件天才帕特森(T.Paterson),此人早就为英特尔的16位芯片编写了一个QDOS软件,正好可以充当PC机的操作系统。QDOS即“快而粗糙的操作系统”,微软公司以低价购买到这款软件的版权,只是当时帕特森这位“DOC之父”并不知晓内情。   1980年感恩节刚过,“国际象棋”工程小组把IBM公司的最高机密──两台PC电脑的样机,从迈阿密空运到西雅图。同样在高度保密的条件下,比尔·盖茨率领着微软公司的软件小组开始为PC电脑编写程序。他们的任务除了需要赶写BASIC、COBOL、FORTRAN和PASCAL四种电脑语言的4万个程序代码,还要把QDOS改造成适合PC机使用的MS-DOS操作系统。从此,微软和IBM公司两个小组的技术人员,不断地乘飞机来来往往,飞越美国距离最远的两个城市,相互交换信息。微软的工程师还必须把自己关在密不透风的房间里,满头大汗地日夜加班。比尔·盖茨大量招聘编程高手,使参加PC机软件工程的人员增加到了70人。直到1981年6月,帕特森也加盟微软公司,并立即参加到MS-DOS的开发之中,经过反复修改和调试,终于完成了这件影响深远的著名软件。   一年的时间转瞬而至。1981年8月12日,IBM公司在纽约市对外宣布:IBM PC机横空出世,昭示着人类社会跨进了个人电脑的新时代。应该说,这是由英特尔公司提供微处理器芯片、微软公司编写软件、IBM公司主要设计电脑系统的共同作品。   IBM PC机最重要的特点在于它的开放性。埃斯特奇代表设计部门宣布,他们将把所有的技术文件全部公开,热诚欢迎同行加入个人电脑的发展行列。于是乎,全世界各地的电子电脑厂商一轰而上,争相转产仿造PC机,仿造出来的产品就是IBM PC兼容机。不久,IBM PC机就成为个人电脑“事实上的标准”。   为了推广这种供个人使用的电脑,IBM公司巧妙地借助卓别林式的小流浪汉形象,头戴园顶高帽,身着灯笼裤,滑稽可爱地在电视上频频露脸,手里舞动着个人电脑,表示人人都能够使用。《华尔街日报》评论说:IBM大踏步地进入微型电脑市场,蓝色巨人可望在两年内夺得这一新兴市场的领导权。果然,就在1982年内,IBM PC机卖出了25万台,以每月2万台的速度迅速接近了“苹果”。1983年5月8日,IBM公司推出改进型IBM PC/XT个人电脑,增加了硬盘装置,当年就使市场占有率超过76%。1984年8月14日,IBM公司趁胜又把一种“先进技术”的IBM PC/AT机投向用户的怀抱。AT机采用英特尔公司后来发展的80286微处理器芯片,能管理多达16M的内存,并可以同时执行多个任务。从此,个人电脑开始了所谓286、386、486……的接力赛跑。   1982年,美国著名的《时代》周刊在介绍本年度“新闻人物”时曾满怀激情地写到:“在一年的新闻里,这个最吸引人的话题,它代表着一种进程,一种持续发展并被广泛接受和欢迎的进程。这就是为什么《时代》在风云激荡的当今世界中选择了这么一位新闻人物,但这完全不是一个人物,而是一台机器。”   这个史无前例的“新闻人物”,就是个人电脑IBM PC机。
全栈程序员站长
2022/07/31
3.2K0
软件设计师复习资料「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说软件设计师复习资料「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/06/27
6.6K0
社会工程:攻击系统、国家和社会(一)
社会工程是一种极其有效的攻击过程,超过 80% 的网络攻击,其中超过 70% 是来自国家级别的,都是通过利用人类而不是计算机或网络安全漏洞发起和执行的。因此,要构建安全的网络系统,不仅需要保护构成这些系统的计算机和网络,还需要对其人类用户进行安全程序的教育和培训。
ApacheCN_飞龙
2024/05/24
2680
【翻译】NIST IR 8151: 显著减少软件漏洞——致美国白宫科技政策办公室
Paul E. Black,Lee Badger,Barbara Guttman 和 Elizabeth Fong 著
安全乐观主义
2019/11/20
1.2K0
金融市场中的人工智能:新算法和解决方案(全)
金融市场可能是少数真正可以被描述为复杂系统的人类成就之一。复杂系统是物理学中的结构,它们:(a) 从组件之间的相互作用中获得其动态的很大一部分,(b) 相互作用高度非线性,并且往往根据其自身的动态(反馈)而变化,© 系统的行为不能直接归因于个体相互作用的纯和:整体远大于个体部分的总和,(d) 并由此产生两个非常重要的后果:对初始条件的非常强烈的依赖(从相似的情况开始,我们观察到完全不同的最终状态)(一个典型的例子是天气预报)。
ApacheCN_飞龙
2024/05/16
5160
金融市场中的人工智能:新算法和解决方案(全)
常用电脑资料速查
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2.4K0
推荐阅读
相关推荐
改变世界的3页内容
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档