使用Hexo 搭建你的技术博客

简介: 如果你是个热爱分(zhuang)享(bi)的人,如果你是一个不甘寂寞的程序猿(媛),你想搭建一个属于自己的个人网站,那么请跟着这篇文章操作一遍,几乎免费让你快速拥有自己的博客网站,写文章记录生活,享受这种从0到1的过程。

前言


如果你是个热爱分(zhuang)享(bi)的人,如果你是一个不甘寂寞的程序猿(媛),你想搭建一个属于自己的个人网站,那么请跟着这篇文章操作一遍,几乎免费让你快速拥有自己的博客网站,写文章记录生活,享受这种从0到1的过程。


Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GayHub上,是搭建博客的首选框架,而且有个Github的个人博客逼格一下就上来了!


要想更全面的了解Hexo,可以访问官网 https://hexo.io/zh-cn/docs/


hexo 安装配置

基础组件


安装 Hexo 相当简单,只需要先安装下列应用程序即可:


  • git


  • node.js (Node.js 版本需不低于 8.10,建议使用 Node.js 10.0 及以上版本)


这两个组件安装都很简单,而且作为一名合格的程序猿/媛应该都接触过,安装步骤我们就直接略过了。在你安装完成后可以使用 git --version,和 node -v 两个指令来验证安装结果。


1.png


安装hexo


所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

npm install -g hexo-cli
安装完成后可以使用shell命令 hexo -v 验证安装结果,如下所示:


2.png


创建博客


建立文件夹,然后进入文件夹后执行 hexo -init shell命令,初始化博客,具体操作如下:


mkdir/blogcdbloghexo-init


初始化完成后会在当前目录生成如下几个目录文件


3.png


node_modules:依赖包public:存放生成的页面scaffolds:模版 文件夹。当新建文章时,Hexo 会根据 scaffold 来建立文件。source:资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。themes:主题文件夹_config.yml  : 博客的配置文件,大部分配置都是基于这个文件完成。


初始化后我们就可以发布博客了,现在本地体验一下效果:


hexoghexoserver


这样在浏览器访问 http://localhost:4000 就可以查看博客效果了!


4.png


github配置

建立仓库


在github上创建一个和你用户名相同的仓库,后面加 .github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是http://yourname.github.io,其中yourname就是你注册GitHub的用户名。


比如博主的用户名是 jianzh5,那么我建立的仓库就是 jianzh5.github.io


5.png


生成ssh


  • 使用下面命令配置你的git信息


gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"youremail"


这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。


  • 可以用命令检查并确认你的配置


gitconfiguser.namegitconfiguser.email


6.png

image.png


  • 生成ssh ssh --keygen -t rsa -C "youremail" 一直回车即可生成ssh,如下所示,图中显示了你生成ssh的位置。


7.png


ssh就是一组秘钥。其中,id_rsa是你自己电脑的私人秘钥,id_rsa.pub是公共秘钥。我们把公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。


  • 配置ssh 在GitHub的setting中,找到SSH keys的设置选项,点击New SSH key 把你的id_rsa.pub里面的内容信息复制进去。


8.png


  • 验证ssh是否配置成功 ssh -T git@github.com

关联


搭建好了Hexo博客,创建好了Github仓库,接下来就是要将两者进行关联,将hexo生成的文章部署到Github上。


  • 修改hexo配置文件,关联github仓库
    打开站点配置文件 _config.yml,拉到最后的deploy配置项,增加git配置。大家可以直接将YourgithubName替换成你的github账号即可!


deploy:
type: gitrepo: https://github.com/YourgithubName/YourgithubName.github.io.gitbranch: master


  • 安装 hexo-deployer-git ,这样就可以部署到Github了
    npm install hexo-deployer-git --save


  • 发布文章并部署 执行下面三个命令进行文章发布部署


hexocleanhexogeneratehexodeploy


hexo clean 清除了你之前生成的东西,可以不加。

hexo generate 生成静态文章,也可以使用缩写 hexo g
hexo deploy 部署文章,也可以使用缩写 hexo d


注意在deploy时可能要你输入username和password,直接输入即可。


9.png


如果出现上图的效果则说明部署成功,这时候就可以通过浏览器访问并查看你博客效果了。https://jianzh5.github.io


10.png


博客配置


hexo中的大部分配置都是在具体主题中配置,只有些基础配置需要在主配置文件中(_config.yml)配置,比如博客名称、作者、时区等,大家根据情况自行配置,下面是博主的配置


11.png


发布文章


hexo 发布文章很简单,只需要在主目录中执行  hexo n "文章标题" 指令,执行完成后会在 /blog/source/_posts 文件夹下生成对应的md文件,要编辑文章只需要使用用md编辑工具编辑生成的文件即可。


在编写文章的时候可以使用tags标签和categories标签给文章打上标签和分类,方便后期检索。示例如下:


12.png


主题配置


如果你不太喜欢nexo的默认主题,可以更换一个主题。这里我们选择Next作为我们的博客主题,官方地址为:https://github.com/theme-next/hexo-theme-next


  • 下载next主题 在博客目录地址中执行git指令,下载主题


cd/Users/zhangjian/bloggitclonehttps://github.com/theme-next/hexo-theme-next themes/next


下载完成后我们就可以在themes主题文件夹下看到next主题文件夹


13.png


  • 修改主题配置 打开_config.yml,修改theme属性配置,将值设置成next


14.png


  • 重新编译部署


hexoghexod


这样你的博客主题就换成了 next ,可以访问我的博客查看效果:

https://jianzh5.github.io/


配置搜索功能


一般博客都会集成搜搜功能,NexT主题支持集成多种搜索:Local Search 、 Algolia、微搜索等。我使用的是Local Search,大家可以自行选择。


Local Search 的配置步骤如下:


  • 安装插件 hexo-generator-searchdb
    $ npm install hexo-generator-searchdb


  • 修改站点配置文件


search:
path: search.xmlfield: postformat: htmllimit: 1000


path:索引文件的路径,相对于站点根目录

field:搜索范围,默认是 post,还可以选择 page、all,all 表示搜索所有页面limit:限制搜索的条目数


  • 修改主题配置文件


#Localsearch#Dependencies: https://github.com/next-theme/hexo-generator-searchdblocal_search:
enable: true


  • 效果预览


15.png


评论配置

没有评论的博客是没有灵魂的,NexT主题支持多种评论插件,这里我们选择valine作为评论系统,详情大家可以移步至官网 https://leancloud.cn


注册好应用后进入修改博客主题所在目录的配置文件 /next/_config.yml,开启valine并修改你注册的 appidappkey,配置完成后使用 hexo ghexo d 编译发布即可看到效果。


16.png


版权申明


主流网站的文章末尾都有版权申明,原文链接。如下效果为博主在CSDN上的某篇博客的版权申明:


17.png


要在next中配置版权申明很简单,只需要修改主题配置文件 _config.yml 中的 creative_commons 标签配置:


creative_commons:
license: by-sasidebar: truepost: truelanguage: deed.zh


所有协议大家可以在网站 https://creativecommons.org/licenses 中了解,可以根据需求更换协议。


配置完成后重新部署hexo即可,效果如下:


aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QeE16VDBPaWJmNGdheUFRekJBdW8wTDFua1R4MU1FNmliYW5pYVJZNTd2a2dGVWNpYWxiRUxjNTRzb2lidVRlY1hId3VrY3p6MWRFN21MUnRUV2xSRGZGZWRBLzY0MA.png


打赏功能


现在很多博客平台都集成了打赏功能,如果你也想实现此功能可以按照下面操作实现。


  • 准备好微信和支付宝收款二维码 将两张收款二维码图片上传至next主题文件夹下的source/images下,即 /blog/themes/next/source/images


  • 修改主题配置文件,开启赞赏


18.png


  • 重新编译部署


hexoghexod


19.png


  • 在文章明细页查看效果


社交功能


希望给个人博客加上自己在其他平台的链接,可以直接修改主题的配置文件,比如博主给博客加入了博主CSDN、知乎的链接。


20.png


很简单,配置个链接和图标即可,对应的图标大家可以在这个网站找到:https://www.thinkcmf.com/font/font_awesome/icons.html,如果不使用图标不要忘记后面需要跟上 ||,否则编译不成功!


配置标签页面


  • 创建标签页
    在博客主目录执行 hexo new page tags 创建tags页面,页面位于 /blog/source/tags/index.md


  • 编辑标签页,设置页面类型


title: 标签date: 2020-06-1420:57:56type: "tags"comments: false


由于我们之前开启了评论,所有的页面默认都开启了评论功能,而标签页不需要评论,所以需要加上 comments: false 关闭评论。


  • 修改菜单配置,将标签页面加入菜单
menu:
home: /||fafa-hometag: /tags/||fafa-tagsarchives: /archives/||fafa-archive


配置分类页面


  • 创建分类页面
    hexo new page categories,页面位于 /blog/source/categories/index.md


  • 编辑分类页面,设置页面类型


title: 分类date: 2020-06-1420:57:56type: "categories"comments: false


分类页面同样也需要关闭评论。


  • 修改菜单配置,将分类页面加入菜单


menu:
home: /||fafa-hometag: /tags/||fafa-tagscatagories: /catagories||fafa-tharchives: /archives/||fafa-archive


小结


本篇文章带大家使用Hexo加上Github搭建自己的个人博客,博客基本的功能该有的都配置上了,剩下的一些个性化配置就等着大家自己慢慢去挖掘了。


作为程序员(媛)坚持写技术博客是很有好处的,可以大大扩展你的技术体系,而且以“输出倒逼输入”本身就是一个很好的学习方法。有搭建博客的想法就要坚持下去,切莫三天打鱼两天晒网,大家共勉!

目录
相关文章
|
5月前
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
593 70
|
11月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
前端开发 JavaScript Java
计算机java项目|springboot基于spring框架的电影订票系统
计算机java项目|springboot基于spring框架的电影订票系统
172 0
|
11月前
|
存储 安全 前端开发
在前端开发中需要考虑的常见web安全问题和攻击原理以及防范措施
在前端开发中需要考虑的常见web安全问题和攻击原理以及防范措施
1146 0
|
安全 文件存储 iOS开发
告别痕迹:远程桌面连接历史和凭据的清零指南
【8月更文挑战第18天】使用远程桌面后,为保障安全隐私,需清除连接历史及凭据。在Windows中,可通过注册表编辑器删除HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default下的MRU键值来清除历史记录;macOS下则需移步至“~/Library/Application Support/Apple/Remote Desktop”删除“Clients.plist”。清除凭据方面,Windows用户应访问“控制面板”中的“凭据管理器”删除相应条目;macOS用户需利用“钥匙串访问”应用找出并移除相关条目。
3106 3
|
C++
C++运算符
C++运算符
99 0
|
SQL 存储 关系型数据库
PostgreSQL 动态表复制(CREATE TABLE AS & CREATE TABLE LIKE)
PostgreSQL 动态表复制(CREATE TABLE AS & CREATE TABLE LIKE)
1592 0
|
Python
科赫曲线
科赫曲线
213 0
|
关系型数据库 API 数据库
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 18 章 服务器设置和操作_18.6. 升级一个PostgreSQL集簇
18.6. 升级一个PostgreSQL集簇 18.6.1. 通过pg_dumpall升级数据 18.6.2. 通过pg_upgrade升级数据 18.6.3. 通过复制升级数据 本节讨论如何把你的数据库数据从一个PostgreSQL发行升级到一个更新的发行。
1512 0