继续blog,继续成长

这篇记录自己学习hexo这个新东西的过程,很零碎。

决定用hexo和gitpages再搭建自己的博客网站

很喜欢blog,有很长时间的历史了。估计在2002年开始比较多上网的时候,就了解到blog,就有了blogger,后来折腾过blogcn,blogbus,ccblogs等

后来用wordpress,iyublog到后来自己用wordpress搭建igencong.com

后来因为牧会的忙碌,出国读神学的压力,沉寂了一段时间。今年开始自己开始写原创评论,让我一直有想法做个blog把自己写的东西再整理一下。

这几天对技术突然又开始感兴趣了,先是整了vim和git,后来研究了leanote,还买了旗舰版,信誓旦旦的想大干一场,整出个平台。但leanote有个问题让我很不爽,不能导入md文件,我现在的文档都用markdown写,在nvALT或者Archive中可以很便捷的搜索,使用pandoc我可以变成任何一个格式的文档。leanote的一键发布blog很酷,但我发现它的blog系统没有rss导出,而且定制化也不强。我还是不太满意,刚才我申请退款了。(已经收到退款了)

误打误撞

今天用leanote编辑新媒体教会的书稿,看到TOC的功能,才知道这是Table of Contents的缩写,查了一下,查到了码志的插件,然后查到了Jekyll,搜索找到了知乎上的谈论的博客系统,了解了以前耳闻的hexo,知道hexo和JekyII的不同。将博客从jekyll迁移到了hexo这篇文章详细评论了几个静态页面的博客系统,最后决定使用hexo搭建自己的博客平台,原因如下:

  1. 考虑过Farbox,自称是最好的博客系统,能用dropbox发布博客。但比较贵,按我的情况要用标准版65/年。
  2. JekyII 据说技术难度比较大
  3. hexo是台湾人开发的,中文支持应该没有问题;中文文档很好。
  4. 貌似hexo可以使用插件跟Google Drive同步,如果这样的话,我就可以建个md,透过hexo发布了。(还得测试)

现在的一切便是最好的这一篇提到,github pages不能被百度搜索到,这的确是个缺点,不过,需要的话,我可以像他一样自己在国内弄一个。

除了以上提到的,以下几个博客对我做这个决定帮助比较大:

  1. 如何使用github和Hexo搭建个人博客
  2. Hexo搭建博客教程
  3. Hexo建站从入门到精通-Hexo博客本地环境配置,初始化,写作与部署
  4. Hexo(1)-生成本地静态博客-Mac
  5. 手把手教你使用Hexo + Github Pages搭建个人独立博客, 这里面有些高级技巧,很酷。

每个人安装hexo可能都会碰到这样那样的问题,我一直是装不上,后来就一直想办法卸载node, 貌似用了这个办法管用:https://gist.github.com/nicerobot/2697848
卸载之后,执行sudo npm install -g hexo-cli,说找不到npm
然后,nvm install 4, 就换成node 4,才装上了hexo。

我的结论:改变一下node的版本可能就解决问题:使用以下这条命令使用版本6.

1
nvm install 6


终于搞定了,后来又碰到各种问题:

  1. 没有config,原来yml的格式很严格:https://github.com/hexojs/hexo/issues/1263
  2. repo不能用ssh,因为我还没有设置;而只能用https:https://stackoverflow.com/questions/12940626/github-error-message-permission-denied-publickey
  3. (8/3/17)早上把igencong.com的域名弄过来,设置好了。屡次测试还是不行,后来才知道需要24-48个小时,才能转换过来。

8/3折腾手记:

  1. 加上Rss订阅:使用插件hexo-generator-feed
  2. 加上了腾讯公益的404页面:【五】将博客从jekyll迁移到了hexo
  3. 装插件的时候,要用上 –save

后来决定重新装一个全新的hexo:

  1. 我已经装了git。
  2. 装一个node的版本:nvm install 6。
  3. sudo npm install -g hexo-cli。搞定。
  4. 建立docs/hexo
  5. terminal, cd docs/hexo。
  6. hexo init
  7. 测试:

    hexo g
    hexo s
    http://localhost:4000

    1. 关联: myjeshurun.github.io (特别注意yml的语法)
      deploy:
      type: git
      repository: https://github.com/tengzhangchao/tengzhangchao.github.io.git
      branch: master
  8. 修改主题:next
    1
    2
    $ cd your-hexo-site       
    $ git clone https://github.com/iissnan/hexo-theme-next themes/next

在站点config.yml,修改theme: next
在theme,config,修改各个参数。scheme改成:mist
hexo clean
hexo s -debug

  1. 使用插件:(注意使用 –save)
    • npm install hexo-generator-feed –save
    • npm install hexo-generator-sitemap –save
      然后在config.yml添加:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Extensions
plugins:
hexo-generator-feed
hexo-generator-sitemap
# 自动生成xml
feed:
type: atom
path: atom.xml
limit: 20
hub:
content:



# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
  1. 提交sitemap到百度:~我还没有做~。
    如何提交sitemap到百度

  2. 创建标签云页面。done

  3. 作者署名和版权声明。done
  4. 加上本地搜索和swifty搜索。done. 但不能搜索不知道为何?
  5. 图片问题:基本上解决了。相同的目录下,建立一个文件夹。使用绝对路径,但是不好用。简易的方案是使用七牛云或者cloudary。最后使用七牛云,学习了qshell 同步图片
  6. plugin 卸载:npm uninstall
  7. 评论:使用来比力。后来为了能在主页显示评论数量,选择了disqus。done.
  8. 增加了微信、支付宝打赏功能,与时俱进!done
  9. 增加文章阅读量显示,见NexT文档。已经整合leancloud,很方便。done。
  10. 文章置顶:找了几个设置了不行。这篇文章的代码可以:文章置顶
  11. 增加了友情链接和社交网络。done
  12. 增加了相关文章。这个弄了好久,主要是网上的教材主要是针对ejs,通过在论坛里问,才最终搞定。有两个方法:1)使用插件:tea3/hexo-related-popular-posts,我跟他联系,他增加了对next主题的支持。2)写个related-post.js使用这里的文章:自己动手改造个人博客
  13. 增加了为文章添加密码的功能。用了hexo-blog-encrypt
  14. 安装footnote 插件,让hexo可以显示markdown的footnote。

一些体会

  1. 写博文tips:
    使用Keyboard Maetro设置:Front-Matter, 使用快捷键frmt[空格]来输出

title:
date:
update:
tags:

  • comments:
    categories:

  1. yml格式是非常严格的,有以下几点:
  • 英文冒号之后一定要有空格;
  • 有些是要一个TAB,有些是要两个TAB。(貌似这一点还行。)
  1. 不要随便整plugin, 不好弄,很容易出问题。
  2. CNAME文件丢失,当我使用g -d的时候,因为会自动覆盖github上面的文件。解决办法:从我github站上先fork(在右上角),然后下载到我的硬盘上,把CNAME文件拷贝到public目录即可。
    这一次我学习了github的fork功能,就是把别人的程序随时拷贝走!哇哦,真实了不起。
  3. 使用 进行“阅读全文”的演示。
  4. 修改config.yml文件的时候,要看清楚是站点的,还是主题的。两者的文件名一样。
  5. 要做什么修改时,先查看官方的文档。不然,可能会浪费时间,还无济于事。我在加上文章阅读量的时候,根据网上一些人的教程修改了好些代码之后,就是不行,而且还出现了编译错误。后来,查看了官方文档,才知道修改一下config文件,加上两个参数,就搞定了。

不能忘记的事:备份

最后一件重要的事,就是备份了。
把本地的hexo文件夹备份,我可以使用mac的定期备份;但似乎不太好用。因为github的私有云收费,备份到coding上
~ 吴林er写的这个,用到hexo-backup这个插件,看起来不错。~ 该插件不能用了。折腾了我好久。
我不想要每次都备份,只是想看一切都正常的时候,
以后就用这些代码:

1
2
3
4
git remote add origin https://git.coding.net/jeshurun/hexoblog.git \\这一行一般不用。
git add .
git commit -m "my first hexo backup"
git push -u origin master

这个人超级牛,这个备份的问题,我就靠他解决了:
Hexo博客(10)部署到Coding.net

这个人写的多电脑同步方法,是最好的,很简洁,跟上面那个人一样。只是没有能解决我的问题。我之前估计是用hexo backup插件,把一些东西弄坏了,需要整一下。Masikkk刚好也碰到同样的问题,帮我处理了。这个人就hexo博客谢了14篇blog,是我看到的最全的了。

同时搭建国内coding上的博客,同步更新以及多台电脑使用。
masikkk篇在这个问题上写的最全面了。Hexo博客(3)源码备份及不同电脑上的同步问题

碰到的问题

  1. 本地预览没有问题,deploy之后显示不出来,
    issue: #1214

目前最简单的解决办法:

1
2
3
4
5
6
7
8
9
参考: issue: #1220
步骤:
.deploy_git 目录, 添加 .nojekyll 空文件
source目录, 添加.nojekyll 空文件
修改 Hexo 上层_config.yml配置文件, 添加
include:
- .nojekyll

clean, 重新部署推送: hexo d -g
  1. 只能支持一级目录,也就是说多级目录的话会变成子分类显示。Issue: #848, #574

相关文章:

文章作者:耶书仑Jeshurun

原始链接:http://igencong.com/2017-08-04/继续blog,继续成长/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

耶书仑Jeshurun wechat
坚持原创信仰·生活分享,您的支持将鼓励我继续创作!