Github Pages个人博客,从Octopress转向Hexo
原文链接 http://codepub.cn/2015/04/06/Github-Pages-personal-blog-from-Octopress-to-Hexo/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
环境&版本 OS:win7 X64 Hexo:V3.0.0 Node.js:V0.12.2 Git:Version 1.9.5.msysgit.1
关于为什么要开博客?请参见《为什么你要写博客?》《我的博客时代》
下面就让我们一起开启使用Hexo的全新旅程吧!
安装Node.js
安装Git
下载地址:http://git-scm.com/download/
注册GitHub
访问:http://www.github.com/ 注册过程参见:一步步在GitHub上创建博客主页 全系列
配置和使用Github
参见:如何搭建一个独立博客——简明Github Pages与Hexo教程
安装Hexo及主题设置
安装hexo
$ cd /d/
$ mkdir hexo
$ cd hexo
$ npm install -g hexo
$ hexo init
$ hexo g # 或者hexo generate
$ hexo s # 或者hexo server,可以在http://localhost:4000/查看
注意在使用npm安装hexo的时候,如果在Git Bash中出现
sh.exe": npm: command not found
那么需要右击Git Bash以管理员身份运行,再次在Git Bash中输入npm install -g hexo即可。
复制主题
$ hexo clean
$ git clone https://github.com/wuchong/jacman.git themes/jacman
启用主题
修改Hexo目录下的_config.yml配置文件中的theme属性,将其设置为jacman。
更新主题
$ cd themes/jacman
$ git pull
$ hexo g # 生成
$ hexo s # 启动本地服务,进行文章预览调试
在浏览器中输入http://localhost:4000/
如果显示的是繁体中文,那么修改_config.xml
中的language: zh-CN
。
绑定独立域名
购买域名 在你的域名注册提供商那里配置DNS解析,获取GitHub的IP地址点击,进入source目录下,添加CNAME文件
$ cd source/
$ touch CNAME
$ vim CNAME # 输入你的域名,例如codepub.cn
$ git add CNAME
$ git commit -m "add CNAME"
修改_config.xml
文件,添加你的Github中仓库地址,该仓库名称必须是yourusername.github.io
,添加如下内容到_config.xml
中
deploy:
type: git
repository: git@github.com:shijiebei2009/shijiebei2009.github.io.git # 注意换成自己的username
branch: master
不会建仓库的童鞋参见hexo系列教程:(二)搭建hexo博客
推送到远程仓库
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin git@github.com:shijiebei2009/shijiebei2009.github.io.git
$ git push -u origin master
如果出现
$ git push -u origin master
Username for 'https://github.com': shijiebei2009
Password for 'https://shijiebei2009@github.com':
remote: Repository not found.
fatal: repository 'git://github.com/shijiebei2009/shijiebei2009.github.io.git/
' not found
那是因为你在github网站上还没有建立该仓库导致。 部署
$ hexo generate
$ hexo deploy #或者组合命令 hexo d -g
如果出现:
ERROR Deployer not found: git
需要运行:
$ npm install hexo-deployer-git --save
进阶篇-高级定制
添加插件
添加sitemap和feed插件
$ npm install hexo-generator-feed
$ npm install hexo-generator-sitemap
修改_config.yml
,增加以下内容
# Extensions
Plugins:
- hexo-generator-feed
- hexo-generator-sitemap
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20
#sitemap
sitemap:
path: sitemap.xml
配完之后,就可以访问http://codepub.cn/atom.xml
和http://codepub.cn/sitemap.xml
,发现这两个文件已经成功生成了。
添加404公益页面
GitHub Pages有提供制作404页面的指引:Custom 404 Pages。
直接在根目录下创建自己的404.html或者404.md就可以。但是自定义404页面仅对绑定顶级域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。
推荐使用腾讯公益404。
添加about页面
$ hexo new page "about"
之后在\source\about\index.md目录下会生成一个index.md文件,打开输入个人信息即可,如果想要添加版权信息,可以在文件末尾添加:
<div style="font-size:12px;border-bottom: #bbbbbb 1px solid; BORDER-LEFT: #bbbbbb 1px solid; BACKGROUND: #f6f6f6; HEIGHT: 120px; BORDER-TOP: #bbbbbb 1px solid; BORDER-RIGHT: #bbbbbb 1px solid" class=shijiebei2009right>
<div style="MARGIN-TOP: 10px; FLOAT: left; MARGIN-LEFT: 5px; MARGIN-RIGHT: 10px">
<IMG alt="" src="https://avatars3.githubusercontent.com/u/4994697?v=3&u=70a4ca810fb1908f2deeed95f3b962eec64e1787&s=140" width=90 height=100>
</div>
<div style="LINE-HEIGHT: 200%; MARGIN-TOP: 10px; COLOR: #000000">作者:
<a href="http://shijiebei2009.github.io/">王旭</a> <br/>出处:
<a href="http://shijiebei2009.github.io/">http://shijiebei2009.github.io/</a>
<br/>本文基于<a target="_blank" title="Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)" href="http://creativecommons.org/licenses/by-sa/4.0/"> 知识共享署名-相同方式共享 4.0 </a>
国际许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名
<a href="http://shijiebei2009.github.io/">王旭</a>及链接。
</div>
</div>
发表文章的markdown语法
title: postName #文章页面上的显示名称,可以任意修改,不会出现在URL中
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: example #分类
tags: [tag1,tag2,tag3] #文章标签,可空,多标签请用格式,注意:后面有个空格
description: 附加一段文章摘要,字数最好在140字以内。
---
设置摘要有两种方法
1、使用<!--more-->标签
2、不使用<!--more-->标签,仅显示部分摘要。在`D:/hexo/themes/jacman/_config.xml`文件中修改为
index:
expand: false ## default is unexpanding,so you can only see the short description of each post.
excerpt_link: Read More
以下正文
使用图床
千万不要使用国内公司的图床,极其不靠谱,说关就关,说挂就挂,推荐使用GitHub作为原生的图床。
markdown工具
Windows在线markdown工具:https://www.zybuluo.com/mdeditor Windows本地markdown工具:markdownpad
添加Fork me on Github
获取代码,选择你喜欢的代码添加到hexo/themes/jacman/layout/layout.ejs的末尾即可,注意要将代码里的you改成你的Github账号名。
添加支付宝捐赠按钮及二维码支付
支付宝捐赠按钮
在D:\hexo\themes\jacman\layout_widget目录下新建一个zhifubao.ejs文件,内容如下
<p class="asidetitle">打赏他</p>
<div>
<form action="https://shenghuo.alipay.com/send/payment/fill.htm" method="POST" target="_blank" accept-charset="GBK">
<br/>
<input name="optEmail" type="hidden" value="your 支付宝账号" />
<input name="payAmount" type="hidden" value="默认捐赠金额(元)" />
<input id="title" name="title" type="hidden" value="博主,打赏你的!" />
<input name="memo" type="hidden" value="你Y加油,继续写博客!" />
<input name="pay" type="image" value="转账" src="https://raw.githubusercontent.com/shijiebei2009/img/master/blog/alipay_donate.png" />
</form>
</div>
添加完该文件之后,要在D:/hexo/themes/jacman/_config.yml
文件中启用,如下所示,添加zhifubao
widgets:
- category
- tag
- links
- tagcloud
- zhifubao
- rss
二维码捐赠
首先需要到这里获取你的支付宝账户的二维码图片,支付宝提供了自定义功能,可以添加自定义文字。
我的二维码扫描捐赠添加在about页面,当然你也可以添加到其它页面,在D:\hexo\source\about下有index.md,打开,在适当位置添加
<center>
欢迎您捐赠本站,您的支持是我最大的动力!
![][1]
[1]: https://raw.githubusercontent.com/shijiebei2009/img/master/blog/alipay_donate.png
</center>
<br/>
<center>
可以让图片居中显示,注意将图片链接地址换成你的即可。
其它实用功能
插件推荐
hexo官方文档 hexo插件大全 自定义网站logo MarkDown中文网 MarkDown语法说明 社交分享推荐使用jiathis 评论插件推荐使用duoshuo 网站流量统计推荐cnzz 网站流量统计推荐百度统计
作者信息
需要修改与作者有关的一系列信息,修改D:/hexo/themes/jacman/_config.xml
中的author/imglogo/favicon/author_img/apple_icon
一系列属性即可。
删除warning: LF will be replaced by CRLF警告信息
在hexo deploy时,有时会出现这个提示信息warning: LF will be replaced by CRLF
,虽然看起来挺乱糟糟的,但不影响使用,可以忽略不计。若想不提示,可以使用如下方法:
切换到博客的根目录,执行如下命令:
$ git config --global core.autocrlf false
$ rm -rf .git #删除掉该目录下的.git文件夹
$ git init #重新初始化
再deploy试试吧,清新脱俗了。
写博客或添加页面
$ hexo new "postName" #新建文章
$ hexo new page "pageName" #新建页面
$ hexo generate #生成静态页面至public目录
$ hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
$ hexo deploy #将.deploy目录部署到GitHub
常用简写
$ hexo n == hexo new
$ hexo g == hexo generate
$ hexo s == hexo server
$ hexo d == hexo deploy
常用组合
$ hexo d -g #生成部署
$ hexo s -g #生成预览
安装hexo-generator-baidu-sitemap插件,专为百度量身打造
$ npm install hexo-generator-baidu-sitemap --save
然后在 Hexo 根目录下的 _config.yml
里配置一下
baidusitemap:
path: baidusitemap.xml
推广博客与提交Sitemap
添加百度站内搜索
点击进入,点击其它工具->站内检索->现在使用->新建搜索引擎->查看代码,将代码里的id值复制,打开/d/hexo/themes/jacman/_config.xml
,配置成如下即可。
baidu_search: ## http://zn.baidu.com/
enable: true
id: "1433674487421172828" ## e.g. "783281470518440642" for your baidu search id
site: http://zhannei.baidu.com/cse/search ## your can change to your site instead of the default site
使用不蒜子添加访客统计
详情参考搞定你的网站计数,具体做法很简单,就是在你的themes/your themes/layout/_partial/footer.ejs
底部加入这段脚本
<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
然后在<p class="copyright"></p>
中间添加如下统计信息即可
本站总访问量 <span id="busuanzi_value_site_pv"></span> 次, 访客数 <span id="busuanzi_value_site_uv"></span> 人次, 本文总阅读量 <span id="busuanzi_value_page_pv"></span> 次
不蒜子的官方服务网站是不蒜子,目前最大的弊端就是不开放注册,所以对于运行了一段时间的网站,不蒜子的数据都是从1开始,没办法设置,只有等后期开放注册之后,登入网站才能对统计计数进行设置。
Jacman主题相关
为jacman主题添加最新评论
本方法针对使用hexo搭建Github Pages静态博客,并且使用jacman主题的童鞋们。
首先在\themes\jacman\layout\_widget
目录下新建latest_comment.ejs
,放入“多说”最新评论代码,其中“多说”的最新评论代码点我获取,注意修改var duoshuoQuery = {short_name:"您的多说二级域名"};
将其中的“short_name”设置为在多说配置的二级域名即可。在latest_comment.ejs
的首行注意添加
<p class="asidetitle">最新评论</p>
然后进入\themes\jacman\_config.yml
:在widgets
下添加latest_comment
即可,注意Windows下编码一定要采用UTF-8无BOM编码。
为jacman主题添加热评文章
与上一条类似,首先在\themes\jacman\layout\_widget
目录下新建hot_comments.ejs
,然后去你在多说网站的后台管理界面http://codepub.duoshuo.com/admin/tools/
中点击工具->热评文章获取代码,将代码复制到hot_comments.ejs
文件中。同样在行首添加
<p class="asidetitle">热评文章</p>
然后在_config.yml
中启用该widgets即可。
Jacman主题问题解答
Q:如何添加数学公式mathjax
?
A:主题支持写LaTex
数学公式。只需要在文章文件开头的front-matter
中,加上一行mathjax: true
,即可在文中写LaTex
公式。
Q:自定义字体 ShowCustomFont A:是否启用自定义字体,默认开启,主要用于显示网站底部的字体。如果你有一定前端基础可以修改 font.styl 替换为你喜欢的字体。
Q:图片默认都是居左的,我怎么设置能让图片居中呢?
A:使用 <img src="" style="display:block;margin:auto"/>
的HTML标签或者是使用<center>
包裹图片。
Q:如何建立一篇图片类文章(Gallery Post)? A:使用hexo new photo "your titile"建立图片类文章,或者直接新建一个 Markdown 文件,将其front-matter修改为如下,即可看到主题为图片类文章提供的样式。
---
layout: photo
title: Gallery Post
photos:
- http://i.minus.com/ibobbTlfxZgITW.jpg
- http://i.minus.com/iedpg90Y0exFS.jpg
---
Q:我在配置文件中给某一项设置了值,但为什么总是看不到效果啊?
A:_config.yml
文件中的每个属性值前面必须留一个空格,建议在Sublime/Notepad++
中开启显示所有空格模式。另每篇文章的front-matter
也要注意这个问题。
Q:如何建立自我介绍页面(About页面)?
A:首先在主目录找到_config.yml
,找到url添加about_dir: about
到这个板块。然后在/source里面建立about文件夹。在about文件夹里建立index.md。编辑index.md就和发布其他的文章一样,格式都一样。
Q:楼主我不喜欢你的配色,怎么换主题的颜色呢?
A:包括颜色在内的很多变量都在jacman/source/css/_base/variable.styl
文件中,可以修改成你喜欢的。
参考文献 [1] http://wuchong.me/blog/2014/11/20/how-to-use-jacman/# [2] https://pages.github.com/ [3] http://www.jianshu.com/p/05289a4bc8b2 [4] http://www.pchou.info/web-build/2014/07/04/build-github-blog-page-08.html [5] http://wuchong.me/blog/2014/11/20/how-to-use-jacman/