昨天今天弄了一晚上,总算搞定,今天把过程给大家说一下。
博主本人原来的博客使用wordpress搭建,使用为知笔记编写,通过发布插件发布到wordpress。最近发现wordpress字体渲染异常缓慢而且体积量太大,所以萌生了换一个博客框架的想法。hexo以前就接触过。所以就在网上搜索了一些相关教程,开搞..
关于从wordpress把以前的博客导出到新的hexo网站的就不提了。只是博主在使用hexo-migrator-wordpress
工具转换从wordpress转换markdown文件的时候报错。
wordpress hexo undefined migrator plugin is not installed.
百度、google了一圈才发现是工具有问题,解决方案直接使用npm从hexo-migrator-wordpress
的github安装:
1 | npm install https://github.com/hexojs/hexo-migrator-wordpress.git --save |
再次运行转换工具即可
对于生成的md文件,博主检查后发现,因为以前使用wordpress的代码高亮使得md文件中各种乱七八糟的html标签。要是一一手工删除,那是要累死的节奏。博主是做Android开发的。正好以前用过去除文本中html标签又恰逢正在学习kotlin
,用idea写了一段kotlin
代码批量去除。之后内容就清爽了许多。然后md文件中的代码加了一下高亮标签,对各种图片调整了下布局。准备工作完成。
生成了一下文档hexo d
,又本地运行了一遍hexo s
,查看了下效果。嗯,还不错!
下一步,就是要上传到我的网站上了。这时候网上的教程就帮不上忙了。因为我要上传到自己的ubuntu服务器。而网上都教程都是以上传到github为目的的。这时候只能去hexo的官方查文档了。在https://hexo.io/docs/deployment.html这里列举了所有的发布方案。找到了适用于我的服务器的sftp发布方案。有办法就好办了。
- 下载插件
1 | npm install hexo-deployer-sftp --save |
在ubuntu服务器上创建目录
使用ssh-keygen生成公钥与私钥,并添加公钥到ubutnu
生成方式其它教程都有就不再详细说,提交公钥的时候与github不同的是:github有指定位置填写公钥的字符串,而ubuntu服务器需要手动配置,放置到/{user_home}/.ssh/
目录下authorized_keys
这个文件中。注意这个.ssh
目录与你使用的用户名要相匹配。例如我使用的是root账户,那我的路径应该是/root/.ssh/
。如果没有这个目录,请使用你的当前账户执行
1 | ssh-keygen -t rsa |
生成此路径,如果没有authorized_keys
这个文件,手动新建此文件亦可。然后将本机生成的id_rsa.pub
中的文本复制到此文件中。
- 配置
_config.yml
,deploy节点如下:
1 | deploy: |
此时使用hexo d
即可发布到远程的ubuntu服务器中了。
配置deploy
节点的时候有些需要注意的地方,privateKey需要填入的路径必须是反斜杠。
还有如果在发布的出现
hexo No such directory /var/www/blog/categories
这样的提示注意清空一下你的remotePath
文件夹下的文件。
另外deploy不仅可以使用加入公钥的方式。也可以使用用户名匹配密码的方式,配置如下:
1 | deploy: |
好了,今天就到这里。