Hexo

hexo是一款基于Node.js的静态博客框架,可以方便的生成静态网页托管在github上。


依赖包和工具安装

  • Git
    • sudo apt-get install git (git-core)
    • git --version
    • 生成 SSH key : ssh-keygen -t rsa -C "349098792@qq.com"

默认情况下连续按下三个回车,生成密钥,最后得到了两个文件:id_rsa和id_rsa.pub。如果是想一台电脑配置两个或多个github帐号,则此处不能够一直回车,要注意在提示输入文件名称时输入一个和默认名称不一样的名称,否则会发生覆盖,比如这里我电脑上使用两个github帐号,新建的一个名为yudianr,则可以给文件取名叫id_rsa_yudianr,则会在当前文件夹中生成id_rsa_yudianr和id_rsa_yudianr.pub两个文件。


在GitHub帐号设置那里添加SSH Key,打开公钥文件id_rsa_yudianr.pub,复制里面的所有字符粘贴到github的SSH设置处,可使用ssh -T git@github.com来测试是否关联成功。


- 配置~/.ssh/config文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    #老帐号
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

#新帐号
Host yudianr.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_yudianr

注意:此时提交代码后log中记录的用户名和邮箱信息都为全局配置的git帐号的信息,如果希望修改显示的信息,可以在项目目录中使用以下命令进行配置:
git config --global user.name "你的昵称"
git config --global user.email "你的邮箱地址"
或者vim .gitconfig直接进行修改

[user]
name = eightplus
email = kobe24_lixiang@126.com
或者
[user]
name = yudianr
email = 349098792@qq.com
  • npm

    • sudo apt-get install npm
    • npm -v
  • Nodejs

    • sudo apt-get install nodejs
    • node -v
  • Hexo

    • sudo npm install -g hexo-cli
    • hexo -v

初始化Hexo

1
2
3
hexo init <folder>
cd <folder>
npm install

自动部署发布工具 hexo-deployer-git

  • npm i hexo-generator-json-content –save (在上面初始化后的folder目录下打开终端执行,执行后会写入package.json文件中)

  • 其他插件安装

1
2
3
4
5
6
npm i hexo-helper-qrcode --save
npm i hexo-generator-sitemap --save
npm i hexo-generator-json-feed --save
npm i hexo-generator-feed --save
npm i hexo-generator-baidu-sitemap --save
npm i hexo-deployer-rsync --save
  • 提交搜素引擎

    站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎。Googlebot等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。


    百度站长平台为未使用百度统计的站点提供三种验证方式:文件验证、html标签验证、CNAME验证,如果选择文件验证,下载文件后将文件放在source跟目录下。


    验证完成后,我们将会认为您是网站的拥有者。为使您的网站一直保持验证通过的状态,请保留验证的文件、html标签或CNAME记录,我们会去定期检查验证记录。

    • 对谷歌和百度的插举例->打开博客根目录,在这个目录下打开终端执行执行如下两个安装插件:
      npm install hexo-generator-sitemap --save
      npm install hexo-generator-baidu-sitemap --save

    • 在博客根目录的_config.yml中添加如下代码

      1
      2
      3
      4
      5
      # 自动生成sitemap
      sitemap:
      path: sitemap.xml
      baidusitemap:
      path: baidusitemap.xml
    • 执行hexo generate编译博客后,如果博客根目录的public下生成了sitemap.xml以及baidusitemap.xml就表示成功了。

生成静态文件

  • hexo generate

生成静态文件查看默认博客效果

  • hexo server (如果默认的4000端口被占用,可以使用-p参数指定其他端口,如:hexo server -p 5000)

修改配置

  • 在站点的配置文件_config.yml中设置部署信息(注意:type repo branch message前有两个空格)
    1
    2
    3
    4
    5
    deploy:
    type: git
    repo: https://github.com/eightplus/eightplus.github.io.git
    branch: master
    message: '站点更新:{{now("YYYY-MM-DD HH:mm:ss")}}'

部署到GitHub上

1
2
3
4
5
hexo clean    #清空
hexo generate #生成静态网页
hexo deploy #部署

浏览器中输入 http://eightplus.github.io

绑定域名

  • 在hexo的工作空间下的source目录下新建一个CNAME的文件,不要后缀。打开CNAME写上购买的域名,如: eightplus.info

扩展

  • 网站访问量显示

    • 使用第三方的统计插件不蒜子, 在themes\yilia\layout_partial下的footer.ejs中加入如下代码即可
      1
      2
      3
      4
      5
      6
      7
      8
      <script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
      </script>
      <span id="busuanzi_container_site_pv">
      本站总访问量<span id="busuanzi_value_site_pv"></span>次
      </span>
      <span id="busuanzi_container_site_uv">
      总访客数<span id="busuanzi_value_site_uv"></span>人次
      </span>
  • 实现单篇文章浏览统计和评论统计(从网易云跟帖中获取评论数) 参考文档

    • 修改themes\yilia\layout_partial文件夹下的article.ejs文件,在<%- partial(‘post/title’, {class_name: ‘article-title’}) %>节点下加入(注意这里网易云跟帖还没设置,而评论数中使用到了,这里运行会有问题)
      显示阅读和评论数 -->
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      <% if (!index && post.comments && config.wangYi){ %>
      <br/>
      <a class="cloud-tie-join-count" href="javascript:void(0);" style="color:gray;font-size:14px;">
      <span class="icon-sort"></span>
      <span id="busuanzi_container_page_pv" style="color:#ef7522;font-size:14px;">
      阅读数: <span id="busuanzi_value_page_pv"></span>次 &nbsp;&nbsp;
      </span>
      </a>
      <a class="cloud-tie-join-count" href="javascript:void(0);" style="color:#ef7522;font-size:14px;">
      <span class="icon-comment"></span>
      <span class="join-text" style="color:#ef7522;font-size:14px;">评论数:</span>
      <span class="join-count">0</span>次
      </a>
      <% } %>
李翔 wechat
微信交流
谢谢支持
0%