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

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

opensource.com

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

当 Evernote 更改其定价模式时,我开始开发 Joplin,因为我希望我的 4,000 多条笔记以更开放的格式存储,不受任何专有解决方案的限制。为此,我开发了三个 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 将引用当前选定的笔记。

以下是一些示例

创建标题为“星期三会议”的新笔记

mknote "Wednesday's meeting"

创建新的待办事项

mktodo "Buy bread"

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

mv $n "Personal"

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

ren $b "Something"

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

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

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

config editor "subl -w"

获取帮助

完整的用法信息可在命令行模式下通过键入以下命令之一获得

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

如果帮助未完全显示,请多次按 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 安装有点糟糕 - 为什么不使用存储库,以便轻松访问?我在页面顶部看到了一个 redhat 徽标 ;),并且 RPM 很容易编写。

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

您好,

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

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

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

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

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

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

回复 作者:Lazza (未验证)

好吧,Google 的 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 换行符,通过在一行末尾添加两个空格,不起作用!?(Android 版本)
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

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

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

回复 作者: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.