一、前言
现有的博客产品已经非常多了,比如:博客园、CSDN、简书等等,在这些平台都可以发布自己的博客内容,为何还需要自己搭建博客?我个人感觉是这些平台后台编写markdown会很费劲,其次内容是在其他的平台上不可控,然后可能这些界面的风格不是太喜欢。所以作为一名搬砖的码农,还是走点技术流的路线吧。
你看到的本博客就是使用hexo框架搭建的,其实目前有很多人使用这个搭建个人博客或者团队的技术博客。比如阿里的中间件博客、一些技术博客(nlp内容居多)就是使用hexo搭建的。
Hexo官网:https://hexo.io/zh-cn/
安装hexo只需要执行以下命令即可(如果没安装npm可以自行百度安装):1
npm install hexo-cli -g
二、使用hexo创建博客
经过上述步骤我们已经安装好了hexo了,然后我们创建一个文件夹blog,让后执行命令1
2
3
4cd blog
hexo init
npm install
hexo server
在浏览器中输入(http://localhost:4000/)就可以看到以下的界面
三、更换hexo主题
hexo默认的主题是landspace
,我们选择next主题(github)、官网来进行主题更换示例,该主题也是github
上人气最高的主题之一,本博客选择的就是该主题。在_config.yml
中修改theme: next
,然后重启hexo服务,就可以看到如下画面:
在项目中有两个_config.yml
,一个是主题的在文件夹themes/next
下,另外一个在博客的根目录下
在博客的_config.yml
中配置如下:1
2
3
4
5
6
7
8# Site
title: 马野的博客
subtitle:
description:
keywords:
author: 马野
language: zh-Hans
timezone:
在主题_config.yml
中对配置如下修改:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17menu:
home: /
about: /about
tags: /tags
categories: /categories
archives: /archives
scheme: Mist
auto_excerpt:
enable: true
length: 150
mathjax:
enable: true
per_page: false
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML
然后执行1
2hexo new page "tags"
hexo new page "categories"
然后在tags
的index.md
中添加type: "tags"
,在categories
同理,则可以看到现在的界面
新建一篇文章运行指令hexo new “your tittle”
,然后在source/_post/
目录中看到自己新建的文章,格式是md格式的,现在我们可以使用markdown
语法来编写我们的博客。
四、关于公式和markdown的图床如何解决
在上述的主题配置中已经把mathjax
设置生效了,如果还不能生效则尝试安装npm install hexo-math
。
关于图床之前网上很多都是说使用七牛云做为图床,个人感觉比较麻烦而且不易管理。其实可以直接把图和博客一起发布到GitHub-pages
,方便而且比较好管理。在source
中建立文件夹imgs
,然后将图片放到文件夹中,比如放入的图片为test.png
,则在需要引入的markdown
中这样引入
即可。然后刷新就可以看到图了,后面即使部署到github-pages
也是可以生效的。
五、将博客部署到github-pages
GitHub Pages 是通过我们网站托管和发布的公开网页。
你可以通过 Automatic Page Generator 在线创建和发布GitHub Pages。如果你更喜欢本地操作,你可以使用Mac或者Windows平台的GitHub App,或者使用命令行。
5.1、git链接github
5.1.1、生成ssh key
手先需要本地安装git
,然后需要与github
链接需要生成ssh key
,生成方式如下,:1
2cd ~/.ssh
ssh-keygen -t rsa -C "yours@gmail.com" #你的github账号
注意:
- 不要一路回车,分别在第一个对话即需要输入的时候,输入文件名(如:
id_rsa_one
),这样会生成对应的文件名的公钥和私钥(如:id_rsa_one
、id_rsa_one.pub
) - 如果执行的路径不在~/.ssh路径中执行的话,需要把文件拷贝到期目录下
5.1.2、添加公钥到github
然后登陆github
,点击自己头像,点击setting
,如下:
然后在点击SSH and GPG Keys
,如下:
然后点击new ssh key
将公钥(id_rsa_one.pub
)中的内容填到其中即可,就会出现如下:
5.1.3、添加私钥
打开ssh-agent
如果你是github官方的bash
1
ssh-agent -s
如果你是其它,比如msysgit:
1
eval $(ssh-agent -s)
添加私钥1
ssh-add ~/.ssh/id_rsa_one
这个时候你的本地的git
就可以连接上github
啦。
5.2、创建github-pages工程
需要让博客能够在公网访问需要在你的GitHub
账号中新建一个github-pages
的Repositories
。点击自身头像并点击your profile
然后在点击Repositories
后点击new
就会出现以下界面:
我自己的用户名为Mayexia
,也就是红色框框的前面一部分,所有后面就应该填写Mayexia.github.io
(注意:一定要同自己的用户名一致)
5.3、发布博客并管理源码
在博客的源_config.yml
中修改deploy
配置如下:1
2
3
4deploy:
type: git
repo: git@github.com:yours/yours.github.io.git #修改成自己的repo的地址
branch: master
然后在执行如下命令:
1 | npm install hexo-deployer-git --save #先安装hexo部署插件 |
然后在浏览器中输入yours.github.io
(替换成自己的),就可以看到你的博客就搭建完成啦。
博客虽然发布了,我们可以访问到了,但是上传到github-pages
是hexo
渲染后的静态的web
文件,我们的写博客的源码还是需要备份和管理的。既然我们已经连到了github
,我们可以使用github
来对我们的博客的源码进行版本管理和备份,这样写完一篇博文后立马可以发布到github-pages
同时也可以将源码上传到github
进行版本管理。
六、next主题配置
因为网上有很多很详细很全的配置教程,我就不在这里讲述如何配置主题了,以下两个博文写的很详细,可以按照自己的喜好进行配置。
七、Hexo常用命令
1 | hexo new "postName" #新建文章 |
八、关于markdown编辑器
网上也有很多markdown
编辑器,其实我个人觉得使用hexo
编写博客好处就是可以随便找一个编辑器,然后在本地将博客服务启动起来,随时修改就可以看得到效果,不用担心线下和线上的markdown
语法不兼容的问题,而且插件比较多可以满足个性化的定制。编辑器的话我个人倾向于使用atom
编辑器来撰写博文然后发布。
markdown的语法学习链接:
九、其他
使用next
主题的时候发现markdown
的表格时候需要与文字中间空一行才会生效。
我看到网上有相关的话题说使用GitHub
搭建博客是不道德的事情,个人觉得这不是什么不道德的事情,毕竟GitHub
官方也出了个gitbook
可以让大家编写电子书籍发布到gitbook
上,或许还是支持这么干的呢(个人猜想啦),希望这篇博文能够帮助到大家搭建一个属于自己的博客,享受分享知识的乐趣。