From ebfed92201441fdeb3bd08fb338a20588b97802f Mon Sep 17 00:00:00 2001 From: purocean Date: Fri, 29 Oct 2021 14:40:54 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++++++------ help/PLUGIN.md | 20 +++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index bcf244a6..bedbc667 100644 --- a/README.md +++ b/README.md @@ -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 开发计划 diff --git a/help/PLUGIN.md b/help/PLUGIN.md index 2a062a7f..010152e2 100644 --- a/help/PLUGIN.md +++ b/help/PLUGIN.md @@ -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` 也具有上述所有的功能。 例如运行代码功能: