当前位置: 首页 > 后端技术 > Node.js

如何优雅的发布Hexo博客

时间:2023-04-03 21:07:04 Node.js

这是一种优雅的发布hexo博客的方式,为什么叫优雅,因为是目前我所知道的比较优雅的发布方式,可能还有其他更好的方式,欢迎来到多多指教~转载请注明出处:http://blog.lzoro.com,谢谢~前言据我所知,发布Hexo的博客有以下几种:1.原始方法,即写md文件在服务端,然后使用hexog生成;2.使用github+hook进行管理,小果这里有教程;3.其他(hexo-admin或其他插件);我使用的方法属于第三种,略有改进。可能你已经看过了[然后概览后可以忽略],可能你还没有看过,那么请耐心看完,反正点进去,说不定有好处,谁知道呢...这里用的环境在环境描述网格如下:1.AliyunLinux3.10.0-514.6.2.el7.x86_642,NodeJs6.10.33,Hexo-cli:1.0.24,Hexo3.3.75,Hexo-admin6,Nginx1.9.9本篇博客的重点是Hexo博客的Gracefulrelease,所以大部分其他需要的环境的安装都会简单说一下。如果没有安装相关环境或者不知道如何安装相关环境,请自行百度。网上教程资料非常丰富,这里只给出部分链接供参考。重要说明:Lattice并没有直接使用hexoserver启动hexo服务对外提供博客访问,而是使用nginx作为web服务器对外提供服务。NodeJs下载地址http://nodejs.cn/download/安装请参考这里,注意选择的安装包。Hexo官网https://hexo.io/安装请参考这里。需要注意的是,这里的grid是在阿里云机器上搭建环境,并不是通过github托管。毕竟用github的子域名感觉不够高大上。于是花大价钱买了域名,云主机,oss。装备齐全后,感觉素质提高了。另:安装好博客后,有很多主题可以选择,点这里,找到自己喜欢的主题,换成hexo,就可以舒舒服服的发帖了。Hexo-admin的主角登场了。如前所述,我知道有几种管理Hexo博客的方法。使用人工管理似乎太原始了。即使你用本地的Markdown编辑器再牛逼的写博客,你还是要连接服务器,把文件上传到博客服务器,然后flatter及时告诉服务器,好孩子,帮我执行hexog。命令执行后,生成静态页面后,一篇博客就告一段落了。可能你觉得不麻烦,你觉得这样也好,也不用管那么多狗屁事,所以我行我素也无妨。不过,如果你和我一样觉得(tai)麻烦(lan)麻烦(le),那就用Hexo-admin插件,加点DIY吧,说不定是你更满意的Hexo博客发布方式对不对?好的折扣。就是这个feel~反正我很懒,别拉我,让我懒。其实,有时这种“懒惰”往往能促进人的进步。如果不是太麻烦,愿意重复工作,虽然会省去很多麻烦,但也会失去很多发现和进步。好了,鸡汤喝完了,该说正事了。hexo-admin官网https://jaredforsyth.com/hexo...step1安装必要的环境,请参考上面step2初始化博客,一般你应该已经在这里初始化了自己的博客,如果没有,请看下面cd/usr/local/hexoinityourblogcdyourblognpminstallstep3安装hexo-admin插件,并启动hexo服务,打开浏览器进入基本界面npminstall--savehexo-adminhexoserver-dopenhttp://localhost:4000/admin/登录界面在这里。没有配置的朋友可能无法登录,请继续往下看。第四步在hexo的_config.yml中配置hexo-adminadmin:username:zoropassword_hash:be121740bf988b2225a313fa1f107ca1secret:heyhexodeployCommand:'./admin_script/hexo-generate.sh'#expire:60*1注1,password_hash为密码,通过bcrypthash,你可以想办法对你的密码做一个bcrypt加密,C/Java/Python都可以,作为一个人,重要的是海森;2.secret用于cookie安全;3.deployCommand是一个重点,不用着急,下面有说明;HomepagePost:博文列表,包括已经发表的和还在草稿箱等待被赞的;Pages:标签云等页面管理;about:关于admin插件hexo-gen的使用说明:这个本来是Deploy,是我修改的,关键节点;设置:配置;step5先解释一下上面配置的deployCommand的使用,目的是当你点击页面Deploy页面下的Deploy按钮时,执行的脚本,这里Grid就是用它作为执行hexog的载体。说到这里,有些人可能不太明白他们为什么要这样做,大家不要着急,仔细听我说。实际上,当你用hexoserver-d启动hexo服务时,当你修改某个博客或发布新博客时,hexo-admin插件会在后台为你执行一系列操作,所以这个时候,可以通过http://localhost:4000访问,可以看到刚才发到博客上了。看到这里,有些读者应该会在心里问候格格:那你傻不傻,何苦呢?说一下吧,只有一个原因:hexoserver启动的hexo提供的服务不是特别稳定,访问有点慢。在操作Xshell等界面时,会强制关闭,因此带来了一系列不愉快的体验,这也是我折腾的唯一原因。因此,实际上Lattice是使用Nginx作为web服务容器对外提供博客服务。每次新建博客生成的静态Html放在Nginx配置的目录下,速度不要太快;Lattice的云主机只有1G内存,单核CPU,还是可以用的。参观体验不错,所以觉得没有白来。有点跑题了。说了这么多,大致步骤如下:1.Nginx提供web服务2.hexo-admin提供博客管理3.使用hexo-admin实现浏览器写博客,或者自己本地的md编辑器写好后粘贴对hexo-admin来说,后者可能更安全,防止丢失。4、使用hexo-admin留下的deploy按钮,执行我们放在博客服务器上的脚本,生成html页面;所以,重点是,在_config.yml中填写deployCommand的存放路径后,在该路径下的Generatethescript;touchhexo-generate.sh;vimhexo-generate.sh;输入以下内容#!/usr/bin/envshhexog保存退出,赋予执行权限执行Shift+:,输入q,如下:qchmod+xhexo-generate.shstep6验证效果,这里我没有贴出Nginx的配置,等等,可以先验证是否有效果1,启动hexoserver2,访问http://localhost:4000/admin,登录3。进入Posts页面,新建博客并撰写发布;4.进入Deploy页面(如果没有改名字),点击下方的Deploy按钮5.进入blog目录->public查看是否生成了对应的html。如果是这样,恭喜你成功了。这里有两个问题:①。hexo-admin的作者依赖hexo来运行hexo-admin服务[hexos]。个人认为是浪费资源,但由于时间不够,只好暂时搁置了。有兴趣的可以阅读源码,然后将hexo-admin处理成一个独立的服务。②.Deploy页面的功能其实就是我们自己DIY的hexogenerate的执行者,所以有强迫症的朋友可以把页面的内容改成具体的意思,比如grid改成hexo-gen,修改路径在hexo目录下,node_modules/hexo-admin/www/bundle.js;差不多就这样,突然觉得有点乱,因为没有Nginx的部分,下面给出,让大家不要觉得特别乱;Nginx下载http://nginx.org/en/download....安装请上网搜索安装教程。有什么问题可以留言指出。配置服务器{listen80;#域名,多个server_name用空格隔开lzoro.comblog.lzoro.com;#配置hexo博客目录root/usr/local/hexo/public;location/{indexindex.htmlindex.htm;}access_log/tmp/logs/nginx/hexo.access.log;}启动nginx,访问自己的域名http://blog.lzoro.com,如果没有问题,就会出现自己的博客,然后就可以看到各个博客的情况了。总结有几种方法可以发布Hexo博客。每个人的喜好不同,所以无所谓好坏。Lattice这里带来的方式是使用Nginx作为web容器,使用hexo-admin作为web后台管理来管理hexo博客,然后使用hexo-admin留下的脚本执行按钮执行hexog生成博客静态页。你需要一个浏览器,无需远程连接博客服务器,就可以轻松发布自己的博客。如果文章对你有帮助,不妨留言让Grid知道。