diff --git a/README.md b/README.md index 17cb3c3d..06750e20 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Yank Note -> 一款面向程序员的 Markdown 笔记应用 **[在线体验>>>](https://yn-phi.vercel.app/)** + +一款面向程序员的 Markdown 笔记应用 **[在线体验>>>](https://yn-phi.vercel.app/)** [![Download](./help/mas_en.svg?.inline)](https://apps.apple.com/cn/app/yank-note/id1551528618) @@ -8,73 +9,79 @@ ![截图](./help/1.png) ## 特色 -+ **使用方便**:使用 Monaco 编辑器(VSCode 编辑器内核)编辑,针对 Markdown 文件添加了快捷键和补全规则 -+ **兼容性强**:资源保存本地,Markdown 文件可简单处理离线工作;拓展功能尽量用 Markdown 原有的语法实现 -+ **高拓展性**:可在文档中嵌入小工具、可运行的代码块、表格、Plantuml 图形、Drawio 图形等、可自定义插件拓展编辑器功能 -+ **支持加密**:用来保存账号等隐私文件,文件可单独设置密码 + +- **使用方便**:使用 Monaco 编辑器(VSCode 编辑器内核)编辑,针对 Markdown 文件添加了快捷键和补全规则 +- **兼容性强**:资源保存本地,Markdown 文件可简单处理离线工作;拓展功能尽量用 Markdown 原有的语法实现 +- **高拓展性**:可在文档中嵌入小工具、可运行的代码块、表格、Plantuml 图形、Drawio 图形等、可自定义插件拓展编辑器功能 +- **支持加密**:用来保存账号等隐私文件,文件可单独设置密码 ## 注意事项 -+ Yank Note 是一款**针对程序员**的 Markdown 编辑器,目标应用场景为在本机写文章、日志、笔记,编写小工具。 -+ 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,**请务必仔细甄别文件内容是值得信任的**。 -+ 如果要改造为对外的 Web 服务,请运行在隔离可控的环境下,注意应用安全。 -+ 加密文件的加密解密操作均在前端完成,请**务必牢记自己的密码**。一旦密码丢失,就只能暴力破解了。 + +- Yank Note 是一款**针对程序员**的 Markdown 编辑器,目标应用场景为在本机写文章、日志、笔记,编写小工具。 +- 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,**请务必仔细甄别文件内容是值得信任的**。 +- 如果要改造为对外的 Web 服务,请运行在隔离可控的环境下,注意应用安全。 +- 加密文件的加密解密操作均在前端完成,请**务必牢记自己的密码**。一旦密码丢失,就只能暴力破解了。 ## Yank-Note V3 开发计划 + V3 核心目标是重构代码,提升应用健壮性、可拓展性、Markdown 渲染性能 [V3 项目看板](https://github.com/purocean/yn/projects/5) -+ [x] 使用 Vite 构建 -+ [x] 优化 Markdown 渲染性能,支持 Vue 组件方式拓展功能 -+ [x] 重构 Electron 代码 -+ [x] 重构业务逻辑,和组件解耦 -+ [ ] 重构快捷键处理层,支持自定义快捷键 -+ [ ] 其他 V2 未完成的功能 -+ [ ] 完善自定义插件文档 -+ [ ] 增加移动端 +- [x] 使用 Vite 构建 +- [x] 优化 Markdown 渲染性能,支持 Vue 组件方式拓展功能 +- [x] 重构 Electron 代码 +- [x] 重构业务逻辑,和组件解耦 +- [ ] 重构快捷键处理层,支持自定义快捷键 +- [ ] 其他 V2 未完成的功能 +- [ ] 完善自定义插件文档 +- [ ] 增加移动端 ## 特色功能 + 部分功能需要相关快捷键配合,可参考*特色功能说明* -+ 同步滚动:编辑区和预览区同步滚动,预览区可独立滚动 -+ 目录大纲:预览区目录大纲快速跳转 -+ 文件加密:以 `.c.md` 结尾的文件视为加密文件 -+ 自动保存:文件编辑后自动保存,未保存文件橙色标题栏提醒(加密文档不自动保存) -+ 编辑优化:列表自动补全 -+ 粘贴图片:可快速粘贴剪切板里面的图片,可作为文件或 Base64 形式插入 -+ 嵌入附件:可以添加附件到文档,点击在系统中打开 -+ 代码运行:支持运行 JavaScript、PHP、nodejs、Python、bash 代码 -+ 待办列表:支持显示文档中的待办进度,点击可快速切换待办状态 -+ 快速打开:可使用快捷键打开文件切换面板,以便快捷打开文件,标记的文件,全文搜索文件内容 -+ 内置终端:支持在编辑器打开终端,快速切换当前工作目录 -+ 公式解析:支持输入 katex 公式代码 -+ 样式风格:Markdown 使用 GitHub 风格样式和特性 -+ 数据仓库:可定义多个数据位置以便文档分类 -+ 外链转换:将外链或 BASE64 图片转换为本地图片 -+ HTML 解析:可以直接在文档里面使用 HTML 代码,也可以使用快捷键粘贴复制 HTML 为 Markdown -+ docx 导出:后端使用 pandoc 做转换器 -+ TOC 支持:生成 TOC 在需要生成目录的地方写入 `[toc]{type: "ol", level: [1,2,3]}` 即可 -+ 编辑表格单元格:双击表格单元格即可快速编辑 -+ 复制标题链接:复制标题链接路径到剪切板,便于插入到其他文件 -+ 嵌入小工具:文档支持内嵌 HTML 小工具 -+ 嵌入 Plantuml 图形:需要安装 Java,graphviz -+ 嵌入 drawio 图形:文档支持内嵌 drawio 图形 -+ 嵌入 ECharts 图形:在文档中嵌入 Echarts 图形 -+ 嵌入 Mermaid 图形:在文档中嵌入 Mermaid 图形 -+ 嵌入 Luckysheet 表格:在文档中嵌入 Luckysheet 表格 -+ 嵌套列表转脑图展示:可将嵌套列表用脑图的方式展示 -+ 元素属性书写:可自定义元素的任意属性 -+ 表格解析增强:表格支持表格标题多行文本,列表等特性 -+ 文档交叉链接跳转:支持在文档中引入其他文档,互相跳转 -+ 脚注功能:支持在文档中书写脚注 -+ 自定义插件:支持编写 JavaScript 插件拓展编辑器功能。插件放置在 `主目录/plugins` 中,文档待完善 +- 同步滚动:编辑区和预览区同步滚动,预览区可独立滚动 +- 目录大纲:预览区目录大纲快速跳转 +- 文件加密:以 `.c.md` 结尾的文件视为加密文件 +- 自动保存:文件编辑后自动保存,未保存文件橙色标题栏提醒(加密文档不自动保存) +- 编辑优化:列表自动补全 +- 粘贴图片:可快速粘贴剪切板里面的图片,可作为文件或 Base64 形式插入 +- 嵌入附件:可以添加附件到文档,点击在系统中打开 +- 代码运行:支持运行 JavaScript、PHP、nodejs、Python、bash 代码 +- 待办列表:支持显示文档中的待办进度,点击可快速切换待办状态 +- 快速打开:可使用快捷键打开文件切换面板,以便快捷打开文件,标记的文件,全文搜索文件内容 +- 内置终端:支持在编辑器打开终端,快速切换当前工作目录 +- 公式解析:支持输入 katex 公式代码 +- 样式风格:Markdown 使用 GitHub 风格样式和特性 +- 数据仓库:可定义多个数据位置以便文档分类 +- 外链转换:将外链或 BASE64 图片转换为本地图片 +- HTML 解析:可以直接在文档里面使用 HTML 代码,也可以使用快捷键粘贴复制 HTML 为 Markdown +- docx 导出:后端使用 pandoc 做转换器 +- TOC 支持:生成 TOC 在需要生成目录的地方写入 `[toc]{type: "ol", level: [1,2,3]}` 即可 +- 编辑表格单元格:双击表格单元格即可快速编辑 +- 复制标题链接:复制标题链接路径到剪切板,便于插入到其他文件 +- 嵌入小工具:文档支持内嵌 HTML 小工具 +- 嵌入 Plantuml 图形:需要安装 Java,graphviz +- 嵌入 drawio 图形:文档支持内嵌 drawio 图形 +- 嵌入 ECharts 图形:在文档中嵌入 Echarts 图形 +- 嵌入 Mermaid 图形:在文档中嵌入 Mermaid 图形 +- 嵌入 Luckysheet 表格:在文档中嵌入 Luckysheet 表格 +- 嵌套列表转脑图展示:可将嵌套列表用脑图的方式展示 +- 元素属性书写:可自定义元素的任意属性 +- 表格解析增强:表格支持表格标题多行文本,列表等特性 +- 文档交叉链接跳转:支持在文档中引入其他文档,互相跳转 +- 脚注功能:支持在文档中书写脚注 +- 自定义插件:支持编写 JavaScript 插件拓展编辑器功能。插件放置在 `主目录/plugins` 中,文档待完善 ## 界面截图 + ![截图](./help/2.png) ![截图](./help/3.png) ![截图](./help/4.png) ## 更新日志 + [最新发布](https://github.com/purocean/yn/releases) ### [v3.6.3](https://github.com/purocean/yn/releases/tag/v3.6.3) 2021-09-09 diff --git a/help/FEATURES.md b/help/FEATURES.md index 0d3d245e..9e4f1ee3 100644 --- a/help/FEATURES.md +++ b/help/FEATURES.md @@ -1,20 +1,24 @@ # Yank-Note 特色功能使用说明 ## TOC 生成 + 需要生成目录的地方写入 `[toc]{type: "ul", level: [1,2,3]}` 可以控制目录样式 `ul` 或 `ol` 和级别 [toc]{type: "ol", level: [2,3]} ## 系统配置 + 1. 用户数据目录存放在 `/yank-note` 下面 1. 配置文件 `` ## 多仓库 + 1. 系统默认有一个 `main` 仓库,默认位于 `/yank-note/main` 1. 在配置文件 `` 中可以配置多个仓库,或者自定义 `main` 仓库路径 ## 文件管理 + 右键目录树可看到文件相关操作选项。 进行删除文件/目录操作后,文件并没有真正删除,还可以从 `/yank-note/trash` 目录下面恢复 @@ -25,14 +29,17 @@ + [x] ~~2021-06-06 10:27~~ TEST3 ## 加密文档 + 1. 以 `.c.md` 结尾的文档视为加密文档,可以用来保存机密的信息。 2. 加密和解密过程均在前端完成。 3. 请务必保管好文档密码,密码一旦丢失就只能自己暴力破解了。 ## 脚注功能 + 支持使用脚注[^1]语法[^2] ## 思维导图 + 只需要在列表根节点加上 `{.mindmap}` 即可。 + 中心节点{.mindmap} @@ -112,6 +119,7 @@ journey ``` ## Plantuml 图形解析 + 系统需要有 Java 环境,并安装有 graphviz 示例如下 @@ -120,6 +128,7 @@ a -> b @enduml ## 表格增强 + 此功能使用 [markdown-it-multimd-table](https://github.com/RedBug312/markdown-it-multimd-table) 实现 支持在表格中使用多行文本和列表。支持表格说明渲染 @@ -135,6 +144,7 @@ Test | Test [测试表格] ## Katex 公式解析 + 此功能由 [markdown-it-katex](https://github.com/waylonflinn/markdown-it-katex) 插件提供 $$\begin{array}{c} @@ -151,6 +161,7 @@ $\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{ $\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} = \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} = 4 \pi \rho$ | _wha?_ ## 运行代码 + 支持运行 `JavaScript` `PHP` `nodejs` `Python` `bash` `bat` 代码。 此功能执行外部命令实现,所以需要安装相应环境。 @@ -188,11 +199,13 @@ REM --run-- ``` ## 集成终端 + 1. 使用 `Alt/Option + T` 或者点击状态栏 **切换终端** 菜单唤起集成终端 1. 支持在编辑器中选中一段代码后按下 `Shift + Alt/Option + R` 直接在终端中运行命令。免去复制粘贴。 1. 切换内置终端工作目录到当前目录 `右键目录` ## 小工具 + 支持在文档中嵌入 HTML 小工具。 HTMl代码块第一行需要包含以 `--applet--` 字符串,其余字符串作为小工具标题,示例如下 @@ -234,6 +247,7 @@ function run (type) { ``` ## ECharts 图形 + Js 代码块第一行包含以 `--echarts--` 字符串会被解析成 ECharts 图形,示例如下 ```js @@ -315,7 +329,9 @@ chart.setOption({ ``` ## 嵌入 Draw.io 图形 + ### 嵌入 xml + xml 代码块 第一行注释需要有 `--drawio--` 文字 ```xml @@ -323,6 +339,7 @@ xml 代码块 第一行注释需要有 `--drawio--` 文字 ``` ### 嵌入本地 drawio 文件 + 链接属性 `link-type` 值需要是 `drawio` 字符串。使用链接的形式也不会影响其他 Markdown 解析器解析。 ```markdown @@ -330,6 +347,7 @@ xml 代码块 第一行注释需要有 `--drawio--` 文字 ``` ## 嵌入 Luckysheet 表格文件 + 链接属性 `link-type` 值需要是 `luckysheet` 字符串。使用链接的形式也不会影响其他 Markdown 解析器解析。 ```markdown @@ -381,11 +399,13 @@ xml 代码块 第一行注释需要有 `--drawio--` 文字 查看 Readme | Alt + H | Option + H ## 元素属性书写 + 此功能使用 [markdown-it-attrs](https://github.com/arve0/markdown-it-attrs) 实现 示例红色文字: **test**{style="color:red"} ## 命令行参数 + 在向别人交接文档的时候,可以使用脚本,自定义命令行参数启动程序,方便对方查看文档。 名称 | 作用 | 默认值 | 说明 | 示例 @@ -399,6 +419,7 @@ xml 代码块 第一行注释需要有 `--drawio--` 文字 --init-file | 加载文件路径 | 无 | 文件路径,相对于仓库路径 | --init-file='/1.md' ## 其他 + 1. 图片默认会渲染成块元素并居中,背景色透明 + 如果要显示为行内元素,可以在图片链接参数后面追加 `.inline` 如:![](mas_en.svg?.inline) + 如果要给图片添加白色背景优化展示效果(针对某些透明图片),可以在图片链接参数后面追加 `.bgw` 如:![](mas_en.svg?.inline.bgw)