Electron-vue开发实战(总集篇Ⅰ)| Hexo-Manager开发阶段性总结与下一步计划
到现在,我的Hexo-Manager开发出了第一版 0.0.1-alpha,并在github上pre-release了。尽管功能很简陋,但还是具备一定实用性,并且学习到了许多知识。本文只在对目前的开发进度进行总结,对一些原理进行记录,并对未来工作的思考进行一些记录。
Hexo-Manager 0.0.1-alpha⁍
Hexo-Manager是一个Windows平台的针对Hexo博客进行可视化管理的软件
运行环境⁍
Windows
下载、安装和配置⁍
到release页面里下载setup文件,双击安装点击右上角的设置按钮,对于你的Hexo根目录进行配置,例如 C:\hexoBlog
这里有问题,在dev的环境下可以输入
C:\\hexoBlog
转义,也可以直接输入C:\hexoBlog
,但是在打包后,只能输入C:\hexoBlog
,不能加转义字符
开发环境⁍
- Electron-Vue框架
- NodeJS: v16.8.0
主要功能⁍
- 点击“打开”,选择文件,用系统默认的编辑器打开
- 点击“新建”,输入文章名称,新建hexo文章,并用系统默认的编辑器打开
- 点击“一键部署”,执行 hexo clean && hexo deploy。生成站点文件并推送至远程库。
可能存在的问题⁍
- 未进行错误处理和异常处理以及日志输出会在接下来的版本里继续研发,请试用的朋友一定 先配置根目录
主要功能开发记录⁍
安装⁍
- Post not found: Electron-vue开发实战(一)| 入门与安装
- Post not found: Electron-vue开发实战(一)plus| Node16.8.0不降级安装Electron-vue+ElementUI开发环境
这两篇文章主要介绍了环境的配置与安装,我中途将NodeJS的环境统一到了16.8.0,建议主要环境看第二篇,具体细节看第一篇
调试⁍
- 主进程调试: Post not found: Electron-vue开发实战(四)| VSCODE调试主进程
- 渲染进程调试:Vue_dev_tools的安装见 Post not found: Electron-vue开发实战(一)| 入门与安装
主窗口⁍
窗口设置⁍
- 程序入口以及窗口设置见 Post not found: Electron-vue开发实战(二)| Main进程开发
1 |
|
在0.0.1-alpha里面,漏了
show: false
这一句,打算在下次更新里修复啦
关闭/最小化窗口⁍
通过ipcRenderer和主进程通信 Post not found: Electron-vue开发实战(三)| Render进程开发
- 渲染进程:
1 |
|
- 主进程
1 |
|
hexo设置、调用cmd输入hexo命令⁍
设置⁍
通过electron-store建立本地json数据库,将hexo的根目录读写到配置文件里
Post not found: Electron-vue开发实战(六)| Electron数据本地存储:用electron-store实现json配置文件读写1 |
|
新建文章⁍
前端传入文章的标题,传给主进程,调用shell输入hexo new [post_name]
的命令,新建文章;
将文章标题进行特殊字符转换,然后通过路径打开该文章
Post not found: Electron-vue开发实战(五)| 主进程调用CMD1 |
|
打开文章⁍
Post not found: Electron-vue开发实战(二)| Main进程开发 文中使用remote在渲染进程中实现了该功能,在实践中我去除了remote,选择用ipcRender和ipcMain通信实现了该功能。渲染进程将消息传递给主进程,主进程通过调用系统dialog来打开文件。
1 |
|
一键部署⁍
同样是通过主进程调用shell传入命令 hexo cl&&hexo g -d
1 |
|
原理理解与总结⁍
NodeJS⁍
Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境[1][2]
Node.js学习资源⁍
根据官网给出的建议[1:1],在深入研究 Node.js 之前,最好要了解JavaScript和异步编程的概念,有空再慢慢看一遍。
rust⁍
最近看到了有人介绍 from-javascript-to-rust.pdf (github.com)
发现微软也有相关教程,使用 Rust 迈出第一步 - Learn | Microsoft Docs
就搜索了一下rust,感觉可能是未来的趋势啊。。
electron⁍
Electron相当于把Node和浏览器应用结合到一起,使得浏览器应用可以访问文件系统等、Node应用可以具备GUI界面。
回头来再理解PicGo项目里的这句话,就变得明了了。
electron由Node.js+Chromium+Native APIs构成。你可以理解成,它是一个得到了Node.js和基于不同平台的Native APIs加强的Chromium浏览器,可以用来开发跨平台的桌面级应用。[3]
未来工作⁍
待开发功能⁍
-
代码重构
随着代码功能的增多,需要对项目进行功能解耦,想参考PicGo项目对代码先进行重构
-
错误处理和日志记录
-
git拉取与上传
-
更复杂的配置
- git配置
- 编辑器
- 根据分类构建文件树
- 添加标签
- 图片自动上传PicGo
- hexo各项的基础配置的可视化
-
优化新建功能:
js-yaml
-
可以选择标签、分类
-
入口界面添加“最近文件”功能
-
hexo插件管理
-
…
与hexo集成⁍
在目前的开发思路中,是基于已经安装了hexo的环境,运用shell去调用hexo的各种命令,实现新建、部署等功能。
优点与可行性⁍
事实上,hexo提供了API | Hexo,通过引入hexo
包,可以用api直接调用新建、部署等功能,甚至方便地去查询文档的yml
信息,查看渲染完毕的网页。
缺点⁍
但是我认为这么做还是有另一种方面的局限?
如果要开发成npm包,可能是没什么问题;
如果要打包成独立的exe文件,就必须将整个hexo也打包进去(如果我的理解对的话)。当然也可以就此变成整个hexo从安装开始就可视化的软件(任重道远啊。