本文非常适合 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. HashMap为什么效率高?来看看这个小demo

    一.前情回顾:在程序中有时候需要存放对象,容器应运而生.容器分为集合和Map.集合在这里不说,说说Map.Map在英语中是地图的意思,这个名字真是起的好,可以让人顾名思义.Map,就是存放键值对的结构 ...

  2. MySQL常用的一些(就几个)聚合函数

    聚合函数 (常用) 函数名称 描述 CONUT() 记数 SUM() 求和 AVG() 平均值 MAX() 最大值 MIN() 最小值 -- ================= 聚合函数 ====== ...

  3. 【Spring】Spring中的Bean - 4、Bean的生命周期

    Bean的生命周期 简单记录-Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)-Spring中的Bean 了解Spring中Bean的生命周期有何意义? 了解Sp ...

  4. 【老孟Flutter】如何提高Flutter应用程序的性能

    首先 Flutter 是一个非常高性能的框架,因此大多时候不需要开发者做出特殊的处理,只需要避免常见的性能问题即可获得高性能的应用程序. 重建最小化原则 在调用 setState() 方法重建组件时, ...

  5. 善用tempfile库创建python进程中的临时文件

    技术背景 临时文件在python项目中时常会被使用到,其作用在于随机化的创建不重名的文件,路径一般都是放在Linux系统下的/tmp目录.如果项目中并不需要持久化的存储一个文件,就可以采用临时文件的形 ...

  6. 【Azure Developer】在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等)

    问题描述 通过Azure的Resource Graph Explorer(https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade),可以查 ...

  7. SSL_ERROR_WANT_READ

    ``` 47757 2020/05/07 06:36:04 [debug] 19413#19413: *23421 event timer: 11, old: 15581551413, new: 15 ...

  8. 游标 深度分页 deep paging

    Solr Deep Paging(solr 深分页) - ickes的专栏 - CSDN博客 https://blog.csdn.net/xl_ickes/article/details/427725 ...

  9. JavaScript代码是怎么执行的?

    前言 众所周知,JavaScript是单线程语言.所以JavaScript是按顺序执行的! 先编译再执行 变量提升 请看下面的例子: console.log(cat) catName("Ch ...

  10. 2021最新 Spring面试题精选(附刷题小程序)

    推荐使用小程序阅读 为了能让您更加方便的阅读 本文所有的面试题目均已整理至小程序<面试手册> 可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验! 目录 推荐使用小程序阅读 1. S ...