被收费绘图工具 PUA 了怎么办?来看看这个老实工具吧
本文非常适合 Electron 入门选手,墙裂推荐!

本文作者:HelloGitHub-蔡文心
大家好!这里是 HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来的一款基于 Electron 和 PHP 实现的桌面脑图工具开源项目——DesktopNaotu。
不知道各位小伙伴有没有发现,现在许多工作岗位与图表制作的接触越来越多,时不时你就会接到个加急制作图表任务。市面上的多数图表制作软件要么收费,要么让充 VIP。充个月卡,很有可能只用 1 次,就没用了。这两件事加在一起就像渣 * 一边 PUA 你,一边还骗你钱!
如果你身边有这样的朋友,请介绍给我,我来负责。
如果你没有,那你现在有了,因为很不幸我就是被 PUA 的一个

好产品收费当然无可厚非,不过你可是 HG 的读者,而我们 HG 的背后是开源世界!今天带来的 DesktopNaotu 是一个开源项目,一个完全免费的脑图制作工具。话不多说,让我们来看看它的使用说明和功能吧!
一、介绍
DesktopNaotu 是基于百度脑图的本地化版本,能够帮助你在没有互联网环境的情况下,依然可以使用脑图工具。

1.1 跨平台
DesktopNaotu 目前支持 macOS、Linux 和 Windows 7/10。
1.2 功能
- 包含百度脑图的基本功能
- 支持本地 .km 文件的操作
- 支持拖拽打开 .km 文件
- 支持关联打开 .km 文件
- 支持自动保存文件功能
- 支持导出多种格式文件
- 提供 百度脑图 文件的下载方式
- 提供 ProcessOn 思维导图的下载方式
二、安装
2.1 下载安装包
2.2 解压
将 DesktopNaotu-darwin-x64 文件夹解压至应用程序目录。

2.3 启动
好了,到这一步软件已经能够启动了,但是大家可能注意到了菜单怎么是英文的呢,官网示例明明是中文的呀。没错这里的确是有个 bug,不过我已经找到了解决方案,请看下一步:

2.4 解决语言问题
目前测试了 Windows10 和 macOS 两个较为常用的平台,发现在 Windows10 下安装后能够显示中文语言。所以如果是 Windows10 用户就可以跳过这块内容了。
像我一样想要使用中文菜单的 macOS 用户请放心,我已将帮你们趟过这个坑了。

2.4.1 语言设置
在终端输入以下命令:
cd '~/Library/Application Support/desktopnaotu'
vi naotu.config.json
接下来会看到以下信息,将其中的 locale: en 改为 locale: zh_CN:
{
"locale": "en",
"defSavePath": "/Users/caim014/Library/Application Support/desktopnaotu/backup",
"isAutoSave": true,
"recentMaxNum": 5,
"recently": [{
"time": "2021-01-21 18:07:58",
"path": "/Users/caim014/Library/Application Support/desktopnaotu/backup/Main Topic1.km"
}, {
"time": "2021-01-20 15:57:05",
"path": "/Users/caim014/Library/Application Support/desktopnaotu/backup/Main Topic.km"
}],
"version": "v0.1"
}
最后 Esc 并输入 :wq 后回车。重启 Desktopnaotu 程序就能看到效果了。

好啦,到这为止你就可以正常使用 Desktopnaotu 来绘制脑图了。
三、技术栈
前端:
- Electron:使用了 Electron 实现跨平台应用开发
- TypeScript
后端:PHP
四、最后
在今天的文章中比较有意思的是设置语言问题,由于官方也没有针对这个问题做解释,加上之前我也没有接触过 Electron 框架,对桌面程序的配置文件也没有太多了解。为了解决语言设置问题,也是费了很大一番功夫,当然也可能是我比较菜: )
- 查阅项目仓库的 issue,没有找到相关提问
- 加入官方群询问官方。官方开发手边没有 Mac,无法直接帮忙解决,但是给了重要线索——
naotu.config.json文件 - 使用 asar 工具解压 app.asar 在根目录寻找
naotu.config.json文件。绕了很大的圈子还没解决,因为不在根目录下
最后,克隆代码到本地在编译时在控制台输出发现了 naotu.config.json 文件的路径。过程中也想放弃推荐这个开源项目,虽然我也可以只拿 Win10 平台做演示,但我认为这就等于将《开源讲解》中的讲解抛弃了。
这也算是做这个系列的乐趣之一了,之后也会给官方提交 PR 在 Readme 中补充这一点。
我是 HelloGitHub 团队的文心,如果你喜欢这篇文章,请给我点个赞吧,这将是我继续坚持下去的最大动力!
关注 HelloGitHub 公众号 收到第一时间的更新。
还有更多开源项目的介绍和宝藏项目等待你的发掘。
被收费绘图工具 PUA 了怎么办?来看看这个老实工具吧的更多相关文章
- 4款BI工具功能大对比,这款BI工具你不能错过!
在这个信息爆炸式增长的时代,挖掘数据的潜在价值显得尤为重要.越来越多的人将目光聚集于商业智能领域--BI(Business Intelligence),通过数据分析软件对来自不同的数据源进行统一的处理 ...
- arcengine中自定义工具和自带工具条(ICommand)点击后和其他工具使用的冲突
自己系统中本身对于放大缩小等功能直接是单独重写的,但是如果在加一个工具条具有相同功能的话两者之间会有一些冲突,为解决该冲突可以重写工具条的OnItemClick事件 该工具条命名为axTool 我本身 ...
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector
那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...
- Linux工具XFTP、Xshell(centos配置java环境 工具篇 总结一)
♣Xmanager5是什么? ♣安装XFTP ♣安装Xshell 1.Xmanager5(官网:https://www.netsarang.com/download/software.html)是全新 ...
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...
- 用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具
用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具 前言 上周,同事抱怨说 react 怎么不能像 angular 那样,使用命令行工具来生成一个组件.对呀,平时工作时,想要创建 ...
- win7自带录像工具怎么打开?win7自带录像工具的使用方法
http://www.xitongcheng.com/jiaocheng/win7_article_28327.html 制作教程的好帮手 win7自带录像工具怎么打开?win7自带录像工具的使用方法 ...
- 性能分析之工具使用——cpu、io 、mem【工具分析】
nmon nmon 是一种在aix 与各种 Linux 操作系统上广泛使 用的监控与与分析工具,他主要记录以下内容: • cpu 占用率 • 内存使用情况 • 磁盘I/O 速度.传输和读写比率 • 文 ...
- 8个实用的SVG工具,20 个有用的 SVG 工具,五款超实用的开源SVG工具
8个实用的SVG工具 [导读] 你还在为没有好用的SVG工具而发愁吗?开发人员的福音来啦!小编为大家收集罗列了8款实用的SVG工具,让我们一起来看看吧! SVG可缩放矢量图形(Scalable Vec ...
随机推荐
- 【Linux】centos 7中,开机不执行rc.lcoal中的命令
最近将一些需要开机启动的命令添加到了rc.local中 本想着开机就启动了,很省事 但是一次意外的重启,发现rc.local中的全部命令都没有执行 发现问题后,及时查找 参考:https://blog ...
- 【EXP】比较大的dmp文件导入的时候可以将界面关掉
有一个需求,将一个dmp文件导入到数据库中,但是这个crt的回话有timeout,3分钟,所以一到三分钟就掉线,导入就失败了,这让人很头疼,关闭界面,imp也就终止了 最后想到了几招,分享一下: 1. ...
- kubernets之pod的标签拓展
一 标签的拓展使用 1.1 标签的作用范围不仅仅适用于pod对node以及其他类的大部分资源同样适用 k label node node01 gpu=true k是kubectl的别名形式 同样对于n ...
- C语言字符串结束符“\0”
介绍 '\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是 字符串结束标志. '\0'是转译字符,意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应 ...
- 【MYSQL】DDL语句
介绍:DDL语句,即数据定义语句,定义了不同的数据段,数据库表.表.列.索引等数据库对象:例如,create.drop.alter 适用对象:一般是由数据库管理员DBA使用 1.连接数据库 mysql ...
- 通过js给某个标签添加内容或者删除标签
添加内容 //先保存div中原来的html var tag = document.getElementById("tag").innerHTML; //构造新的内容 var cou ...
- 初审blucms(入坑)
作为一名初来乍到审计小白,从blueCMS入手再好不过了.通过对入门级的cms进行审计以及一个整体的框架和常见的漏洞学习,对个人而言是一次不错的学习经历.话不多说直接进入主题. 代码审计环境 Blue ...
- MySQL主从配置This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
MySQL主从配置This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD ...
- (004)每日SQL学习:物化视图之二
一. 物化视图概述 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 物化视图可 ...
- LOJ10019生日蛋糕
Mr.W 要制作一个体积为 N*π 的 M 层生日蛋糕,每层都是一个圆柱体. 设从下往上数第 i 蛋糕是半径为 R_i,高度为 H_i 的圆柱.当 i<M 时,要求 R_i>R_{i+1} ...