在GitHub上用Evernote+Hexo搭建个人静态博客
写博客的想法由来已久,更多的分享才有更多的获得。因为平时GitHub用的很多,所以选择在GitHub上搭建博客。一开始看到的是Jekyll,后来看到用Hexo的帖子,觉得Hexo也不错,于是就选定从Hexo开始了。
因为平时多用Evernote记录各种读书笔记,折腾历程,所以希望能找到一个直接用Evernote中笔记作为blog post的工具。最后在npm上发现了everblog,正好符合自己的需求,但当然免不了各种踩坑。好在最后顺利解决。本文会有所记录。
在GitHub上搭建Hexo博客
在google上一搜一大摞。贴出我参考的链接手把手教你使用Hexo + Github Pages搭建个人独立博客
简单来说就是:
- 在GitHub上注册一个如此命名的repo: <username>.github.io, e.g. zhougy0717.github.io
- 用hexo工具来初始化这个repo
- blog所有的配置信息都在_config.yml文件中,包括deploy的信息
deploy:
type: git
repo: https://github.com/zhougy0717/zhougy0717.github.io.git
branch: master
- 所有的post在
source/_posts
下
Hexo的逻辑是在_posts下用Markdown写博客,然后调用hexo g
对Markdown post进行渲染生成html,最后调用hexo s
将生成的网页版post发布到GitHub上去,从而可以用.github.io的域名访问到该博客。
Everblog
项目地址: everblog
使用方法:
- npm install everblog -g
- 在主目录下添加.everblogrc,包含字段:
- token
- noteStoreUrl
- notebook
- 在blog根目录下添加index.js
module.exports = require('everblog-adaptor-hexo-html')
- 在blog根目录下运行
everblog build
hexo s
测试,hexo d
部署
踩坑记录
EDAMSystemException: authenticationToken
各种翻看Evernote API和Evernote Nodejs SDK, 最后还是用代码单步得知,是serviceHost的问题。servicceHost默认采用”www.evernote.com”。而这个值是可以传给Evernote.Client的。而由于everblog将.everblogrc中的值直接传给Evernote.Client,所以我们可以在.everblogrc中添加serviceHost值。这样就可以成功build了。
HTML based Hexo blog
由于Hexo的原生逻辑是用Markdown写blog,而前文提到,本次搭建博客希望基于Evernote。这样每次用马克飞象写完笔记后,直接发布就可以了。但Windows下类MWeb的工具都得付钱。而且这些工具包括MWeb,都需自行维护笔记原始资源,然后将渲染后的Markdown发布到各Web Service。所以,还是希望能保留Evernote + 马克飞象工作方式。
everblog自带的adaptor是everblog-adaptor-hexo,其工作方式是导出笔记中的纯文本,然后生成Markdown文件发布。其基于everblog作者的另外一个project——enml2text。everblog作者还有一个project——enml2html。
于是最后的解决方式是,对笔记的content,调用enml2html生成html文件。但有一个问题,生成的html的文件无法显示图片。
这是因为enml2html生成图片路径的方式过期了,根据Evernote developer网页的方法,进行了更新并提交了pull request。
这时仍然有另一个问题,就是印象笔记的图片是不允许外链的。也就是在你没登录印象笔记网页用户的时候,博客里面的图片统统不能显示。于是乎,就只能将图片下载到本地,并在img src字段进行标注,来实现显示图片了。
本地图片显示
承接上文。幸运的是,网上是有这种需求的。于是搜到这篇网页:Hexo框架下给博客插入本地图片。于是基于这个网页中提到的方法,修改everblog-adaptor-hexo实现下载网页并能显示图片。但inline图片(MathJax渲染的公式图片)尺寸变得很大,查了一下evernote客户端导出的html,这些图片都得到了一定程度的缩放。不知道其缩放逻辑是什么。不想那么多,于是我对所有__SVG__
开头的图片都进行了47.5%的缩小。
引用文字中对齐问题
Hexo theme的问题。试了几个them,最终用的是freemind没有这个问题。