前言
Hexo,反正我第一眼看到就喜欢上了它的简约,感受一下吧。
如果你喜欢写作,我觉得你可以试试gitbook或者跟着本文搭建一个属于自己的博客空间(即使你不是IT行业的一员),不再受限于第三方博客地址,当然Hexo搭建的博客也是基于github托管的,但是并不需要你购买域名。
经过两天的探索加爬坑,终于把博客在git上安家了,感谢开源的大哥大姐们,由于并非js开发,所以遇到了很多坑,于是也想整理一篇比较完整的博客。这篇博客分为三部分:
1.搭建you_site服务器环境
2.部署到github上
3.优化博客的主题
ps:我选择的主题是Next
Hexo的安装
Hexo简介
在搭服务器环境之前,先简单介绍一下Hexo。Hexo 是一个简单地、轻量地、基于Node.js的一个静态博客框架。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。
Hexo特性:
- Hexo基于Node.js,支持多进程,几百篇文章也可以秒生成。
- 支持GitHub Flavored Markdown和所有Octopress的插件。
- Hexo支持EJS、Swig和Stylus。通过插件支持Haml、Jade和Less.
Hexo的官方网站,也是基于Github构建的网站。
Hexo环境配置
在安装Hexo之前需要先安装一些它所依赖的环境配置
这里说一下,mac上安装一些软件的时候,我个人建议先安装一下Homebrew — Github传送门,它相当于一个软件管理工具,不管是安装还是卸载都比较方便。
不多说,安装Homebrew也很简单,利用mac自带的ruby脚本功能,打开终端输入:
1 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
安装完成后,Homebrew 的主程序安装在 /usr/local/bin/brew。
接下来安装git和node.js就简单多了。
Git安装
- 安装过Xcode可以直接跳过这步,因为Xcode自带Git
个人建议使用这种方式安装,不要使用网上的安装包进行安装,安装node.js也是。因为有些博客里的安装包有些过时。
打开终端输入:
$ brew install git
使用 Homebrew 方式安装,Git 被安装在 /usr/local/Cellar/git/ 中
Node.js安装
$ brew install node
使用 Homebrew 方式安装,node 被安装在 /usr/local/Cellar/node/ 中,自带安装好npm组件
想测试自己是否安装成功了,可以新建一个简单的hello.js文件:
1 | var http = require('http'); |
放到根目录下,然后在终端输入:
node hello_node.js
Server running at http://127.0.0.1:8124/
然后用浏览器打开用浏览器打开 http://127.0.0.1:8124/就可以看到Hello World 字样了。
当然安装node.js还可以手动安装或者利用nvm安装,这里就不介绍了。
接下来就可以安装Hexo了
Hexo安装
在终端输入:
npm install hexo -g
这样,就把 Hexo 本体和其相依套件安装完毕了,很简单吧。
以后更新Hexo到最新版直接在终端输入:
npm update hexo -g
接下来,就可以初始化一个放置你以后写文章的专属文件夹:
hexo init <folder>
这里的folder
参数如果指定,便会在终端当前的资料夹建立一个名为 folder
的新资料夹;否则会在当前资料夹初始化。所以建议都指定。因为初始化之后会有很多的文件夹出现。就像我刚开始接触电脑解压一个文件里面会有很多东西直接出现在我的桌面一样,那种感觉,好恶心。
初始化之后会稍等一会,然后终端会出现
INFO Start blogging with Hexo!
这样的字样就成功了,去目录查看,可以看见生成了
这几个文件夹,以后我们的操作基本都是在这里面了。
终端输入:
pwd
显示当前路径,如果不是在我们刚才init的文件夹里,那么就切换进取。
接下来,我们终端cd进入刚刚init的文件夹,我的文件夹是TongXingBlog
进入我们的Blog文件夹后,在终端输入:
hexo s
s
是简写:hexo server
终端结果显示:
复制地址,在浏览器打开,结果显示:
说明Hexo在你的电脑已经安装成功了,里面出现的是默认的一篇文章,当然你也可以自己新建一篇文章:
Ctrl+C停止服务器,在终端输入:
hexo new "Hello Hexo"
新建的文章,可以在根目录的source/_posts目录下找到,并且可以使用支持Markdown语法的编辑器来对它进行编辑。
再次启动服务器,复制地址打开浏览器,发现刚刚新建的文章已经出现了。
这样第一部分就完成了,吐呀吐个槽,但是有没有发现,系统默认的样式很丑,反正我觉得很丑…….,还有怎么让别人看见你发表的文章呢,你现在只能在自己的电脑上看到,那么接下来就要借助github来实现对我们文章的托管。
将文章部署到github
创建github仓库
首先,你得有一个github账号,没有的话去申请一个吧,
没有github账号的童鞋申请的时候用户名想好了哦,因为你的博客域名将会以它为基础。
- 这里推荐一个翻墙软件,Lantern,我手上有解版永久有效,之前传到CSDN上不知道为什么一直没通过。
注: 已经有github账号的跳过这节
登录github账号后,点击右上角的+号创建一个新的创库:
进入创建创库界面:
一切填完之后,就可以点击Create按钮了。
这里,切记切记:
Repository name 不可以乱写,是固定的写法
也就是必须是
你的用户名+github.io
这种格式,它也将是你个人博客的域名。也就是别人输入这个网址来访问你的博客。
到这里创库就创建完成了,它将会与你本地init的那个文件夹相关联,大致就是将你本地的文件夹上传到服务器,供别人访问你的博客内容。
配置本地文件
打开我们init好的那个文件夹,找到_config.yml文件,这就是全局配置文件,通过配置里面的参数,来与我们的github上得仓库进行关联。
打开这个文件,找到最下面:
1 |
|
这段代码,然后修改成,我这样
1 | deploy: |
这里有两个重要的参数:(其他两个参数可以参照着写)
type
:Hexo之前的版本好像是填github,但是Hexo3.0之后,必须填git,我的Hexo是最新的3.2.0,填写git。repository
这个参数,很重要,它就是用来链接我们在github上创建的创库。看网上有的人使用SSH,但是SSH配置起来相对有些复杂,我这里用的是HTTPS方式,也是可以成功的。
打开github的Repositories,找到我们创建的仓库,点进去
点击Use HTTPS,然后复制文本框里的网址,填到上面的repository
参数后面即可,
注意每个参数
:
后面必须留有一个空格,否则会出现语法错误。
然后在终端输入:
npm install hexo-deployer-git --save
会出现信息:
└── hexo-deployer-git@0.1.0
接下来就可以把你的文章部署到github上去了。
在终端输入命令
hexo d
d
是 hexo deployer
的缩写,
待终端出现
INFO Deploy done: git
就表示成功啦。
现在你可以在浏览器输入http://your_username.github.io
这里的your_username
就是你的github账号昵称
以后每次新建文章后,待你完成编辑。即可以此执行下面几个命令来把新的文章部署到服务器上:
- hexo clean
- hexo g
- hexo d
附:
Hexo部署常见问题解决方案 – 传送门
至此,Hexo的部署算是完成了。接下来就是优化你的主题了。
我使用的是Next主题,如果喜欢其他主题的童鞋,可以跳走了。
优化主题
Next主题的安装使用
首先从github上clone到本地,在终端cd / 切换到你通过Hexo init生成的根目录,
然后在终端输入命令:
$ git clone https://github.com/iissnan/hexo-theme-next themes/next
进入站点的全局配置文件:_config.yml
找到theme字段:设置为
theme: next
到这里可以验证一下主题是否被启用。终端输入:
hexo s -- debug
然后本地访问http://localhost:4000,看看效果,在没有部署到github上之前,一般都可以这样在本地进行预览。
关于站点全局_config.yml配置文件的其他一些参数:
1 | # Site |
默认的大致就这些,另外给主题添加相关功能的时候后面会慢慢加上其他一些参数。
给站点添加rss和sitemap功能
打开终端,切换到站点根目录,输入:
1 | $ npm install hexo-generator-feed |
在全局配置文件_config.yml进行插件配置:(为防止好找,在最下面进行配置)
1 |
|
给站点添加本地搜索功能
- 使用swiftype添加站内搜索
去swiftype官网注册一个账号,按照步骤选择自己喜欢的搜索样式,配置完成后,选择install,然后会出现
如图所示,我不知道为什么,这个代码框无法滚动,所以我们必须将它全部复制出来
1 | <script type="text/javascript"> |
然后复制install —-2.0.0之间的一段代码,添加到全局配置文件里:
1 |
|
- 添加本地搜索
直接在全局配置文件添加参数:
1 | search: |
search.xml这些都是默认带有的
给站点添加友情链接功能
直接在全局配置文件添加参数:
1 | links_title: 友情链接 |
其实也可以新建一个文件专门放置这些需要链接的网站,这样方便管理,不必每次都对全局配置文件进行更改
如果没有链接,那么友情链接不会显示,为了测试,可以随便写一个
给站点添加多说评论、热评、分享功能
直接在全局配置文件添加参数:
1 | # Disqus disqus评论, 与多说类似, 国内一般使用多说 |
注意:这里的
duoshuo_shortname
是需要你去多说主页 – 传送门 注册一个账号,然后填写你的多说域名,这里填写的就是你在多说填写的域名
例如:我的是:http://chaser.duoshuo.com/
,那么我填写的就是chaser
- 这里配置的是所有页面都支持评论,但是后面有的页面不需要,比如标签页,分类页,关于等等,那么就单独设置。
Next主题的优化
这之前,先对主题配置文件进行一些配置,打开博客根目录/themes/next,这个路径,然后打开,主题配置文件_config.yml:
配置个人头像
在主题配置文件里找到avatar字段,(如果没有就添加)
1 |
|
我采用的是地址,并没有将图片放在本地(采用新浪博客相册)
Next主题选择
在主题配置文件_config.yml里,找到scheme字段
1 |
|
- Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
- Mist - Muse 的紧凑版本,整洁有序的单栏外观
- Pisces - 双栏 Scheme,小家碧玉似的清新
我选择的是第三种,去掉#
,然后把第一个前面加上#
每进行一步都可以自己去进行预览:
hexo s –debug
Next主题菜单配置
1 | # --------------------------------------------------------------- |
如果需要添加你自己自定义的菜单,那么就只需要在menu下添加相关的菜单项,然后新建页面与之匹配,然后去next主题目录的
languages
目录下找到我们之前配置的主题所使用的语言,(我们用的是zh-Hans
)对其进行国际化。menu_icon的设置采用
key-value
。key对应上面的menu里面的菜单项,大小写一致,value就是对应FontAwsome icon这个网站的图标的名字,去掉前缀icon关于这里的所有的图标都支持从
FontAwsome icon
这个网站获取,当然也可以自己放在资源文件夹里(一般比如个人头像(avatar
),网站图标(favicon
)等)。
当然也支持从网址获取,推荐使用七牛
云存储。当然也可以使用新浪博客的相册,谷歌相册,甚至QQ空间,都可以,只要能获取到图片网址,并且你不会轻易删掉。
添加关于,标签,分类,公益404页面
菜单配置好了,但是我们还得新建一些页面与之相匹配,否则点击进去找不到。这里说一下,对于标签页
和分类页
,我们需要在新建一篇文章的时候指定它的标签和分类。对于刚开始建立的博客,点进去可能是空的,所以等会新建一篇文章试试,这之前,先建立相关页面。
添加标签页
打开终端,进入博客根站点,输入:
hexo new page tags
进入博客根目录/source路径,找到tags文件夹,可以看到生成了index.md文件。可以使用编辑器打开
在里面添加tags
和comments
tags
设置页面的类型comments
用来控制是否显示评论。
添加分类页
hexo new page categories
进入博客根目录/source路径,找到categories文件夹,可以看到生成了index.md文件。可以使用编辑器打开
在里面添加tags
和comments
tags
设置页面的类型comments
用来控制是否显示评论。
添加关于页
hexo new page about
进入博客根目录/source路径,找到categories文件夹,可以看到生成了index.md文件。可以使用编辑器打开
在里面添加tags
和comments
tags
设置页面的类型comments
用来控制是否显示评论。
about这个页面一般都是填写一些你的个人信息,要不要无所谓,我这里给about页面添加了一个背景音乐盒.去网易云音乐,创建一个自己的歌单,然后分享,然后找到自己分享的动态,点击链接,
出现如图的页面,然后点击生成’’外链播放器’’字样。将出现的代码复制,粘贴到你的about页面
新建一篇文章给它添加分类和标签试试吧:
hexo new "Hexo教程"
通过mou编辑器打开:添加tags
和categories
1 |
|
添加公益404页面
直接在根目录的source路径下,新建一个404.html文件,就可以了
附:404.html
1 |
|
提示:
homePageUrl
记得修改成你的博客域名
Next主题侧边栏社交链接
打开主题配置文件_config.yml:
1 |
|
这里的配置和Menu里一样,
social
后面跟着的是你的社交网站的主页地址social_icons
是FontAwesome网站的图标名称不过豆瓣icon好像是没有的,我在github上issue过,他们给我的解决方案就是去官网找到图标,放到本地资源、。、
所以亲们也不用去issue了。直接用别的代替吧,如果真想显示你的豆瓣的话。
开启打赏功能
很简单,打开主题配置文件_config.yml
添加字段:
1 | reward_comment: 坚持原创技术分享,您的支持将鼓励我继续创作! |
alipay:
填写的是支付宝或者微信的收款二维码图片地址。
给文章添加阅读量
配置LeanCloud
打开LeanCloud官网,注册一个账号,完成激活
点击创建新应用之后,进入新创建的应用
点击创建Class,类名叫做Counter
。
修改主题配置文件_config.yml
打开主题配置文件,找到leancloud_visitors
字段或者创建
1 |
|
app_id
app_key
将对应key的value复制填写即可。
添加lean-analytics.swing
在主题目录下的\layout_scripts路径下,新建名为:lean-analytics.swing
的文件,
这里贴上lean-analytics.swing
代码
1 | {% if theme.leancloud_visitors.enable %} |
网上也有人贴出来这部分代码,但是会出现阅读量出现重复情况,这里的代码是经过测试后出现的,准确无误。
修改post.swing文件
打开主题目录\layout_macro路径,找到post.swig文件,找到LeanCould PageView #
字样,去掉 其中一个 |  
,否则部署之后会出现双||
。
修改layout.swing文件
打开主题目录\layout路径,找到_layout.swing
搜索</body>
标签,在其上方添加代码:
1 | {% if theme.leancloud_visitors.enable %} |
给页面添加High一下
打开博客根目录\themes\next\layout_partials\header.swig
,在<ul> ... /ul>
标签之间加入以下代码:
1 | <li> <a title="把这个链接拖到你的Chrome收藏夹工具栏中" href='javascript:(function() { |
//7xuupy.com1.z0.glb.clouddn.com/tongxingSibel%20-%20Im%20Sorry.mp3"
可以替换成任意你想要的音乐地址
设置网站的图标Favicon
favicon图标也就是我们打开一个网页,出现在最浅的图标样式,可以自定义,首先我们需要一个favicon.ico的图标,可以去比特虫网站制作,网上的做法是将其放在根目录的source文件夹里。然后在主题目录的layout_partials路径下,修改header.swig的meta标签,我实验了一下,并不能配置成功呢,所以代码就不贴了,这里介绍我的做法:
图表制作好后,上传到云存储空间,获取图片的网址,然后打开主题配置文件_config.yml,找到favicon字段,将图片网址粘贴在后面,即可。
1 | favicon: http://ww4.sinaimg.cn/square/937882b5jw1f4db4lroy9j20hs0npmy6.jpg #网站图标 |
到此,Next的主题算是简单的美化了一下,你现在可以在本地预览,也可以将其部署到github上去哦。
三部曲:
终端执行
1 | hexo clean #清空缓存 |
关于博客的迁移,文章标题的搜索优化等,这里就不说了。网上也有很多大神写过这方面的文章。再次感谢开源大帝。
不说了,我也得考虑做迁移了。