将博客从jekyll迁移到hexo

2019-11-26 16:44:11 浏览数 (1)

本文由腾讯云 社区自动同步,原文地址 https://stackoverflow.club/migrate_from_jekyll_to_hexo/

背景

大概是在2017年年末,当我看到大多数编程相关问题都是在博客中得到解决的,才想到要搭建个人博客。在解决问题的时候想到要分享到博客上,就会格外仔细,面对复杂问题时也会更有勇气。

无奈自己鉴赏水平低下,很多前端页面设计不好,奇丑无比。某天在观摩了朋友的主页后被惊艳到了,原来hexo的next可以这么美。于是就萌生了将博客迁移到hexo的想法。

迁移指南

在这里可以找到各种博客系统迁移到hexo的详细步骤。

我原来的博客系统是jekyll,只需要复制粘贴即可。把_posts文件夹内的所有文件复制到source/_posts文件夹,并在_config.yml中修改new_post_name参数。

1

new_post_name: :year-:month-:day-:title.md

你也可以在new_post_name中加入/用来表示文件夹。

开始

具体怎么迁移呢?首先需要安装hexo及其依赖,我使用的是docker所以没有这个问题。

接着,在根目录运行如下命令

NOTE: 执行hexo init会清除git本地仓库

12

hexo init npm install

一些新文件就生成了,原来的post不会受影响。

一些指南

参考配置完成基本的网站设置。

参看next主题完成主题安装、设置、第三方接入。

在应用指南中碰到的问题

文章访问计数遇坑

以下适用于于选择valine评论系统的情况。

主题配置中可以找到如下内容:

123456789

leancloud_visitors: enable: false appid: # your leancloud application appid appkey: # your leancloud application appkey # Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security # If you don't care about security in lc counter and just want to use it directly # (without hexo-leancloud-counter-security plugin), set the security to false. security: false betterPerformance: false

但实际上,配置其为 true并不能正常显示文章阅读量。debug之后发现是在前端js执行时没有正确获取appid,修bug可能需要花很长时间。

正确的做法是在comments中将visitor设置为true,整站流量使用不蒜子来统计,见增加全站访问计数一节。配置如下:

1234567891011

valine: enable: true # When enable is set to be true, leancloud_visitors is recommended to be closed for the re-initialization problem within different leancloud adk version. appid: # your leancloud application appid appkey: # your leancloud application appkey notify: false # mail notifier , https://github.com/xCss/Valine/wiki verify: false # Verification code placeholder: 无需注册,说点什么吧 # comment box placeholder avatar: mm # gravatar style guest_info: nick,mail,link # custom comment header pageSize: 10 # pagination size visitor: true # leancloud-counter-security is not supported for now. When visitor is set to be true, appid and appkey are recommended to be the same as leancloud_visitors' for counter compatibility. Article reading statistic https://valine.js.org/visitor.html

增加全站访问计数

主题配置按照如下修改:

12345678

busuanzi_count: enable: true total_visitors: true total_visitors_icon: user total_views: true total_views_icon: eye post_views: false post_views_icon: eye

更多配置

阅读排行

按这篇博客中的步骤来即可,无坑。

在线聊天

按这篇博客中的步骤来即可,无坑。

文章字数与阅读时间

参考 github,安装npm插件

1

npm install hexo-symbols-count-time --save

  1. 先在站点配置中做如下更改:

如果没有类似选项,需要自行加上

12345

symbols_count_time: symbols: true time: true total_symbols: true total_time: true

  1. 然后在主题配置中做如下修改:

123456

symbols_count_time: separated_meta: true item_text_post: true item_text_total: true awl: 4 wpm: 275

返回顶部箭头部分的滚动百分比

在这个issue里。

主题配置中做如下修改:

12

Scroll percent label in b2t buttonscrollpercent: true

增加原创版权声明

在文件 next_config.yml中,做如下修改:

1234

creative_commons: license: by-nc-sa sidebar: true post: true

部署

习惯使用jeyll了,对hexo的部署方式有点不太理解。记录如下。

部署流程

网站配置文件中写好自己的git仓库后,就可以运行如下命令将网站部署到github上:

12

hexo ghexo d

观察log输出可以看出,首先生成静态文件输出到public文件夹,然后复制到.deploy_git文件夹,接着上传到仓库。即上传到仓库的文件是一个完整的静态网站,这与jekyll有很大区别.

同时部署到github和coding

站点配置_config.yml中的deploy做如下修改即可:

1234567

deploy: type: git repository: github: <your repo address> coding: <your repo address> branch: "master" #published message: "message" #leave this blank

0 人点赞