本文非常适合 Electron 入门选手,墙裂推荐!

本文作者:HelloGitHub-蔡文心

大家好!这里是 HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来的一款基于 Electron 和 PHP 实现的桌面脑图工具开源项目——DesktopNaotu

不知道各位小伙伴有没有发现,现在许多工作岗位与图表制作的接触越来越多,时不时你就会接到个加急制作图表任务。市面上的多数图表制作软件要么收费,要么让充 VIP。充个月卡,很有可能只用 1 次,就没用了。这两件事加在一起就像渣 * 一边 PUA 你,一边还骗你钱!

如果你身边有这样的朋友,请介绍给我,我来负责。

如果你没有,那你现在有了,因为很不幸我就是被 PUA 的一个

好产品收费当然无可厚非,不过你可是 HG 的读者,而我们 HG 的背后是开源世界!今天带来的 DesktopNaotu 是一个开源项目,一个完全免费的脑图制作工具。话不多说,让我们来看看它的使用说明和功能吧!

一、介绍

DesktopNaotu 是基于百度脑图的本地化版本,能够帮助你在没有互联网环境的情况下,依然可以使用脑图工具。

官网:https://inaotu.org/

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 框架,对桌面程序的配置文件也没有太多了解。为了解决语言设置问题,也是费了很大一番功夫,当然也可能是我比较菜: )

  1. 查阅项目仓库的 issue,没有找到相关提问
  2. 加入官方群询问官方。官方开发手边没有 Mac,无法直接帮忙解决,但是给了重要线索—— naotu.config.json 文件
  3. 使用 asar 工具解压 app.asar 在根目录寻找 naotu.config.json 文件。绕了很大的圈子还没解决,因为不在根目录下

最后,克隆代码到本地在编译时在控制台输出发现了 naotu.config.json 文件的路径。过程中也想放弃推荐这个开源项目,虽然我也可以只拿 Win10 平台做演示,但我认为这就等于将《开源讲解》中的讲解抛弃了。

这也算是做这个系列的乐趣之一了,之后也会给官方提交 PR 在 Readme 中补充这一点。

我是 HelloGitHub 团队的文心,如果你喜欢这篇文章,请给我点个赞吧,这将是我继续坚持下去的最大动力!


关注 HelloGitHub 公众号 收到第一时间的更新。

还有更多开源项目的介绍和宝藏项目等待你的发掘。

被收费绘图工具 PUA 了怎么办?来看看这个老实工具吧的更多相关文章

  1. 4款BI工具功能大对比,这款BI工具你不能错过!

    在这个信息爆炸式增长的时代,挖掘数据的潜在价值显得尤为重要.越来越多的人将目光聚集于商业智能领域--BI(Business Intelligence),通过数据分析软件对来自不同的数据源进行统一的处理 ...

  2. arcengine中自定义工具和自带工具条(ICommand)点击后和其他工具使用的冲突

    自己系统中本身对于放大缩小等功能直接是单独重写的,但是如果在加一个工具条具有相同功能的话两者之间会有一些冲突,为解决该冲突可以重写工具条的OnItemClick事件 该工具条命名为axTool 我本身 ...

  3. Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector

    那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...

  4. Linux工具XFTP、Xshell(centos配置java环境 工具篇 总结一)

    ♣Xmanager5是什么? ♣安装XFTP ♣安装Xshell 1.Xmanager5(官网:https://www.netsarang.com/download/software.html)是全新 ...

  5. 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 ...

  6. 用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具

    用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具 前言 上周,同事抱怨说 react 怎么不能像 angular 那样,使用命令行工具来生成一个组件.对呀,平时工作时,想要创建 ...

  7. win7自带录像工具怎么打开?win7自带录像工具的使用方法

    http://www.xitongcheng.com/jiaocheng/win7_article_28327.html 制作教程的好帮手 win7自带录像工具怎么打开?win7自带录像工具的使用方法 ...

  8. 性能分析之工具使用——cpu、io 、mem【工具分析】

    nmon nmon 是一种在aix 与各种 Linux 操作系统上广泛使 用的监控与与分析工具,他主要记录以下内容: • cpu 占用率 • 内存使用情况 • 磁盘I/O 速度.传输和读写比率 • 文 ...

  9. 8个实用的SVG工具,20 个有用的 SVG 工具,五款超实用的开源SVG工具

    8个实用的SVG工具 [导读] 你还在为没有好用的SVG工具而发愁吗?开发人员的福音来啦!小编为大家收集罗列了8款实用的SVG工具,让我们一起来看看吧! SVG可缩放矢量图形(Scalable Vec ...

随机推荐

  1. leetcode230. 二叉搜索树中第K小的元素

    题目链接: https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/ 题目: 给定一个二叉搜索树,编写一个函数 kthSmalle ...

  2. 小试牛刀ElasticSearch大数据聚合统计

    ElasticSearch相信有不少朋友都了解,即使没有了解过它那相信对ELK也有所认识E即是ElasticSearch.ElasticSearch最开始更多用于检索,作为一搜索的集群产品简单易用绝对 ...

  3. 处理Promise.reject()

    一般处理Promise.reject()都是catch住错误,然后进行错误处理,一般都是再次发起请求或者直接打印. 直接打印的情况用console.error()就可以了,而再次发起请求呢? 最好是先 ...

  4. commons-lang3相关类实例

    一.ArrayUtils //1.判断两个数组长度是否相等 ArrayUtils.isSameLength(new int[] {1,2,3,4}, new int[] {1,2,3,4});//tr ...

  5. Django前后端分离项目部署

    vue+drf的前后端分离部署笔记 前端部署过程 端口划分: vue+nginx的端口 是81 vue向后台发请求,首先发给的是代理服务器,这里模拟是nginx的 9000 drf后台运行在 9005 ...

  6. uni-app开发经验分享十九: uni-app对接微信小程序直播

    uni-app对接微信小程序直播 1.登录微信小程序后台-点击>设置->第三方设置->添加直播插件 2.添加直播组件后->点击<详情>      记录这两个参数直播 ...

  7. js实现简单的俄罗斯方块小游戏

    js实现简单的俄罗斯方块小游戏 开始 1. 创建一个宽为 200px,高为 360px 的背景容器 <!DOCTYPE html> <html lang="en" ...

  8. 关掉IE提示“当前安全设置会使计算机有风险”

    我们先来看一下IE浏览器出现的提示窗口,该窗口位于最顶端,不点击设置的话,无法进行下一步的操作. 这时我们点击开始按钮 ,在弹出菜单中选择"运行"菜单项. 在打开的Windows运 ...

  9. 【vulnhub】靶机-【DC系列】DC9(附靶机)

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 主机信息 Kali:192.168.56.113 DC9:192.168.56.112 ...

  10. Spring框架入门浅析

    一.Spring Bean的配置 在需要被Spring框架创建对象的实体类的类声明前面加注解:```@component```.这样在Spring扫描的时候,看到该注解就会在容器中创建该实体类的对象. ...