使用hexo在github和coding上搭建博客

576 阅读3分钟
原文链接: www.baoxulong.com

安装 hexo 以及初始化 博客项目

由于我是在MacBook Pro上进行搭建操作,所以其他平台的搭建请自行搜索。

安装 hexo

使用 npm 工具进行安装,如果在国内进行操作,建议使用淘宝npm镜像。

  1. 切换淘宝镜像

    
                                                        
    $ npm install -g cnpm --registry=https://registry.npm.taobao.org
    
                                                    
  2. 安装 hexo

    
                                                        
    $ cnpm install -g hexo-cli
    
                                                    

初始化博客

  1. 进入到 ~/Documents 文件夹初始化博客

    
                                                        
    $ hexo init <document> #document 为博客的文件夹
    $ cd <document> #进入创建的博客文件夹
    
                                                    
  2. 对博客进行基本配置
    使用 atom/sublime 等文本编辑对文件夹下的_config.yml文件中的title,subtitle等字段进行自定义设置。其他具体的设置请参照hexo文档

在github和coding上建立代码仓库

注册github账号和coding账号之类操作不再赘述。

github.com

在github上创建代码仓库,需要注意将仓库名取为 username.github.io。其中 username 为你的用户名。

coding.net

coding创建空项目,仓库名称可以任取。初始化仓库之后,在项目上方的选项栏中会有pages服务。可以在里面设置相关的内容。

设置 git

保证操作系统中有git。

在本地生成 ssh_key


                                                
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"#填上你的邮箱

                                            

之后可以一直回车,或者填写相关的信息。


                                            
$ eval "$(ssh-agent -s)"#Start the ssh-agent in the background.

                                        


                                            
$ ssh-add -K ~/.ssh/id_rsa #Add your SSH private key to the ssh-agent and store your passphrase in the keychain. 
#如果在第一步设置了sshkey文件名,替换 id_rsa

                                        

                                            
$ pbcopy < ~/.ssh/id_rsa.pub #复制ssh_key到粘贴板,这样cmd+v就可以粘贴ssh_key

                                        

将 ssh_key 添加到 github 和 coding 中

在github和coding的设置中,将ssh_key绑定好,这样git可以将将代码push到该账号下的指定仓库中。

是否绑定成功可以新建一个仓库使用ssh通道,进行基本git操作。

安装 hexo-depolyer-git 插件


                                            
$ cnpm install hexo-deployer-git --save

                                        

设置 hexo deploy

_config.yml文件中找到 deploy 配置,将github和coding中仓库的ssh地址填写到 repo 中。正确的配置应该如下


                                            
deploy:
  type: git
  repo:
      github: git@github.com:username/username.github.io.git,master
      coding: git@git.coding.net:user/user.git,master

                                        

注意:后的空格。

编写文章

使用MarkDown进行写作,需要了解学习相关语法。使用MarkDown编辑器或者Atom等编辑器相关插件进行编辑。我使用的是 MarkEditor 编辑器。
文章在/source/_posts目录下,新建 .md 文件,使用MarkDown语法进行编辑。文章的一些Front-matter设置可以在 hexo文档中查找。

  1. 生成文章

    
                                                        
    $ hexo g #generator
    
                                                    
  2. 上传文章

    
                                                        
    $ hexo d #deploy
    
                                                    

都成功之后,会在github和coding的相关仓库中看到相关代码。访问 http://username.github.iohttp://username.coding.me/reponame可以看见最原始的博客页面。

github 的页面路由固定,coding的页面路由可以在pages服务里查看。

自定义域名

github和coding的自定义域名大同小异,都需要对域名进行CNAME解析。可以选择二域名来进行解析。

实现coding的自定义域名

coding.your_domain.com二级域名CNAME记录绑定到到pages.coding.me。并且在项目后台 pages 服务中设置自定义域名

实现github的自定义域名

github.your_domain.com二级域名CNAME记录绑定到username.github.io。同样在仓库中寻找setting,可以设置custom_domain。
但是 hexo 每次在提交代码之后,仓库后台的设置都会消失,所以好的解决办法是在/source目录下新建文件 CNAME,并在之中输入github.your_domain.com。这样可以使用自定义域名访问github page了。

自定义主题

找到自己喜欢的hexo主题,把项目的master分支clone到/themes, 然后在根目录下的_config.yml中的theme字段值设置为clone的主题名字。
/themes/your_theme/layout/_partial/_footer.ejs中可以添加自己域名的备案号。同理其他的页面也可以进行自定义的修改。
建议保留主题和作者链接,尊重开源。

取消Coding Pages

将项目托管在coding上,进入博客前会有Coding Pages出现,取消Coding Pages官方提供了两种方案,推荐使用文字版,将标签放在上文提到的footer中。

设置评论

评论系统有很多,我使用的是友言。进入官网无脑注册,然后获取账号对应代码,类似下面代码


                                            
<!-- UY BEGIN -->
      <div id="uyan_frame"></div>
      <script type="text/javascript" src="http://v2.uyan.cc/code/uyan.js?uid=xxxxxxx"></script>
<!-- UY END -->

                                        

将以上代码放入主题对应的文章页面的结尾。具体放在哪个div中,需要一点点前端知识去识别。
有很多主题支持设置评论系统,注意查看主题的文档。