mirror of
https://github.com/purocean/yn.git
synced 2026-09-24 15:46:02 +08:00
docs: 更新文档
This commit is contained in:
@@ -10,16 +10,16 @@
|
||||
|
||||
## 特色
|
||||
|
||||
- **使用方便**:使用 Monaco 编辑器(VSCode 编辑器内核)编辑,针对 Markdown 文件添加了快捷键和补全规则
|
||||
- **兼容性强**:资源保存本地,Markdown 文件可简单处理离线工作;拓展功能尽量用 Markdown 原有的语法实现
|
||||
- **高拓展性**:可在文档中嵌入小工具、可运行的代码块、表格、Plantuml 图形、Drawio 图形等、可自定义插件拓展编辑器功能
|
||||
- **支持加密**:用来保存账号等隐私文件,文件可单独设置密码
|
||||
- **使用方便**:使用 Monaco 内核,专为 Markdown 优化,拥有和 VSCode 一样的编辑体验。
|
||||
- **功能强大**:可在文档中嵌入小工具、可运行的代码块、表格、Plantuml 图形、Drawio 图形等。
|
||||
- **兼容性强**:数据保存为本地 Markdown 文件;拓展功能尽量用 Markdown 原有的语法实现。
|
||||
- **插件拓展**:支持用户编写自己的插件来拓展编辑器的功能。
|
||||
- **支持加密**:用来保存账号等隐私文件,文件可单独设置密码。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- Yank Note 是一款**针对程序员**的 Markdown 编辑器,目标应用场景为在本机写文章、日志、笔记,编写小工具。
|
||||
- Yank Note 是一款**针对程序员**的 Markdown 编辑器,目标应用场景为在本机写文章、做笔记。
|
||||
- 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,**请务必仔细甄别文件内容是值得信任的**。
|
||||
- 如果要改造为对外的 Web 服务,请运行在隔离可控的环境下,注意应用安全。
|
||||
- 加密文件的加密解密操作均在前端完成,请**务必牢记自己的密码**。一旦密码丢失,就只能暴力破解了。
|
||||
|
||||
## Yank-Note V3 开发计划
|
||||
|
||||
+11
-9
@@ -4,11 +4,11 @@
|
||||
|
||||
## 前言
|
||||
|
||||
Yank Note 是一个完全开放,Hackable 的笔记应用。几乎所有的内置功能,都是构建在一套薄薄的插件系统上的。
|
||||
Yank Note 是一个完全开放,Hackable 的笔记应用。
|
||||
|
||||
我的理想是让用户可以按照自己的想法来定制自己的编辑器,让这款编辑器可以更好的辅助用户的工作和学习。比如针对 [Git 提交](https://github.com/purocean/yn/issues/58#issuecomment-906073520) 的这个场景,用户就可以自己编写插件来实现这个功能,不用等到开发者来适配。
|
||||
|
||||
目前,Yank Note 内部几乎所有功能功能,均是通过插件体系来实现([几十个内置插件](https://github.com/purocean/yn/tree/develop/src/renderer/plugins))。这些插件所用到的能力,和用户编写的插件完全一致,甚至于使用到的一些第三方库,也暴露了出来。
|
||||
目前,Yank Note 内部几乎所有功能功能,均是通过一套薄薄的插件体系来实现([几十个内置插件](https://github.com/purocean/yn/tree/develop/src/renderer/plugins))。内置插件所用到的能力,和用户编写的插件完全一致,甚至你可以在插件中使用一些 Yank Note 使用的第三方库。
|
||||
|
||||
## 编写一个插件
|
||||
|
||||
@@ -40,7 +40,7 @@ Yank Note 是一个完全开放,Hackable 的笔记应用。几乎所有的内
|
||||
|
||||
## 核心概念
|
||||
|
||||
Yank Note 插件体系有一些概念,是支撑整个插件体系的基础:
|
||||
Yank Note 有一些概念,是支撑整个插件体系的基础:
|
||||
|
||||
1. Event 事件
|
||||
1. Hook 钩子
|
||||
@@ -49,17 +49,19 @@ Yank Note 插件体系有一些概念,是支撑整个插件体系的基础:
|
||||
|
||||
### Event 事件
|
||||
|
||||
Yank Note 有一个事件总线 [`ctx.bus`](https://yn-api-doc.vercel.app/modules/core_bus.html),由 [mitt](https://github.com/developit/mitt) 实现,可以参考它的使用方法。
|
||||
插件可以通过事件总线 [`ctx.bus`](https://yn-api-doc.vercel.app/modules/core_bus.html) 来监听事件或触发事件。
|
||||
|
||||
插件可以监听一些事件或触发一些事件,内部事件可以参考[Api 文档](https://yn-api-doc.vercel.app/modules/types.html#BuildInEvents)
|
||||
事件总线由 [mitt](https://github.com/developit/mitt) 实现,可以参考它的使用方法。
|
||||
|
||||
内部事件可以参考[Api 文档](https://yn-api-doc.vercel.app/modules/types.html#BuildInEvents)
|
||||
|
||||
### Hook 钩子
|
||||
|
||||
Yank Note 在一些操作时候,会触发一些钩子。
|
||||
Yank Note 在执行一些操作的时候,会触发一些钩子调用。
|
||||
|
||||
使用 [`ctx.registerHook`](https://yn-api-doc.vercel.app/modules/core_plugin.html#registerHook) 可以注册一个钩子处理方法。使用 [`ctx.triggerHook`](https://yn-api-doc.vercel.app/modules/core_plugin.html#triggerHook) 则可以触发一个钩子。
|
||||
|
||||
钩子和事件不同的地方在于,钩子处理是可以有返回值 `true` `false`。当钩子处理方法返回 `true`,则后续的钩子不再运行。
|
||||
钩子和事件不同的地方在于,钩子处理是可以有返回值 `true` 或者 `false`。当钩子处理方法返回 `true`,则后续的钩子不再运行。
|
||||
|
||||
内部的钩子类型可以参考 [Api 文档](https://yn-api-doc.vercel.app/modules/types.html#HookType)
|
||||
|
||||
@@ -90,9 +92,9 @@ console.log(Object.keys(ctx).join('\n'))
|
||||
|
||||
## 更多
|
||||
|
||||
总体来说,Yank Note 鼓励用户打造自己的工作学习工具,内部毫无保留完全开放出来,只需要用户简单几行代码,即可给自己的工作学习助力。
|
||||
总体来说,Yank Note 鼓励用户打造自己的工作学习工具,只需要几行代码,即可给自己的工作学习助力。
|
||||
|
||||
另外,如果您只需要打造一些趁手的工具,可以不用编写插件,可以使用[代码运行](FEATURES.md#运行代码)功能或者编写 [Html 小工具](FEATURES.md#小工具)。这里的 js 代码运行能力也是完全开放,全局变量 `ctx` 也具有上述所有的功能。
|
||||
另外,如果您只需要打造一些趁手的工具,可以不用编写插件,可以使用[代码运行](FEATURES.md#运行代码)功能或者编写 [Html 小工具](FEATURES.md#小工具)来实现。这里的 js 代码运行能力也是完全开放,全局变量 `ctx` 也具有上述所有的功能。
|
||||
|
||||
例如运行代码功能:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user