商汇粹外网资源平台

搜索
查看: 1963|回复: 5

如何在 GitHub 上写博客?

[复制链接]

该用户从未签到

4

主题

14

帖子

47

积分

新手上路

Rank: 1

积分
47
发表于 2022-9-21 20:40:44 | 显示全部楼层 |阅读模式
想在 GitHub 上记录下开发过程,请问如何搭建 blog?
回复

使用道具 举报

该用户从未签到

0

主题

28

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2022-9-21 20:55:44 | 显示全部楼层
互联网从诞生发展至今日,每天有无数的人在上面留下自己的足迹,他们用它记录生活、抒发情感、分享见解,这一切都离不开一个可以承载文字的平台,一个独立的、由自己掌控的平台,而 GitHub Pages 就是这么一个平台。
在这个平台里你可以使用自己的个性域名;可以在海量的主题里挑选最适合你的那一款,如果你技术极客,也可以根据自己的喜好,设计属于自己的个性化页面;你既可以在线创建和发布网站,也可以在本地通过客户端工具或者命令行进行网站和内容的管理。
你完全可以通过 GitHub Pages 展示和输出自身价值,甚至可以把它打造成属于自己的互联网「身份证」。
为什么使用 GitHub Pages

如果你把他作为一个轻量级的个人博客服务,GitHub Pages 相较 WordPress 之类的建站服务有什么优势呢?

  • 首先他是完全免费的,相较其他的同类产品,他能替你省下一笔服务费,节约下的钱可以让你买一些其他的会员服务;
  • 无须自己购买云服务进行搭建,只需按步骤一步步操作即可,即使你不懂他的技术细节;
  • 支持的功能多,玩法丰富,你可以绑定你的域名、使用免费的 HTTPS、自己 DIY 网站的主题、使用他人开发好的插件等等;
  • 当完成搭建后,你只需要专注于文章创作就可以了,其他诸如环境搭建、系统维护、文件存储的事情一概不用操心,都由 GitHub 处理
当然了,作为一款免费的服务,我们也是要遵守 GitHub 官方使用建议和限制,在使用的时候项目和网站的大小不要超过 1GB,也不要过于频繁的更新网站的内容(每小时不超过 10 个版本),每个月的也要注意带宽使用上限为 100GB。
综合来看,GitHub Pages 依旧可以说是中小型博客或项目主页的最佳选项之一。
如何使用 GitHub pages

介绍了这么多,下面就具体来谈谈如何使用它。
基本页面的生成

首先你需要注册一个 GitHub 账号,并在个人主界面里选择创建一个新的 Repository 。

进入页面后,在 Repository name 的位置填写域名,格式是 username.GitHub.io。





创建成功之后,点击右上角的 Settings

找到 GitHub Pages 选项,选择一个 GitHub 官方提供的主题

这里我们就随意选择一个主题 Cayman,来看看他的效果是什么样的

选择完毕之后 GitHub Pages 就会自动帮你生成好网站,在他跳转的界面点击 Commit changes 按钮,网站就可以访问了。

在浏览器里输入你的项目名称,比如 brick713.GitHub.io,就可以看到,你刚刚选择的主题的个人网站的页面了。

到这里如果你只是想做一个例如可以随时在互联网上访问的简历,那么你只需要 GitHub Pages 项目的主页修改你 index.md 文件就可以了,比如我给出的这个模板。

修改完后,点击上图中左下角的 Commit Changes,然后访问你的自定义域名你就可以看到如下的样式了。

如果你想做一个功能更丰富的博客,那我们继续往下走。
配置自定义域名并免费使用 HTTPS

在 2018 年 5 月 1 日之后,GitHub Pages 已经开始提供免费为自定义域名开启 HTTPS 的功能,并且大大简化了操作的流程,现在用户已经不再需要自己提供证书,只需要将自己的域名使用 CNAME 的方式指向自己的 GitHub Pages 域名即可。
首先在你的 DNS 解析里添加一条解析记录,例如我选择添加子域名 blog.moyu.life 通过 CNAME 的方式指向我刚刚自定义的 GitHub Pages 域名 brick713.GitHub.io。添加完成后等待 DNS 解析的生效(DNS 的解析记录生效到全球可能需要几分钟时间)。

之后重新回到最开始进入过的 Settings 界面,找到 GitHub Pages 的设置,填写我们刚刚建立的子域名,以我自己的 blog.moyu.life 举例,点击保存。

保存后 GitHub 需要一定的时间生成证书并确认域名的解析是否正常,我们只需要耐心的等待即可,成功后显示结果如下

现在我们再访问 blog.moyu.life 就会发现,我们的自定义域名和 HTTPS 都生效了!可以看到证书是由著名的机构 Let's Encrypt 提供的。

网站的同步

现在我们已经有了一个基本功能健全的网站了,接下来我们需要试着对博客的内容进行管理,并且给博客添加一些更个性化的设置,官方提供两种方式:

  • 命令行方式(Mac 和 Windows 确保拥有 Git 环境)
  • 桌面客户端形式(需要安装官方提供的客户端)
如果你没有任何 Git 的基础,也不想进行一些繁琐的配置,那么我推荐你使用桌面客户端的形式进行管理,如果你有一定的技术基础,那么 Git 的方式则更适合你。这里我两种方法都介绍一下。
首先在命令行中切换到你自定义的路径下,然后 Clone 下来你的项目(操作需要在 Mac 的 Terminal 中完成,Windows 系统可以使用 Git-bash。)这里注意这里的 path 和 username 需要根据你个人情况进行替换。
cd ~/Path git clone https://GitHub.com/username/username.GitHub.io

接着进入你的项目的文件中,并创作一个文章。
cd username.GitHub.ioecho "Hello World 我爱这个世界" > index.md
然后按照 Git 提交内容的流程,将我们的新创作的文章上传。
git add --allgit commit -m "Firs Push"git push -u origin master
这里可能会碰到下面的情况:

按照他的提示我们把注册 GitHub 的邮箱和用户名依次输入即可:
git config user.email "你的邮箱"git config user.name "你的用户名"
之后他可能会让你输入你的 GitHub 账号和密码,不用担心,正常输入即可。当我们看到这样的提升就证明提交成功了。

可以去我们的网站主页看看是不是起了变化。

如果你是使用GitHub 桌面客户端 那么就更简单了,下载安装了客户端之后,按照客户端的提示正常登陆你的 GitHub 账号。然后 Clone 下来你的 GitHub Pages 项目。

等待 Clone 完成后,界面上会显示几种管理修改你的项目的方式。

这里我选择使用 Sublime Text 进行管理,把开始的 index.md 里的内容改为 Hello World 我也爱这个世界 保存,然后在客户端上我们能看到文件的变化,我们先点击左下角的 Commit to master,再点击 Fetch origin 就可以将内容上传。

然后你发现你的主页也发生了相应改变了。到这里你基本上就掌握了网站管理的基本流程和文章发布的基本流程,下面我们要开始来学会使用静态模板系统来管理博客了。
GitHub Pages 的生成工具

经历了上面的步骤,现在你的已经有了一个简单的页面了,可是他还远远未满足我们的需求,我们需要利用静态模板系统来让生产接管你博客的文章的生成,让你把更多的经历投入在创作里。下面就 GitHub 官方推荐的 Jekyll 为例子来展开讲讲。
因为 Jekyll 是基于 Ruby 的静态网页生成系统,因此我们首先得安装 Ruby 环境,在 Mac 下我们可以使用的 Homebrew 来进行安装。如果是其他操作系统,可以去参考 Ruby 官方安装文档进行安装。
brew install ruby
等 Ruby 安装完毕后再执行以下命令完成 Jekyll 的安装。
gem install jekyll bundler
然后进入你 Clone 下来的 GitHub Pages 项目的路径,例如:

执行以下命令:
jekyll new . --force
完成后,Jekyll 会在你指定的目录下生成好所有文件,你可以使用 bundle exec jekyll serve 命令,然后就可以通过访问 127.0.0.1:4000 查看初始界面的样子了。

默认的界面看起来非常的简陋也很丑,但是没关系,你可以在这些网站里根据自己的喜好找到一些美观的主题http://jekyllthemes.org/、https://jekyllthemes.io/、http://themes.jekyllrc.org/。
安装方法很简单,一般情况下只需要下载主题包解压后完整的,复制到你的 GitHub Pages 的项目目录里,并覆盖你之前的文件即可,有些特殊的主题要参考作者给的安装步骤,这里我随意的更换了一个主题。

主题里的所有关键性配置都在 _config.yml 文件中,你可以根据个人的喜好和不同主题支持的功能来修改具体的内容,这里就不做展开。
到这里完整的搭建的流程已经结束了,你已经可以正常访问你一路配置下来的博客了,接下来你只需要找一个趁手的 Markdown 编辑器来编辑在你本地 GitHub Pages 项目中的 _posts 文件夹里的文章,并使用前面提到的两种方式将文章同步到 GitHub 上即可。需要注意的是,文章的内容和标题需要按照 Jekyll 的格式进行写作。
文章的文件名遵循下面的格式:
年-月-日-标题.markdown
文章内容顶部必须有下面的 YAML 头信息:
---layout: posttitle: Blogging Like a Hacker---
尾巴

其实除了 Jekyll 还有非常多的第三方的静态模板系统来搭建 GitHub Pages。比如:

  • Node.js 编写的 Hexo
  • Go 编写的 Hugo
  • Python 编写的 Pelican
  • 以及更人性化的 Gridea
他们在各自的基础上实现了更多的功能,比如分析统计、搜索、评论系统、广告、分享系统等。喜欢折腾的同学不妨可以尝试尝试,未来如果有机会希望能更详细的给大家分享一下。
回复

使用道具 举报

该用户从未签到

0

主题

28

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2022-9-21 21:10:44 | 显示全部楼层
这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册、DNS设置、github和Hexo设置等过程,这是我写得最长的一篇教程。我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后来者一个明确的指引,同时用这篇教程开篇,正式开始我的第八大洲之旅。


由于这篇教程实在太长,而且知乎专栏不支持Markdown,很多图没办法显示,所以只能贴到我的博客上去,链接在此:如何搭建一个独立博客--简明 GitHub Pages与 jekyll 教程
回复

使用道具 举报

该用户从未签到

8

主题

70

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
发表于 2022-9-21 21:25:44 | 显示全部楼层
嗨大家好,我是一周君。


虽然我的「主业」是设计,但我今天想强行来教大家如何零基础零成本搭建个人博客


话不多说,马上开始吧。


注:本文适合无代码基础的小白选手,因为我也是从零开始学起的。







01.博客最终效果


在说如何搭建博客之前,我们先来看一下我搭建的博客:


目前首页有两篇文章,内容有些单薄,但页面整体设计得比较简洁,是我喜欢的类型。如果你对这个页面不太满意,还可以使用其他的博客主题,更换主题也非常方便。





下图是博客文章的内页,两侧留白设计,文字的大小和行间距设置得比较合理,阅读的时候看起来也比较舒服。





博客在手机上也进行了很好地适配,想要了解博客在手机上的阅读体验,可点击文章底部的 {阅读原文} 。




02.搭建博客的前期准备


① 注册Github账号



打开Github官网,使用邮箱注册Github账号,注册时请谨慎设置自己的用户名,因为用户名后面会成为博客域名的一部分。





获得了Github账号后,点击左侧的Create a repository,创建一个仓库,用于存放博客的相关数据。





在设置仓库名称时,它的格式是固定的,采用「用户名.http://github.io」的格式,因为这个仓库名称就是博客的域名(地址)。


如下图,我的用户名为angola95,因此仓库名为「http://angola95.github.io」。


设置好仓库名称后,勾选Initialize this repository with a README,最后点击底部的Create repository,就完成了仓库的创建。





创建好仓库后,点击右上方的账号头像,选择Settings。





在设置菜单中,按照Developer settings--Personal access tokens的路径进入,点击右上方的Generate new token。





在New token设置页面,Note输入对Token的描述或备注,勾选下方的repo。





最后将页面拉至底部,点击Generate token,就会生成一串由数字和字母组成的字符,这就是刚刚生成的Token。


有的小伙伴可能会问,这个生成的Token有什么用?请接着往下看,你可能就明白了。





② 安装Git



Git是一个分布式版本控制软件,方便多个开发者同时为一个项目贡献代码,彼此间互不影响,大大提高了团队合作的效率。


Git的数据库分为远端数据库和本地数据库,我们在Github上创建的仓库,可以看成是博客的远端数据库,而本地数据库就是我们使用的电脑。


使用Git,能将我们在本地电脑写的博客内容,自动地推送到远端的Github上,而连接本地和远端数据库的桥梁,就是前面生成的Token。





Git支持Win、macOS和Linux三大平台,下载之后,它的安装方法与普通软件一样,更换软件安装位置之后,一直点击下一步,直至开始安装。


Git下载地址:
https://git-scm.com/downloads
③ 安装博客写作客户端



Gridea是一个静态的博客写作客户端,它提供了免费和收费的博客主题,通过应用不同的主题,可以让原本简陋的博客更有设计感。





安装了Gridea后,需要先进行一定的配置。


在配置页面中,Platform选择Github Pages,分支填写master,其他选项则根据个人信息进行填写。





填写好信息,先点击保存,接着点击检测远程连接,查看是否连接成功。


若提示远程连接失败,解决方法可参考Gridea官方给出的文档:
https://dwz.cn/K9DdtABB


Gridea下载地址:
https://gridea.dev




03.开始写第一篇博客



完成上面的工作后,就算完成了博客的搭建,接下来你就可以开始写自己的第一篇博客了。


① Markdown语法



发布博客前,你需要有一个编辑器来写博客,Gridea中内置了文本编辑器,采用的是Markdown标记语言,而非我们平常使用的Word那种富文本格式。


相比富文本格式,Markdown有一个最大的优点:


让人更关注写作本身,而不是关注排版。


使用Word写作时,经常会花费较多时间在排版上,而Markdown足够简单,去除了Word内置的冗余样式,选择少了,你也没必要纠结于使用哪种样式。





虽说Markdown是一种标记语言,但你不需要被「语言」这两个字吓到,因为它并不算是编程语言,学起来也非常简单,至多10分钟就可以完全掌握。


在文字最前面加三个#号,就表示标题三的样式;在文字前后各加两个星号,相当于对文字进行加粗。





关于Markdown的更多常用标记语法,请自行上网搜索。


② Markdown编辑器



Gridea自带的Markdown编辑器,不能同时并排显示编辑窗口和预览窗口,想要实时预览效果,就需要频繁点击右侧的预览按钮,这大大降低了码字效率。





为了能实时预览效果,我建议使用可实时预览效果的外部Markdown编辑器,如马克飞象和Typora等。


马克飞象,是印象笔记推出的在线Markdown编辑器,只要有网络,你就能随时开始写作。


此外,由于马克飞象和印象笔记是同一家公司的产品,通过绑定印象笔记账号,就能实时将内容保存到印象笔记中,这也间接实现了内容在多个平台间的同步。





马克飞象在线地址:
https://maxiang.io/


Typora,是一个免费的Markdown客户端软件,支持Win、macOS和Linux三个平台。


Typora虽然没有马克飞象并排的实时预览窗口,但它也是所见即所得的,输入Markdown的标记符号后,就能马上看到最终的效果。





使用Markdown写文章,有时需要将文章发送给他人查看,若对方没有用过Markdown,你直接发送一份Markdown文件过去,会让别人一脸懵逼,也不便于多人间的协作。


而Typora也为我们考虑到了这一点,在导出中,有多种文件格式可以选择,如最为常见的PDF、Word和图片。





Typora下载地址:
https://www.typora.io/#download
③ Markdown图床



在Markdown中,使用的图片都是通过链接的形式添加到文章中的,下图中的图片就是使用https开头的链接引用到Markdown中的。





图片通过链接进行引用,这就需要我们先将图片上传到服务器中,在网上用于存放图片的服务器,叫做「图床」。


若你觉得图床比较陌生,也可以将图床理解为网络相册,如QQ空间相册、微博相册等,我们发布在QQ或微博的照片,其实就是存放在了腾讯和新浪的服务器上。


网络上的图床有免费和收费两种,为最低成本地搭建一个博客,我选择使用免费的图床,而这个图床刚好就是文章最开始提到的Github。


④ 图片上传工具PicGo



为方便将电脑本地的图片上传到Github,我们需要安装一个图片上传工具——PicGo。
使用PicGo上传到Github的图片,它会返回图片对应的链接,接着你将链接粘贴到使用Markdown写的博客中,图片就可以正常显示了。


PicGo是由一位个人开发者@PiEgg 开发的免费图片上传工具,支持Win、macOS和Linux三大平台。





安装了PicGo后,需要先对软件进行一定的设置:


点击图片上传右下角的箭头,选择Github图床。





点击左侧边栏的图床设置,选择Github图床,进入Github图床的设置界面。


在Github设置中,需要填写的信息有仓库名、分支名和Token等,这些信息在提示我们得去Github新建一个用作图床的仓库。





下图是我新建的用作图床的仓库,创建方法与前面介绍的创建仓库操作基本一致,这里不再赘述。





创建好图床的仓库后,我们还需要创建一个新的Token,用于连接PicGo与图床仓库,创建Token的方法,前面也有介绍过。


完成新仓库和Token的创建后,我们回到PicGo的配置界面,按照下图填入相关信息。





*对上图的说明:
仓库名:格式为 Github用户名/仓库名;
分支名:设置为 master;
设定自定义域名:格式为https://raw.githubusercontent.com/Github用户名/仓库名/master,前面的部分都是固定的,后面的Github用户名和仓库名根据个人情况进行替换。


完成以上设置后,点击下方的确定按钮,若配置的信息正确,在Win10系统右下角会弹出设置成功的通知。





返回到PicGo的上传区,将你想上传到的图片拖拽到上传区,待图片完成上传,软件会在桌面右下角弹出上传成功的通知。


通知附带了图片上传到Github的链接,点击通知面板,就会将链接保存到复制到系统的剪贴板中。





此时再回到Typora,将剪贴板中的图片链接粘贴到文章中,就完成了博客图片的添加。





PicGo下载地址:
https://dwz.cn/sNQWdAfG




04.发布你的第一篇博客



至此,完成了前面较为繁琐的操作后,你就可以正式发布自己的第一篇博客了。


在博客客户端Gridea中,点击左下角的预览按钮,可以预览保存在本地的博客,预览后未发现问题的话,就可以点击下方的同步按钮,将保存到本地的博客推送到Github上。





完成同步后,在浏览器中输入最开始创建的仓库的名称,由于最开始我将仓库名称设置为http://angola95.github.io,因此在浏览器输入这个地址,就能打开我的个人博客了。







05. 写在最后



使用本文介绍的方法搭建博客,有两个好处:


一是不需要花时间学习搭建博客所需的技术,对新手比较友好;


二是搭建的博客完全免费,不需要担心服务器到期访问不了。


当然,这个方法也存在一些不足:由于Github是个国外的网站,若博客中添加的图片过大,加载的时间会延长。


对比了这个方法存在的利弊,我最终还是选择了它。


除了本文介绍的搭建博客的方法,网上还有很多其他方法,感兴趣的小伙伴可以自行搜索。


以上,就是本次想和你分享的零基础零成本搭建博客的方法。
希望对你有帮助,我们下次见。


一周进步〡年轻人快速突破自己的学习入口
微信公众号:关注「一周进步」(weekweekup)
青年兴趣课堂,每周一场训练营,欢迎关注,让我们一起进步
更多干货欢迎阅读:一周进步文章精选
回复

使用道具 举报

该用户从未签到

7

主题

50

帖子

154

积分

注册会员

Rank: 2

积分
154
发表于 2022-9-21 21:40:44 | 显示全部楼层
这些年我用 GitHub 倒腾的博客没有十个,也有八九个了,今天我就手把手教你如何在 GitHub 上写博客,文章较长,细节较多,记得先收藏,如果有帮助记得点赞,如果搭建成功,可以留言一下你的博客。
准备条件

在这里先跟大家说一些准备条件,有些同学可能一听到搭建博客就望而却步。弄个博客网站,不得有台服务器吗?不得搞数据库吗?不得注册域名吗?没事,如果都没有,那照样是能搭建一个博客的。
GitHub 是个好东西啊,它提供了 GitHub Pages 帮助我们来架设一个静态网站,这就解决了服务器的问题。
Hexo 这个博客框架没有那么重量级,它是 MarkDown 直接写文章的,然后 Hexo 可以直接将文章编译成静态网页文件并发布,所以这样文章的内容、标题、标签等信息就没必要存数据库里面了,是直接纯静态页面了,这就解决了数据库的问题。
GitHub Pages 允许每个账户创建一个名为 {username}.http://github.io 的仓库,另外它还会自动为这个仓库分配一个 http://github.io 的二级域名,这就解决了域名的问题,当然如果想要自定义域名的话,也可以支持。
所以说,基本上,先注册个 GitHub 账号就能搞了,下面我们来正式开始吧。
关于如何使用 GitHub 请阅读这篇文章:
还不会使用 GitHub ? GitHub 教程来了!万字图文详解
额外整理了一些电子书,应该对你很有帮助:

新建项目

首先在 GitHub 新建一个仓库(Repository),名称为 {username}.http://github.io,注意这个名比较特殊,必须要是 http://github.io 为后缀结尾的。比如 NightTeam 的 GitHub 用户名就叫 NightTeam,那我就新建一个 http://nightteam.github.io,新建完成之后就可以进行后续操作了。
另外如果 GitHub 没有配置 SSH 连接的建议配置一下,这样后面在部署博客的时候会更方便。
安装环境

安装 Node.js

首先在自己的电脑上安装 Node.js,下载地址:https://nodejs.org/zh-cn/download/,可以安装 Stable 版本。
安装完毕之后,确保环境变量配置好,能正常使用 npm 命令。
安装 Hexo

接下来就需要安装 Hexo 了,这是一个博客框架,Hexo 官方还提供了一个命令行工具,用于快速创建项目、页面、编译、部署 Hexo 博客,所以在这之前我们需要先安装 Hexo 的命令行工具。
命令如下:
npm install -g hexo-cli
安装完毕之后,确保环境变量配置好,能正常使用 hexo 命令。
初始化项目

接下来我们使用 Hexo 的命令行创建一个项目,并将其在本地跑起来,整体跑通看看。
首先使用如下命令创建项目:
hexo init {name}
这里的 name 就是项目名,我这里要创建 NightTeam 的博客,我就把项目取名为 nightteam 了,用了纯小写,命令如下:
hexo init nightteam
这样 nightteam 文件夹下就会出现 Hexo 的初始化文件,包括 themes、scaffolds、source 等文件夹,这些内容暂且先不用管是做什么的,我们先知道有什么,然后一步步走下去看看都发生了什么变化。
接下来我们首先进入新生成的文件夹里面,然后调用 Hexo 的 generate 命令,将 Hexo 编译生成 HTML 代码,命令如下:
hexo generate
可以看到输出结果里面包含了 js、css、font 等内容,并发现他们都处在了项目根目录下的 public 文件夹下面了。
然后我们利用 Hexo 提供的 serve 命令把博客在本地运行起来,命令如下:
hexo serve
运行之后命令行输出如下:
INFO  Start processingINFO  Hexois running at http://localhost:4000 . Press Ctrl+C to stop
它告诉我们在本地 4000 端口上就可以查看博客站点了,如图所示:

这样一个博客的架子就出来了,我们只用了三个命令就完成了。
部署

接下来我们来将这个初始化的博客进行一下部署,放到 GitHub Pages 上面验证一下其可用性。成功之后我们可以再进行后续的修改,比如修改主题、修改页面配置等等。
那么怎么把这个页面部署到 GitHub Pages 上面呢,其实 Hexo 已经给我们提供一个命令,利用它我们可以直接将博客一键部署,不需要手动去配置服务器或进行其他的各项配置。
部署命令如下:
hexo deploy
在部署之前,我们需要先知道博客的部署地址,它需要对应 GitHub 的一个 Repository 的地址,这个信息需要我们来配置一下。
打开根目录下的 _config.yml 文件,找到 Deployment 这个地方,把刚才新建的 Repository 的地址贴过来,然后指定分支为 master 分支,最终修改为如下内容:

我的就修改为如下内容:

另外我们还需要额外安装一个支持 Git 的部署插件,名字叫做 hexo-deployer-git,有了它我们才可以顺利将其部署到 GitHub 上面,如果不安装的话,在执行部署命令时会报如下错误:
Deployer not found: git
好,那就让我们安装下这个插件,在项目目录下执行安装命令如下:
npm install hexo-deployer-git --save
安装成功之后,执行部署命令:
hexo deploy
运行结果类似如下:

如果出现类似上面的内容,就证明我们的博客已经成功部署到 GitHub Pages 上面了,这时候我们访问一下 GitHub Repository 同名的链接,比如我的 NightTeam 博客的 Repository 名称取的是 http://nightteam.github.io,那我就访问 http://nightteam.github.io,这时候我们就可以看到跟本地一模一样的博客内容了。

这时候我们去 GitHub 上面看看 Hexo 上传了什么内容,打开之后可以看到 master 分支有了这样的内容:

仔细看看,这实际上是博客文件夹下面的 public 文件夹下的所有内容,Hexo 把编译之后的静态页面内容上传到 GitHub 的 master 分支上面去了。
这时候可能就有人有疑问了,那我博客的源码也想放到 GitHub 上面怎么办呢?其实很简单,新建一个其他的分支就好了,比如我这边就新建了一个 source 分支,代表博客源码的意思。
具体的添加过程就很简单了,参加如下命令:
git initgit checkout -b sourcegit add -Agit commit -m "init blog"git remote add origin git@github.com:{username}/{username}.github.io.gitgit push origin source
成功之后,可以到 GitHub 上再切换下默认分支,比如我就把默认的分支设置为了 source,当然不换也可以。
补充一句,多看书总是没有坏处的,把看书时的心得笔记放到博客上,也是一种学习方式。
程序员必备的书籍有哪些?(含下载方式)
配置站点信息

完成如上内容之后,实际上我们只完成了博客搭建的一小步,因为我们仅仅是把初始化的页面部署成功了,博客里面还没有设置任何有效的信息。下面就让我们来进行一下博客的基本配置,另外换一个好看的主题,配置一些其他的内容,让博客真正变成属于我们自己的博客吧。
下面我就以自己的站点 NightTeam 为例,修改一些基本的配置,比如站点名、站点描述等等。
修改根目录下的 _config.yml 文件,找到 Site 区域,这里面可以配置站点标题 title、副标题 subtitle 等内容、关键字 keywords 等内容,比如我的就修改为如下内容:
# Sitetitle: NightTeamsubtitle: 一个专注技术的组织description: 涉猎的主要编程语言为 Python、Rust、C++、Go,领域涵盖爬虫、深度学习、服务研发和对象存储等。keywords: "Python, Rust, C++, Go, 爬虫, 深度学习, 服务研发, 对象存储"author: NightTeam
这里大家可以参照格式把内容改成自己的。
另外还可以设置一下语言,如果要设置为汉语的话可以将 language 的字段设置为 zh-CN,修改如下:
language: zh-CN
这样就完成了站点基本信息的配置,完成之后可以看到一些基本信息就修改过来了,页面效果如下:

修改主题

目前来看,整个页面的样式个人感觉并不是那么好看,想换一个风格,这就涉及到主题的配置了。目前 Hexo 里面应用最多的主题基本就是 Next 主题了,个人感觉这个主题还是挺好看的,另外它支持的插件和功能也极为丰富,配置了这个主题,我们的博客可以支持更多的扩展功能,比如阅览进度条、中英文空格排版、图片懒加载等等。
那么首先就让我们来安装下 Next 这个主题吧,目前 Next 主题已经更新到 7.x 版本了,我们可以直接到 Next 主题的 GitHub Repository 上把这个主题下载下来。
主题的 GitHub 地址是:https://github.com/theme-next/hexo-theme-next,我们可以直接把 master 分支 Clone 下来。
首先命令行进入到项目的根目录,执行如下命令即可:
git clone https://github.com/theme-next/hexo-theme-next themes/next
执行完毕之后 Next 主题的源码就会出现在项目的 themes/next 文件夹下。
然后我们需要修改下博客所用的主题名称,修改项目根目录下的 _config.yml 文件,找到 theme 字段,修改为 next 即可,修改如下:
theme: next
然后本地重新开启服务,访问刷新下页面,就可以看到 next 主题就切换成功了,预览效果如下:

主题配置

现在我们已经成功切换到 next 主题上面了,接下来我们就对主题进行进一步地详细配置吧,比如修改样式、增加其他各项功能的支持,下面逐项道来。
Next 主题内部也提供了一个配置文件,名字同样叫做 _config.yml,只不过位置不一样,它在 themes/next 文件夹下,Next 主题里面所有的功能都可以通过这个配置文件来控制,下文所述的内容都是修改的 themes/next/_config.yml 文件。
样式

Next 主题还提供了多种样式,风格都是类似黑白的搭配,但整个布局位置不太一样,通过修改配置文件的 scheme 字段即可,我选了 Pisces 样式,修改 _config.yml (注意是 themes/next/_config.yml 文件)如下:
scheme: Pisces
刷新页面之后就会变成这种样式,如图所示:

另外还有几个可选项,比如:
# scheme: Muse#scheme: Mistscheme: Pisces#scheme: Gemini
大家可以自行根据喜好选择。
favicon

favicon 就是站点标签栏的小图标,默认是用的 Hexo 的小图标,如果我们有站点 Logo 的图片的话,我们可以自己定制小图标。
但这并不意味着我们需要自己用 PS 自己来设计,已经有一个网站可以直接将图片转化为站点小图标,站点链接为:https://realfavicongenerator.net[1],到这里上传一张图,便可以直接打包下载各种尺寸和适配不同设备的小图标。
图标下载下来之后把它放在 themes/next/source/images 目录下面。
然后在配置文件里面找到 favicon 配置项,把一些相关路径配置进去即可,示例如下:

配置完成之后刷新页面,整个页面的标签图标就被更新了。
avatar

avatar 这个就类似站点的头像,如果设置了这个,会在站点的作者信息旁边额外显示一个头像,比如我这边有一张 avatar.png 图片:

将其放置到 themes/next/source/images/avatar.png 路径,然后在主题 _config.yml 文件下编辑 avatar 的配置,修改为正确的路径即可。

这里有 rounded 选项是是否显示圆形,rotated 是是否带有旋转效果,大家可以根据喜好选择是否开启。
效果如下:

配置完成之后就会显示头像。
rss

博客一般是需要 RSS 订阅的,如果要开启 RSS 订阅,这里需要安装一个插件,叫做 hexo-generator-feed,安装完成之后,站点会自动生成 RSS Feed 文件,安装命令如下:
npm install hexo-generator-feed --save
在项目根目录下运行这个命令,安装完成之后不需要其他的配置,以后每次编译生成站点的时候就会自动生成 RSS Feed 文件了。
code

作为程序猿,代码块的显示还是需要很讲究的,默认的代码块我个人不是特别喜欢,因此我把代码的颜色修改为黑色,并把复制按钮的样式修改为类似 Mac 的样式,修改 _config.yml 文件的 codeblock 区块如下:

修改前的代码样式:

修改后的代码样式:

嗯,个人觉得整体看起来逼格高了不少。
top

我们在浏览网页的时候,如果已经看完了想快速返回到网站的上端,一般都是有一个按钮来辅助的,这里也支持它的配置,修改 _config.yml 的 back2top 字段即可,我的设置如下:

enable 默认为 true,即默认显示。sidebar 如果设置为 true,按钮会出现在侧栏下方,个人觉得并不是很好看,就取消了,scrollpercent 就是显示阅读百分比,个人觉得还不错,就将其设置为 true。
具体的效果大家可以设置后根据喜好选择。
reading_process

reading_process,阅读进度。大家可能注意到有些站点的最上侧会出现一个细细的进度条,代表页面加载进度和阅读进度,如果大家想设置的话也可以试试,我将其打开了,修改 _config.yml 如下:

设置之后显示效果如下:

bookmark

书签,可以根据阅读历史记录,在下次打开页面的时候快速帮助我们定位到上次的位置,大家可以根据喜好开启和关闭,我的配置如下:

github_banner

在一些技术博客上,大家可能注意到在页面的右上角有个 GitHub 图标,点击之后可以跳转到其源码页面,可以为 GitHub Repository 引流,大家如果想显示的话可以自行选择打开,我的配置如下:

记得修改下链接 permalink 和标题 title,显示效果如下:

可以看到在页面右上角显示了 GitHub 的图标,点击可以进去到 Repository 页面。
gitalk

由于 Hexo 的博客是静态博客,而且也没有连接数据库的功能,所以它的评论功能是不能自行集成的,但可以集成第三方的服务。
Next 主题里面提供了多种评论插件的集成,有 changyan | disqus | disqusjs | facebook_comments_plugin | gitalk | livere | valine | vkontakte 这些。
作为一名程序员,我个人比较喜欢 gitalk,它是利用 GitHub 的 Issue 来当评论,样式也比较不错。
首先需要在 GitHub 上面注册一个 OAuth Application,链接为:https://github.com/settings/applications/new,注册完毕之后拿到 Client ID、Client Secret 就可以了。
首先需要在 _config.yml 文件的 comments 区域配置使用 gitalk:

主要是 comments.active 字段选择对应的名称即可。
然后找打 gitalk 配置,添加它的各项配置:

配置完成之后 gitalk 就可以使用了,点击进入文章页面,就会出现如下页面:

GitHub 授权登录之后就可以使用了,评论的内容会自动出现在 Issue 里面。
pangu

我个人有个强迫症,那就是写中文和英文的时候中间必须要留有间距,一个简单直接的方法就是中间加个空格,但某些情况下可能习惯性不加或者忘记加了,这就导致中英文混排并不是那么美观。
pangu 就是来解决这个问题的,我们只需要在主题里面开启这个选项,在编译生成页面的时候,中英文之间就会自动添加空格,看起来更加美观。
具体的修改如下:
pangu: true
math

可能在一些情况下我们需要写一个公式,比如演示一个算法推导过程,MarkDown 是支持公式显示的,Hexo 的 Next 主题同样是支持的。
Next 主题提供了两个渲染引擎,分别是 mathjax 和 katex,后者相对前者来说渲染速度更快,而且不需要 JavaScript 的额外支持,但后者支持的功能现在还不如前者丰富,具体的对比可以看官方文档:https://theme-next.org/docs/third-party-services/math-equations。
所以我这里选择了 mathjax,通过修改配置即可启用:

mathjax 的使用需要我们额外安装一个插件,叫做 hexo-renderer-kramed,另外也可以安装 hexo-renderer-pandoc,命令如下:
npm un hexo-renderer-marked --savenpm i hexo-renderer-kramed --save
另外还有其他的插件支持,大家可以到官方文档查看。
pjax

可能大家听说过 Ajax,没听说过 pjax,这个技术实际上就是利用 Ajax 技术实现了局部页面刷新,既可以实现 URL 的更换,有可以做到无刷新加载。
要开启这个功能需要先将 pjax 功能开启,然后安装对应的 pjax 依赖库,首先修改 _config.yml 修改如下:
pjax: true
然后安装依赖库,切换到 next 主题下,然后安装依赖库:
$ cd themes/next$ git clone theme-next/theme-next-pjax source/lib/pjax
文章

现在整个站点只有一篇文章,那么我们怎样来增加其他的文章呢?
这个很简单,只需要调用 Hexo 提供的命令即可,比如我们要新建一篇「HelloWorld」的文章,命令如下:
hexo new hello-world
创建的文章会出现在 source/_posts 文件夹下,是 MarkDown 格式。
在文章开头通过如下格式添加必要信息:

开头下方撰写正文,MarkDown 格式书写即可。
这样在下次编译的时候就会自动识别标题、时间、类别等等,另外还有其他的一些参数设置,可以参考文档:https://hexo.io/zh-cn/docs/writing.html。
标签页

现在我们的博客只有首页、文章页,如果我们想要增加标签页,可以自行添加,这里 Hexo 也给我们提供了这个功能,在根目录执行命令如下:
hexo new page tags
执行这个命令之后会自动帮我们生成一个 source/tags/index.md 文件,内容就只有这样子的:

我们可以自行添加一个 type 字段来指定页面的类型:
type: tagscomments:false
然后再在主题的 _config.yml 文件将这个页面的链接添加到主菜单里面,修改 menu 字段如下:

这样重新本地启动看下页面状态,效果如下:

可以看到左侧导航也出现了标签,点击之后右侧会显示标签的列表。
分类页

分类功能和标签类似,一个文章可以对应某个分类,如果要增加分类页面可以使用如下命令创建:
hexo new page categories
然后同样地,会生成一个 source/categories/index.md 文件。
我们可以自行添加一个 type 字段来指定页面的类型:

然后再在主题的 _config.yml 文件将这个页面的链接添加到主菜单里面,修改 menu 字段如下:

这样页面就会增加分类的支持,效果如下:

搜索页

很多情况下我们需要搜索全站的内容,所以一个搜索功能的支持也是很有必要的。
如果要添加搜索的支持,需要先安装一个插件,叫做 hexo-generator-searchdb,命令如下:
npm install hexo-generator-searchdb --save
然后在项目的 _config.yml 里面添加搜索设置如下:

然后在主题的 _config.yml 里面修改如下:

部署脚本

最后我这边还增加了一个简易版的部署脚本,其实就是重新 gererate 下文件,然后重新部署。在根目录下新建一个 deploy.sh 的脚本文件,内容如下:
hexo clean
hexo generate
hexo deploy
这样我们在部署发布的时候只需要执行:
sh deploy.sh
就可以完成博客的更新了,非常简单。
自定义域名

将页面修改之后可以用上面的脚本重新部署下博客,其内容便会跟着更新。
另外我们也可以在 GitHub 的 Repository 里面设置域名,找到 Settings,拉到下面,可以看到有个 GitHub Pages 的配置项,如图所示:

下面有个 custom domain 的选项,输入你想自定义的域名地址,然后添加 CNAME 解析就好了。
另外下面还有一个 Enforce HTTPS 的选项,GitHub Pages 会在我们配置自定义域名之后自动帮我们配置 HTTPS 服务。刚配置完自定义域名的时候可能这个选项是不可用的,一段时间后等到其可以勾选了,直接勾选即可,这样整个博客就会变成 HTTPS 的协议的了。
另外有一个值得注意的地方,如果配置了自定义域名,在目前的情况下,每次部署的时候这个自定义域名的设置是会被自动清除的。所以为了避免这个情况,我们需要在项目目录下面新建一个 CNAME 文件,路径为 source/CNAME,内容就是自定义域名。
比如我就在 source 目录下新建了一个 CNAME 文件,内容为:
blog.nightteam.cn
这样避免了每次部署的时候自定义域名被清除的情况了。
以上就是从零搭建一个 Hexo 博客的流程,希望对大家有帮助。
也欢迎大家访问小吴的个人博客网站:http://www.cxyxiaowu.com 目前里面更新了 400 多篇算法文章。
来源:NightTeam
作者:崔庆才
链接:超全面!如何用 GitHub 从零开始搭建一个博客 ?
回复

使用道具 举报

该用户从未签到

9

主题

33

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2022-9-21 21:55:44 | 显示全部楼层
写博客,直接建个 Issues 不就好了,如 phodal/articles


然后,你就可以专心写博客系统了。


后期,再使用脚本将 issues 转换成博客
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表