未经本人同意,内容禁止转载!
与很多的搭建blog的人一样,我也是很早就想搭建一个自己的blog,但是由于种种原因一直都没有弄起来,对于我个人来说有以下几个原因:
- 我不喜欢广告,希望blog只有文章、评论
- blog能支持繁杂的格式。比如各种代码能保持其在IDE一样的格式,可以打各种公式,以及你们现在看到的我在写这几个原因的这样的效果
- 能按照自己的想法来安排blog的样式,个人喜欢简洁、实用的风格
- 平台要足够稳定,因为国内很多平台都不稳定,随时可能倒闭,然后我就需要转移所有内容,这是我最为担心的。比如之前就是各种免费云,那么大的容量,1T、2T甚至无限的,最后统统关闭了,对这种具有中国特色的市场行为非常的反感
- 尝试过其他的平台都是一团糟,最后还是寻找国外的平台了
整篇文章会按照以下步骤展开:
- 我在搭建blog时的系统环境介绍
- 申请github账号并建立一个repository
- 生成ssh key与github通信
- 安装git
- 安装node.js
- 安装hexo并进行简单设置(包括hexo与github的连接)
- 发布第一篇文章
- 如何使用一个主题theme
- 总结搭建过程中需要用到的知识(Terminal和Vim和Markdown)
1. 设备与搭建环境
我使用hexo来搭建平台,hexo由台湾的tommy351大神用node.js编写,膜拜。我的由hexo生成的blog代码托管于github,以下是我使用的设备和搭建环境的version:
- MacOS Sierra version 10.12.6,这个很重要,我用的macbook,所以很多操作都是在terminal中完成
- node.js version 8.9.1
- git version 2.13.6 (Apple Git-96) 下载Xcode会自带git
- hexo version 3.4.1 通过terminal下载
- Xcode version 9.1 App Store下载
所以我的建议是你的版本跟我一致或者更高比较好,如果因为version的关系在搭建过程中就可能会遇到很多的意想不到的问题。我在搭建的时候几乎没有遇到什么问题,基本上就是一次性就搭建好了
2. 申请github账号并建立一个repository
申请一个github账号没有什么好说的,用邮箱注册一下就好了,在此教程生成的这个时间点,我没有用vpn也可以流畅的使用github,所以应该没有被万里长城屏蔽掉
建立一个repository
在github上创建一个repository,如图所示
注意repository的名字,必须以github的username.github.io这种格式才行
3. 生成ssh key与github通信
检查ssh key是否存在
1 | $ ls -al ~/.ssh |
2021.12.02更正:
以前这里写的有很多问题,ssh-keygen是一个生成ssh-key键值对的工具,在linux或者unix环境,用户所在的根目录表示是波浪线即“~”
不带pub后缀的是私钥,带pub的是公钥,私钥放在用户根目录下的.ssh文件夹内,公钥放在对应的服务器上就可以通过ssh方式免密登录
rsa是加密方式,还有dsa等等,创建键值对的时候之所以要用邮箱,是担心用户有工作、私人等等不同场景的键值对需要,做一个区分,这个不是必须的
如果生成的时候不是在.ssh文件夹内,用linux的mv语句移过去也行
如果是centos等其他系统,还要注意.ssh需要700权限,其中的authorized_keys需要600权限
如果不存在会显示No such file or directory,如果存在会显示 id_rsa 和 id_rsa.pub
创建新ssh key
1 | $ ssh-keygen -t rsa -C "example@example.com" |
其中example@example.com为你在注册github时所用的邮箱
这时候会提示你保存路径,直接键盘回车
这时候会提示输入passphrase,建议直接键盘回车,否则以后连接github去push代码时每次都要输入
成功后会显示:
Your identification has been saved in xxxxxxxxxxxxxxxx
Your public key has been saved in xxxxxxxxxxxxxxxx
The key fingerprint is: xxxxxxxxxxxxxxxxxxxxxxxx
The key’s randomart image is:(后面图形省略)
添加key到ssh
1 | $ ssh-add ~/.ssh/id_rsa |
这样一个ssh key就生成了
添加ssh key到github
打开id_rsa.pub,其终端命令为
1 | $ vim ~/.ssh/id_rsa.pub |
复制以ssh-rsa开头到以邮箱结尾的所有内容
登录github,选择settings,选择SSH and GPG keys,选择new ssh key,将刚才复制的内容全部粘贴进去就完成了
测试是否可以连接
终端输入
1 | $ ssh git@github.com |
如果显示以下信息就成功了
Hi xxxxx! You’ve successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.
4. 安装git
我是直接安装的Xcode,Xcode自带了git,Xcode在App store中直接搜索即可下载,大约几个G。由于想到以后可能会使用Xcode编写IOS的程序,另外也为了减少配置的麻烦,因为不清楚单独安装git是否有设置的问题,所以感觉直接安装Xcode更加快捷方便。本教程是基于MacOS的系统,所以强烈建议此方式减少安装过程可能会出现的错误
安装之后使用以下代码在terminal中查看git版本号:
1 | $ git version |
5. 安装node.js
Mac系统直接去node官方网站下载,安装包不停的点击下一步,就安装好了
安装之后在terminal中查看版本号:
1 | $ node -v |
检查npm版本号(npm是个包管理工具,会随同node.js的安装一同安装):
1 | $ npm -v |
6. 安装hexo并进行简单设置
在terminal中进行hexo的安装:
1 | $ sudo npm install -g hexo |
新建一个文件夹,例如建立一个文件夹叫localblog,在terminal中cd到这个文件夹中,然后执行:
1 | $ hexo init |
然后执行
1 | $ npm install |
就完成hexo的安装了
接下来我们可以看看原始的hexo效果,首先生成静态页面,依然cd到这个localblog中输入:
1 | $ hexo g |
然后启动hexo的本地server:
1 | $ hexo s |
这个时候在终端中会显示:
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.
打开电脑上的浏览器,输入这个网址 http://localhost:4000/ 就可以看到一个原始hexo博客页面了
将本地hexo与github page联系起来
进入你的localblog的文件夹,你会找到一个叫做_config.yml的文件,我们需要修改这个文件。
首先cd进入这个文件夹,然后输入:
1 | $ vim _config.yml |
此时_config.yml在terminal中打开,找到deployment,将你在github上建立的repository地址填写在里面,如下所示:
deploy:
type: git
repo: 你的repository地址
branch: master
修改好以后保存、退出
现在我们要将本地的hexo文件通过git的方式push到github的repository中
首先要安装一个小插件,这个是hexo要git到github上必须的!!!
1 | $ npm install hexo-deployer-git --save |
安装完成以后,就可以把本地hexo文件push到github上了,输入:
1 | $ hexo clean |
完成后就可以通过 https://yourname.github.io/ 在浏览器里看到啦
7. 发布一篇文章
首先我们要看一下hexo的文件夹,就是我们建立的localblog,进入这个文件夹,我们会看到一些重要的文件: _config.yml所有hexo的基本设置都在这里。themes文件夹保存了你以后会使用的主题,如果你点进去看就会发现有个landscape文件夹,这个主题即是你在步骤6中生成网页的主题。然后就是source文件夹,进入后你会看到_post文件夹,进入这个post文件夹,里面会有一个hello-world.md文件,这个就是你步骤6中那个自动生成的文章,以后所有的文章都会以markdown文件的形式保存在这里。
发布一篇新文章
首先terminal要cd到你的hexo文件夹,比如这里我们cd到localblog,然后输入:
1 | $ hexo new "新文章的文件名" |
成功后会显示你成功生成了一个md文件,你可以在_post文件夹中看到,你也可以启动本地hexo的server:
1 | $ hexo s |
也能看到一篇新文章生成
此时新文章只在你本地电脑上,如果要发布到github你需要输入:
1 | $ hexo clean |
所以基本上每次编辑好你的新文章md文件后都有这个发布的过程。
8. 使用一个blog主题
首先我们要明白的是默认的自带主题只有landscape一个,很显然你希望一个有自己风格的主题或者排版风格。由于我暂时不会js,并且我认为一个blog的灵魂是内容,所以,我们可以使用别人已经制作好的主题。在这里感谢网络上无数的技术达人无私的奉献。你可以在hexo官方网站找到很多的主题。我使用的是一个yilia简洁风格的主题(现在已经换成next主题)
如何使用yilia主题
首先cd到你的hexo文件夹,本文章里是localblog,然后输入:
1 | $ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia |
完成后yilia主题就被下载放置到themes文件夹下面了,进入themes文件夹你就能看到一个新的文件夹yilia,说明就成功下载了
接下来我们要用这个theme来替换之前默认的主题,进入_config.yml文件:
1 | $ vim _config.yml |
找到theme:landscape 改为theme:yilia
然后保存退出
然后输入:
1 | $ hexo c |
就可以在本地看到yilia主题的效果了,关于yilia主题应该如何设置,作者Litten有详细的说明
总结
本来想总结一下的,发现这些技能很多,很杂,遇到问题自己baidu或者google更好吧
只在这里说一个,vim命令是进入一个编辑器,进入后只是浏览模式,如果要编辑首先要按i,之后会出现insert,这时候就可以编辑了,编辑好之后先按esc退出编辑模式,然后按shift+:就会出现一个冒号,输入w保存改动,输入q退出编辑