Joplin 简介:一款开源的 Evernote 替代品

Joplin 允许您存储和组织笔记、文件等内容,而无需担心供应商锁定。
984 位读者喜欢这篇文章。
3 text editor alternatives to Emacs and Vim

opensource.com

Joplin 是一款开源的跨平台笔记和待办事项应用程序。它可以处理大量笔记,这些笔记可以组织到笔记本中,并可以在多个设备之间同步。笔记可以使用 Markdown 格式进行编辑,可以直接在应用程序内编辑,也可以使用您自己的文本编辑器编辑,并且每个应用程序都有一个选项可以使用格式、图像、URL 等渲染 Markdown。任何数量的文件,例如图像和 PDF,都可以附加到笔记中,笔记也可以被标记。

当 Evernote 更改其定价模式,并且我希望我的 4,000 多条笔记以更开放的格式存储,摆脱任何专有解决方案时,我开始开发 Joplin。为此,我开发了三个 Joplin 应用程序,所有应用程序均在 MIT 许可证下发布:桌面版(Windows、MacOS 和 Linux)、移动版(Android 和 iOS)和终端版(Windows、MacOS 和 Linux)。所有应用程序都具有相似的用户界面,并且可以相互同步。它们基于开放标准和技术,包括用于后端的 SQLite 和 JavaScript,以及用于三个前端的 Terminal Kit (Node.js)、ElectronReact Native

Joplin 优先离线使用,因此即使没有互联网连接,数据也始终在设备上可用。

同步

创建 Joplin 时,我的目标之一是避免在同步方面受制于任何特定的公司或服务。因此,它的同步设计没有任何对特定服务的硬性依赖。大多数同步过程都在抽象级别完成,并且通过轻量级驱动程序访问外部服务(如 OneDrive 或 Dropbox)。通过创建提供类似文件系统界面的简单驱动程序,即读取、写入、删除和列出项目的功能,可以轻松支持新服务。

可以从一项服务切换到另一项服务,甚至可以同时同步到多项服务。每个笔记、笔记本和标签,以及项目之间的关系,都在同步期间以纯文本文件传输,这意味着数据也可以轻松地移动到不同的应用程序、备份、检查等。此同步后端旨在持久耐用且面向未来。

目前,可以通过 OneDrive(默认)或本地文件系统(允许通过网络共享进行同步)进行同步。一旦 React-Native 错误修复后,Dropbox 驱动程序也将可用。当与 OneDrive 同步时,Joplin 会在 OneDrive 中创建一个子目录,位于 /Apps/Joplin 中,并从中读取/写入笔记和笔记本。应用程序无权访问此目录之外的任何内容。

要启动同步过程,请按照以下步骤操作

  • 桌面应用程序: 单击侧边栏中的同步按钮。系统将要求您登录 OneDrive 以授权应用程序(只需输入您的 Microsoft 凭据;您无需注册 OneDrive)。之后,应用程序将在后台运行时同步,或者您可以单击同步以启动手动同步。
  • 终端应用程序: 键入 :sync。系统将要求您点击链接以授权应用程序。之后,应用程序将在后台运行时同步。您也可以通过在终端中键入 joplin sync 在用户界面之外进行同步。这可以用于设置 cron 脚本以定期同步。例如,这将每 30 分钟执行一次
    */30 * * * * /path/to/joplin sync
  • 移动应用程序: 单击同步按钮并输入您的 OneDrive 凭据。

附件

任何类型的文件都可以附加到笔记中;在 Joplin 中,这些文件被称为“资源”。在 Markdown 中,指向这些文件的链接表示为资源的简单 ID。在笔记查看器中,图像文件将显示,PDF、文本文件或其他类型的文件将显示为链接。单击链接将在默认应用程序中打开文件。

从 Evernote 导入笔记

Joplin 被设计为 Evernote 的替代品,因此它可以导入完整的 Evernote 笔记本,以及笔记、标签、资源(附加文件)和笔记元数据(例如作者、地理位置等),通过 ENEX 文件。要导入 Evernote 数据,首先将您的 Evernote 笔记本导出为 ENEX 文件。

要将您的笔记本导入 Joplin,请按照以下步骤操作

  • 桌面应用程序: 打开文件菜单,然后单击导入 Evernote 笔记,然后选择您的 ENEX 文件。这将打开一个新屏幕,显示导入进度。笔记将导入到一个单独的新笔记本中(这样做是为了防止出现错误时,笔记与任何现有笔记混淆)。如果需要,可以将它们移动到不同的笔记本,可以重命名笔记本等。
  • 终端应用程序:命令行模式下,键入 import-enex /path/to/file.enex。这将把笔记导入到一个以文件名命名的新笔记本中。
  • 移动应用程序: 目前不支持从移动应用程序导入 Enex 文件。将 Evernote 中的笔记导入移动应用程序的方法是先从桌面应用程序导入它们,然后与移动应用程序同步。

桌面、移动和终端应用程序的比较

这三个应用程序之间存在差异。

桌面应用程序

Joplin's desktop application

opensource.com

桌面应用程序适用于 Windows、Linux 和 MacOS。主视图显示一个侧边栏,其中包含笔记本和标签列表、笔记列表以及当前选定笔记的内容。桌面应用程序的主要区别在于,笔记以双视图显示,一侧是可编辑的 Markdown 文本,另一侧是渲染后的笔记。可以通过单击工具栏中的布局按钮来仅显示笔记编辑器、仅显示视图或两者都显示。

终端应用程序

Joplin's terminal app

opensource.com

终端应用程序适用于 Windows(通过 WSL)、Linux 和 MacOS。要在 Windows 或 Linux 上安装它,请键入

npm install -g joplin

在 macOS 上,最好使用 Homebrew,并使用以下命令安装应用程序

brew install joplin

如果由于权限问题导致应用程序未安装,请确保您的 全局 npm 权限正确

要启动应用程序,请键入 joplin。这将打开用户界面,该界面有三个主要窗格:笔记本、笔记和当前笔记的文本。还有其他面板可以通过 快捷键 切换开和关。要创建新笔记,请键入 tc。要编辑笔记,请选择它并按 Enter 键。

移动应用程序

Joplin's mobile app

opensource.com

Joplin's mobile app

opensource.com

移动应用程序适用于 iOS 和 Android。与其他应用程序一样,它有一个 Markdown 编辑器来输入笔记。创建笔记后,它将显示带有格式的渲染文本。然后,您可以使用编辑返回按钮在编辑器和渲染后的笔记之间切换。笔记和笔记本可以与桌面或终端应用程序同步。

与 Joplin 互动

Joplin 的用户界面部分基于文本编辑器 Vim,并提供两种不同的模式来与笔记和笔记本进行交互

  • 普通模式 允许使用 TabShift+Tab 键在窗格之间移动,并使用箭头键选择/查看笔记。也可以使用箭头键滚动文本区域。按 Enter 键编辑笔记。还有其他 快捷键 可用。
  • 命令行模式 可以通过按 : 启动。从那里,可以使用 Joplin 命令,例如 mknotesearch。请参阅 完整命令列表

虽然您可以通过标题或 ID 引用笔记或笔记本,但最简单的方法是使用以下快捷方式之一来引用当前选定的项目

快捷方式 描述
$n 指当前选定的笔记
$b 指当前选定的笔记本
$c 指当前选定的项目,例如,如果笔记列表是当前活动状态,$c 将指当前选定的笔记。

以下是一些示例

创建标题为“Wednesday's meeting”的新笔记

mknote "Wednesday's meeting"

创建一个新的待办事项

mktodo "Buy bread"

将当前选定的笔记 ($n) 移动到标题为“Personal”的笔记本

mv $n "Personal"

将当前选定的笔记本 ($b) 重命名为 “Something”

ren $b "Something"

将本地文件附加到当前选定的笔记 ($n)

attach $n /home/laurent/pictures/Vacation12.jpg

也可以从命令行模式更改配置。例如,要将当前编辑器更改为 sublime text

config editor "subl -w"

获取帮助

完整的用法信息在命令行模式下可用,方法是键入以下命令之一

命令 描述
help 通用帮助信息
help shortcuts 列出可用的快捷键
help [命令] 显示有关特定命令的信息

如果帮助没有完全显示,请多次按 Tab 键,直到控制台处于焦点状态,然后使用箭头键或 Page Up/Page Down 键滚动文本。

标签
User profile image.
我是伦敦的一名软件工程师。我对开源技术充满热情,只要有机会,我就喜欢为各种项目做出贡献。您可以在 GitHub 上找到我:https://github.com/laurent22

38 条评论

Laurent,太棒了!

看起来很棒,有兴趣看到 AWS S3 同步解决方案 :)

感谢您的评论。下一个同步目标将是 Nextcloud,之后我将研究简化和记录同步驱动程序模型(这已经相对简单,因为它通常只是本机 API 的包装器)。这样,也许其他用户可以贡献驱动程序,包括 S3 和其他已被请求的驱动程序。

回复 ,作者 alastairhm

看起来非常有趣。是否有搜索功能,还是我错过了那部分?

是的,有的:在 CLI 应用程序上,键入“/”,后跟您的搜索查询。在移动和桌面端,只需单击放大镜图标。

回复 ,作者 Vince Flynn (未验证)

您好,

这听起来像一个很棒的想法,并且这个领域肯定缺少软件。但是从 NPM/brew 安装有点糟糕 - 为什么不使用存储库,以便易于访问?我在页面顶部看到了一个红帽徽标 ;),并且 RPM 很容易编写。

我也很好奇为什么选择 electron - 就我个人而言,我尽量避免使用 electron/JS 软件,因为我的电脑和移动设备比较旧,无法非常快速地处理这些软件。

您好,

对于 macOS,Homebrew 是一个很好的解决方案,特别是它比 npm 本身更好地管理 npm 包(恕我直言,默认的 npm 设置非常糟糕,而 Homebrew 修复了这一点)。

在其他操作系统上,我同意 npm 不是分发应用程序的最佳方式,因为我遇到了很多问题。我之前尝试编写 APT(对于另一个应用程序),但由于我无法使其工作而放弃了,但我会研究 RPM。

我最初开始使用 Qt 和 C++ 开发该应用程序,但不幸的是,它们的移动前端不太好,所以我最终放弃了这个想法。另一方面,React Native 虽然远非完美,但在无需从头开始做所有事情的情况下,更容易获得相当美观的东西。然后我使用它和 Electron 的原因是,这使我可以用 JS 编写所有后端,然后我可以与这三个应用程序共享,并支持 5 种不同的操作系统。可能大约 80% 的代码在应用程序之间共享,这可以节省大量时间。例如,同步和加密后端很复杂,但由于它们是共享的,我可以专注于使它们尽可能强大,并且任何改进都将自动使所有应用程序受益。

回复 ,作者 Sam Wan (未验证)

这非常有趣!虽然对我来说,一个杀手级功能是搜索,包括 Evernote OCR 过的 PDF 文件和图片。不幸的是,如果没有专用的服务器端组件,这有点难以复制。

是的,PDF 文件确实需要 OCR。我还没有研究过它,我想知道是否有任何好的开源选项?(即使是服务器端,在这种情况下,用户也可以选择自行托管它)。

回复 ,作者 Lazza (未验证)

嗯,谷歌的 Tesseract 非常出色,它可以 OCR 图片和 PDF 文件。我不知道它是否可以处理旋转文本,Evernote 似乎可以很好地处理旋转文本。(实际示例:我让 Evernote OCR 一张我用智能手机拍摄的地图照片,然后我就可以搜索街道名称了)

此外,Evernote 不仅 OCR 文本,还为每个单词保留 2 或 3 个“最有可能”的匹配项,因此搜索更容易,因为它变得类似于模糊匹配。

在一个不相关的说明中,很遗憾我无法通过电子邮件订阅评论,因此我可能会错过这里未来的回复。:(

回复 ,作者 laurent

我尝试从您的网站下载 Joplin Windows 应用程序,并且我的 Norton 扫描仪收到了病毒警告,引用了 WS.Reputation.1,随后阻止了其安装。您是否知道这个问题?

如果您有兴趣通过 Norton 解决警告,也想与您分享以下信息。

已更新
2012 年 2 月 15 日下午 3:15:47
类型:其他
风险影响:高
受影响的系统:Windows

白名单
希望加速其新软件应用程序的信誉建立过程的软件开发人员应将新应用程序提交给 Symantec 白名单计划。该计划的详细信息可以在这里找到 (https://submit.symantec.com/false_positive/)。

争议
如果您认为某个程序被 Symantec 基于信誉的安全系统错误分类,那么您可以使用此 Web 表单提交争议(URL 不再有效)。

感谢您告知我。Symantec 过于谨慎了,因为该应用程序已签名,我认为 Microsoft 现在已接受该应用程序通过 SmartScreen。我已经向 Symantec 提交了误报报告。

回复 ,作者 John Pugh (未验证)

Symantec 现在已将该应用程序列入白名单。再次感谢您告知我!

关于提交 64146。

经过进一步分析和调查,我们已验证您的提交,因此,我们产品中将删除以下文件的检测

文件名:Joplin-Setup-0.10.39.exe
MD5: 0176fb217c5073470cbc9df351692cd4
SHA256: 566bd166f812cbe74441eecab9123fd74d77d68b88a4d516b6563f2227c60cd7
注意:白名单可能需要长达 24 小时才能通过 Live Update 生效

回复 ,作者 John Pugh (未验证)

看起来太棒了!迫不及待想看看这个项目如何进展!

对于 OCR,请查看 Tesseract https://sourceforge.net/projects/tesseract-ocr/

我注意到 Markdown 换行符,通过在一行末尾添加两个空格,不起作用!?(安卓版本)
GFM 表格确实有效 :-)

Snap 包怎么样?

我在平板电脑上安装了 Android 应用程序,但找不到同步到本地服务器的选项。我没有任何 MS-Windows 系统,因此 OneDrive 即使对于我的测试也不是一个可行的选择。我在我的家庭网络上有几台 Slackware 服务器可用,因此更喜欢使用其中一台。这也将为我在旅途中使用的 VPN 提供安全的同步选项。

是否有人构建了 Slackware 安装包或尝试过 npm2tgz 实用程序?我的所有工作站也都在 Slackware 上运行。

最安全的选择是自托管服务器,每个用户都有子目录。但是设置我自己的 Nextcloud 服务器可能有点过头了。它应该是一个简单的服务器,带有加密驱动器,为同步添加端到端加密,并使用预共享的主密钥来保护传输中的数据。然后加密存储在设备/PC 上的数据,唯一的漏洞是实际查看的内容。即使是前面提到的远程用户的 VPN 选项对于许多企业来说也可能足够了。我的上一家雇主对所有移动和远程员工都使用了 VPN。在下雪天,我可以从家访问我的办公室电脑。

您是否有同步协议的任何文档?我现在退休了,但我以前实现过 Unix 守护程序和 MS-Windows 服务。

问题不是我是否偏执,而是我是否足够偏执。

回复 ,作者 laurent

我正在同步到我的 MEGA.nz 帐户中的一个文件夹。这应该可以解决端到端加密和版本控制问题。到目前为止,它似乎运行良好。

当我让其他平台运行时,我会进一步评论 - 在这一点上,我只安装了 MacOS 版本。

您的意思是您已经通过 Mega 同步了两台 macOS 计算机?如果它有效,那就太好了,是的,如果您注意到任何问题,请告诉我。如果它有效,我将在文档中提及这一点,因为它将是一种支持任何云服务的简单方法,而无需开发特定的驱动程序。

回复 ,作者 ron phillips

不,我打错了。我现在正在同步 Ubuntu 和 MacOS,并且运行良好。我即将尝试 Windows,所以完成后我会回来查看。

回复 ,作者 laurent

嗯,Windows 也可以用。我只需将任何 Joplin 桌面指向 /whatever/MEGA/joplin,然后点击“同步”。这会非常方便!感谢您的努力!

回复 ,作者 laurent

抱歉,当我第一次启动时它工作正常,但现在更新不稳定。我会尝试确定它们何时工作以及何时不工作。

感谢您的更新。我可以想到的一个原因是,文件系统上的同步依赖于文件时间戳(与 OneDrive 不同,OneDrive 提供了一个 delta API 来找出已更改的内容),如果应用程序更改这些时间戳,则可能会出现问题。

回复 ,作者 ron phillips

好吧,无论如何都值得一试。我考虑过存储 ENEX 文件,并在每次打开桌面 Joplin 时导入它们,但我没有看到如何从 Joplin 导出它们。

这在计划中吗?

回复 ,作者 laurent

您想导出什么?我不认为将来会有导出为 enex 的选项,但是会有一个导出为 Joplin 格式的选项(在 cli 工具中已经可用)

回复 ,作者 ron phillips

太棒了,终于有机会摆脱 Evernote 了!

Nextcloud 实现将非常棒!等待 Evernote 的一个好的替代品。

看起来很棒!我很快就会尝试一下,因为我已经寻找 Evernote 替代品一段时间了。Nextcloud 同步会很棒,那样我们就可以自托管了

感谢您的出色工作。我今天才发现 joplin,但已经非常喜欢它了!
有一些功能,我希望将来能在 joplin 中看到。
* 一个 iPad 应用程序,可以利用更大的屏幕。
* 在 iOS 上,joplin 应该启用“打开方式”,以便可以在其他应用程序中打开笔记和附件。并且它应该能够保存到新的 iOS 文件管理器。
* 我希望附件/资源保留其文件扩展名,这样 Windows 预览就可以用来快速查看它们以检查文件内容。特别是当您的目标之一是不锁定用户时。
* 我希望集成 cryptomator。这样,就可以将文件和附件以未加密的形式留在设备和计算机上,以便其他软件访问,但将其加密同步到云端。
* 在我的计算机上启用加密,然后在 ipad 中收到输入密码的消息后,我希望有一个更清晰的指示器,指示在哪里填写密码。我第二次才看到它。
* 一些用于快速格式化笔记的 gui 按钮,例如插入一个大表格。
* 使用复制/粘贴输入照片和文本
* 调整照片大小的选项

但即使现在 Joplin 也是一个很棒的软件,也是以前缺少的东西!
谢谢!

Laurent,您是英雄!!

在 Springpad 关闭大门后,我感到需要一个自托管的笔记系统。当我迁移到 Evernote 时,它也变成了一匹垂死的马。在这个快速变化的世界中,害怕丢失笔记和喜欢的应用程序是真实存在的,而您的步骤正在缓解其中的一些问题。

以下是一些建议-

1) Web Clipper 非常重要。如果 Web Clipper 不可能,那么基于书签的 javascript Clipper 对书签非常有用。
2) 与其他服务集成,例如 wekan(https://www.kanbanote.com/ 的替代品)可能是另一个有用的选项。

再次感谢,
AJ

今天刚刚试用了一下。通过 WebDAV 连接到外部 sefvervia 很容易。Evernote 结束了!非常感谢!您给了我们自由!

Laurent,干得漂亮。我刚刚从 Evernote 切换了所有笔记本。期待 Chrome Web 插件,使其更易于复制。
一年左右以来,我对 Evernote 非常不满意,因为搜索速度非常慢,几乎每次都失败。笔记应用程序应该使搜索成为最好的功能。只有这样它才会受欢迎。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.