Apple生态下的开源笔记 - FSNotes
介绍
FSNotes 是一款支持 macOS 和 iOS 的开源笔记软件。
官方列出了以下主要特点
Markdown 优先,支持纯文本和 RTF 文件
轻量流畅,10k+ 文件仍然运行良好
iCloud Drive 或 Dropbox 同步(任何同步盘)
多文件夹存储
操作以键盘为中心,快捷键启发自 nvALT
自适应双窗格视图,可选垂直或水平排布
外部编辑器支持,无缝实时同步
支持超过 170 种编程语言的代码高亮
支持行内图像
支持标签
支持笔记跳转 [[双方括号]]
支持固定笔记
支持笔记快捷复制到剪贴板
黑暗模式
AES-256 加密
支持 Mermaid 与 MathJax
可选的 Git 版本控制和备份
软件大小仅 13.5 MB,但功能齐全。
macOS 版完全免费,但提供 Mac App Store 付费下载,用于支持作者开发
iOS 版付费买断,国区售价¥18。可以选择使用云服务同步到 iOS 后使用其他支持Markdown 的软件进行编辑查看。
安装
macOS端可以使用 Homebrew 进行安装
brew install fsnotes
或在 GitHub Releases 界面下载
GitHub Releases
使用
完成安装后,软件内置非常详细的英文使用教学。
笔者对其进行了翻译,并且在 GitHub 提交了希望增加多语言支持的 Issues
接下来是本人翻译的使用教学
1. 引言
嗨,我的名字是 Oleksandr,我是这个程序的作者。几年前,我发现我最喜欢的笔记应用 nvALT 不再启动了。
现有的 macOS 和 iOS 替代方案都不适合我,因为我已经当了很多年开发者,所以我尝试编写自己的解决方案。2017年夏天,我在 GitHub 上公布了 FSNotes 的源代码。这是一个糟糕的应用程序。很烂,功能也差。但我没有放弃,贡献者们也没有。
现在,FSNotes 已被翻译成 12 种语言,使用者遍布全球。功能数量超过一百个,其中还有几十个是独有的。
如果您喜欢此应用程序,请支持开发。在App Store购买 Mac App Store 以及在 AppStore 获得移动版本的FSNotes。
谨致问候,
FSNotes 开发者,Oleksandr Hlushchenko
邮件: support@fsnot.es
2. 链接
[[1. 引言]]
[[2. 链接]]
[[3. 快捷键]]
[[4. 侧边栏]]
[[5. 标签和子标签]]
[[6. Mermaid 与 MathJax]]
[[7. 基于 Git 的版本控制]]
[[8. 容器]]
[[9. GitHub Flavored Markdown]]
注:以上内容只能在 FSNotes 软件中点击跳转
官方网站:https://fsnot.es
Issues:https://github.com/glushchenko/fsnotes/issues
Wiki:https://github.com/glushchenko/fsnotes/wiki
公告:https://twitter.com/fsnotesapp
3. 快捷键
FSNotes 支持纯键盘操作,是一款快捷键友好的应用。
您必须学会的最重要的组合键是:
cmd - backtick
- 用 CMD+反单引号 (TAB上面那个) 禁用/启用预览模式。
替代方案: 您可以也可以通过菜单栏中的视图-切换预览来完成以上操作 View - Toggle Preview
全局
cmd + option + shift + L
- 打开主窗口并聚焦搜索栏cmd + option + shift + n
- 保存剪贴板enter
- 向右移动文件夹层级(向下); 侧边栏 > 笔记列表 > 笔记cmd + enter
- 向左移动文件夹层级(向上); 笔记 > 笔记列表 > 侧边栏
搜索栏
down arrow
- 用下箭头将焦点移到笔记列表上enter
- 回车新建笔记
主窗口
esc
- 将光标移到搜索栏并清屏(不删除编辑内容)cmd + L
- 聚焦搜索栏tab
- TAB转到下一区域cmd + backtick
- CMD+反单引号 预览模式 (仅限 markdown)up, down arrows
- 下箭头选择笔记cmd + j
- 下一篇笔记cmd + k
- 上一篇笔记
笔记列表
cmd + delete
- 删除笔记cmd + r
- 重命名笔记cmd + 8
- 固定笔记cmd + 7
- 去除加密(解密之前加密的笔记)cmd + n
- 新建笔记cmd + shift + n
- 新建 RTFctrl + cmd + e
– 在外部编辑器中打开所选内容ctrl + cmd + o
– 在 Finder 中显示所选内容shift + cmd + m
– 在存储中移动所选笔记shift + cmd + b
– 隐藏侧边栏cmd + s
– 将修订版本保存在 Git 中cmd + d
– 创建笔记副本cmd + alt + l
- 加密/解密笔记(AES 256)
编辑
fn + f5
- 自动完成笔记名称cmd + `
,或点击View - Toggle preview
- 用于启用或禁用markdown预览
4. 侧边栏
要切换项目和标签侧边栏按钮 control + cmd + shift + b
您可以选择和过滤无限制的项目和标签。
每个子文件夹都是一个项目
在您的存储空间中创建无限制的文件夹。右键单击根文目录(Documents
) 并单击“新建文件夹” ⌥ option + ⇧ shift + n
.
每个项目都有自己的设置,右键单击项目 - "显示视图选项" cmd + shift + ,
.
您可以配置排序、方向、可见性设置。
5. 标签和子标签
FSNotes version 4 带来了一个令人惊叹的行内标签系统。只需在文字前面加上井号 (#)即可为笔记添加标签。像这样: #hello 。或者,像这样为它们添加子标签: #hello/world 。您能给您的笔记贴多厚的标签?像 #unlimited/sub/tags 。标签会自动完成。输入井号 (#)和标签的第一个字符,然后:
很好!还有别的。每个项目都有自己的标签命名空间。例如,选择“存档”时,仅显示“存档”的笔记中的标签。
在侧边栏选择的同时按住cmd
可以多选多个项目和标签。
6. Mermaid 与 MathJax
Mermaid 流程图示例
支持文档:https://mermaidjs.github.io
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
MathJax 数学公式示例
支持文档:https://www.mathjax.org
请启用菜单栏中的:视图 > Preview MathJax
当 (()),有两种解法可用于 $$ax^2 + bx + c = 0$$ 它们是
7. 基于 Git 的版本控制
使用 cmd + s
快捷键来保存笔记:
并在菜单栏恢复到历史版本:
自动备份所有笔记
在偏好设置中配置:
例如,每小时进行一次备份。
您还可以备份备份 🤪
毕竟再安全也不为过。
8. 容器
什么是容器?“容器”是存放您的文件的文件夹。容器保存一个笔记中使用的文本和其他资源。当然,您可以选择不使用容器。打开偏好设置-> 基本-> 容器并选择“无”。笔记将以纯文本、 Markdown 或 RTF 格式存储。
我建议对敏感数据使用 TextBundle 容器和加密 TextBundle 容器。请继续阅读
TextBundle 容器
文件扩展名 – .textbundle
TextBundle – 这种格式旨在在应用程序之间交换纯文本文件(如 Markdown 或 RTF)时提供更无缝的用户体验。 http://textbundle.org
例如,一个 Markdown 文件可能包含对外部图像的引用。当从 Markdown 编辑器发送这样的文件到预览器时,用户必须明确指定每一个图像文件的位置。这就是 TextBundle 派上用场的地方。通过将 Markdown 文本和所有引用的图像打包在一个文件中,Text Bundle 提供更方便的体验。
加密 TextBundle 容器
文件扩展名 – .etp
.
加密文本包用于笔记加密。它是加密的文本包(压缩包)并用 RNCryptor 加密。RNCryptor 是一种跨平台的数据格式,有很多实现方案。在软件后台,我们有:
AES-256 加密
CBC 模式
PBKDF2 密码延伸
密码加盐
随机 IV
加密后哈希 HMAC
开放和跨平台
您可以使用 Python 或 Ruby、JS 等解密任何 FSNotes 笔记(完整列表可在此处找到)
解压缩并用普通的文本格式快活吧。
9. GitHub Flavored Markdown
标题 h1-h6
快捷键:cmd + 1-6
图像
快捷键:cmd + shift + i
粗体、斜体、删除线
粗体
快捷键:cmd + b
斜体
快捷键:cmd + i
删除线
快捷键:cmd + y
引用
您可以引用
不止一行
快捷键:cmd + shift + u
代码块
Swift 示例:
public static func getHighlighter() -> Highlightr? {
if let instance = self.hl {
return instance
}
guard let highlightr = Highlightr() else {
return nil
}
highlightr.setTheme(to: "vs")
self.hl = highlightr
return self.hl
}
SQL 示例:
CREATE TABLE "topic" (
"id" serial NOT NULL PRIMARY KEY,
"forum_id" integer NOT NULL,
"subject" varchar(255) NOT NULL
);
ALTER TABLE "topic"
ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id")
REFERENCES "forum" ("id");
-- Initials
insert into "topic" ("forum_id", "subject")
values (2, 'D''artagnian');
快捷键:cmd + control + c
Code span
One line code span
快捷键:cmd + shift + c
列表、编号列表和待办事项
- 列表
快捷键:control + L
- 第一项
- 第二项
快捷键:control + shift + L
快捷键:cmd + t
Wiki 链接
添加 Wiki 链接 [[WikiLinks with emoji 😎]]
快捷键:cmd + 9
小结
以上是 FSNotes 的使用教程,这篇教程将 FSNotes 的常用使用场景基本表现了出来,作为一款以 Markdown 为主的笔记软件,其优缺点都十分明显。
对于已经有 Markdown 使用经验的朋友,应该已经有了一套自己管理.md
文件的工作流。但对于新手,通过一个更加类似传统笔记软件(Evernote,OneNote)的笔记软件来熟悉 Markdown 的使用可以是个非常友好的入门选择。