资讯专栏INFORMATION COLUMN

hexo-admin后台管理博客

seasonley / 1152人阅读

摘要:原文链接需求像这种静态博客用起来很方便,但是硬伤就是没有后台管理,每次想写博客或者说想要修改原博客的话,都需要在本机上找文件,修改之后发布,尤其是如果机器上没有安装等工具的时候,就无法修改了。

原文链接

需求

像Hexo这种静态博客用起来很方便,但是硬伤就是没有后台管理,每次想写博客或者说想要修改原博客的话,都需要在本机上找markdown文件,修改之后发布,尤其是如果机器上没有安装hexo,git等工具的时候,就无法修改了。因此hexo可不可以以像wp,ghost这种有后台管理, 随时随地编辑博客呢?

正巧hexo专门有一个插件hexo-admin 提供了在web UI下增删改查博客的功能,我也正好有一个VPS, 于是就有了下面的一种方法.

解决方法

首先说一下条件与需求。 我自己有一个的VPS,本来是可以直接将hexo部署到VPS的,但是考虑到自己维护的VPS的稳定性等问题,最后决定将hexo的静态页面部署github-pages上。

我的目的有两个:

拥有在线编辑博客的后台

本地机器同时也可以编辑发布博客

二者需要保持同步

基于这样的需求,仅仅靠github pages显然不可行了,必须借助VPS了.保持同步的意思是VPS的内容与本地机器上的博客的资源要保持一致。就是说我在线修改了某篇博客,然后之后如果可以很简单的同步到本地,使得两端保持同步,反过来一样。

我的做法是:

将hexo目录下的相关文件包括_config.yml,source/等文件建立一个私人repo(个人使用coding.net)

VPS上安装好hexo,具体过程与换台机器安装同理, 可参考这篇博客hexo迁移重装。

VPS上安装hexo-admin插件,这样可以在线编辑了. 在这一步的时候, 为了方便,我用了一个子域名以及在VPS上用nginx做前段端口转发.

到这里后台管理基本没有问题了. 接下来就是在线发布了. 正巧的是hexo-admin提供了这个功能, 有一个Deploy的功能,具体实现是使用nodejs的spawn函数来执行发布脚本的. 一开始不太懂spawn这个函数的使用, 就直接在deploy中随便输入了东西,结果各种 spawn err. 后来查过资料,才知道deploy的输入的位置其实是对hexo-admin的配置里面deployCommand的选项,可以为空. 打个比方,如果我在deployCommand写的是./hexo-deploy, 然后点击deploy按钮之后, 后台就可以执行hexo-deploy脚本的内容了. 有了这个接口就非常灵活了. 因为基于此, 我们不但来发布博客,甚至可以把同步的脚本加进去.具体参考 https://github.com/jaredly/he...

下面说一下发布以及同步的操作:

在博客目录写一个有关git同步的小脚本:server-upload.sh 用来同步VPS目录下的变化,主要代码其实就是先git pull 拉取repo最新, 之后在push. 具体脚本代码不再赘述.

建一个hexo-deploy的脚本,内容:

hexo g && hexo d
./server-upload.sh

利用hexo-admin的deploy功能,可以在线发布,注意修改_config.yml: 加上hexo-admin的admin选项, 加一个deployCommand: ./hexo-deploy的字段,如下:

admin:
    username: XXX
    password: XXXXX
    deployCommand: "./hexo-deploy"

编辑完博客时候,发布的时候,需要点击hexo-admin的deploy。这样在后台就可以执行前面定义的hexo-deloy脚本了

本地机器也需要有一个upload.sh的脚本, 每次同样需要先git pull 在git push 到私人repo. 其实就是版本控制那一套.

到现在基本完成了自己可以随时随地编辑博客并且多端同步的需求了. 之前也考虑过CI持续集成,但是大部分都是再建立一个分支, 需要把博客的source公开, 不太合适. 所以就选择了hexo-admin这种方法.

这篇博客便是在线完成的.

其实这里面的坑还是蛮多的(主要不熟悉node). 此外开始使用supervisor做后台运行监控, 结果不知为何, 在hexo d包括git的pull或者push等操作,都会报错,提示让我确认git用户, 但是我已经设置了git config的email和name. 查了很多资料也没有解决, 后来直接抛弃supervisor, 直接使用nohup来放后台运行了. 大概是这样了, 有什么问题可以留言或者邮件.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84537.html

相关文章

  • 为Hexo加入浏览量的功能

    摘要:可是我们勤劳的程序猿们不甘心不那么完美,所以大神们写了各种教程,通过其他的方法解决了因为谷歌而不能使用的功能,今天就来说说为博客网站加上的浏览量功能。 版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。 Hexo是和WordPress一样的完善的博客系统,但是好多辅助功能/插件需要是访问谷歌的服务器的,在我大天朝就只能看看了。可是我们勤劳的程序猿们不甘心不那么完美,所以...

    smartlion 评论0 收藏0
  • 怎么用hexo搭建博客

    记录一下用hexo搭建博客的过程和一些坑安装 Node.jsbrewinstallnode具体看Post not found: NodeJs基本使用,当前版本的hexo在node14中会有告警,建议安装12并使用nvm管理node版本安装 Hexonpminstallhexo-cli-g初始化Hexomkdirblog&&cdblog#创建文件夹并进入hexoinit#初始化hex...

    社区管理员 评论0 收藏0
  • 如何在服务器上搭建hexo博客

    原文链接 随着Vateral主题的开发接近了尾声,在对主题速度优化的时候发现之前用的githubpage问题多多:首先就是因为在国内的原因,访问速度本身就很慢,曾经有次加载一张16kb的图标时间耗费了26s!!?其次,在对资源做CDN托管加速时,域名是需要备案的,显然githubpage也是做不了的;所以果断舍弃了这个把hexo搭建到了我的阿里云服务器上 总体来说还是比把hexo搭建到github...

    MycLambert 评论0 收藏0
  • 用vue搭建的个人博客介绍----mapblog小站

    摘要:后端主要使用的框架,数据库采用。后台管理登录采用与后端进行登陆状态的确认。本文首发于小站,这是一个积累和分享知识的个人博客 这篇文章搁置了很长时间,最终决定还是把它写出来,给刚开始学习vue并且想用vue写个人博客的同学一个参考。因为当初我也是参考了其他人分享的知识,从一个vue小白变成了一个入门级选手,并最终完成了这个个人博客的搭建工作,代码已托管在Github-justJokee。...

    Ashin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<