# yn **Repository Path**: skygit/yn ## Basic Information - **Project Name**: yn - **Description**: Yank Note 一款面向程序员的 Markdown 笔记应用。支持加密文档,代码片段运行,内置终端,图表嵌入,HTML 小工具。 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://github.com/purocean/yn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 27 - **Created**: 2019-08-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Yank Note Markdown 编辑器 > 一款面向程序员的 Markdown 编辑器 [toc]{level: [2]} ![截图](./help/0.png) ## 特色 + **使用方便**:使用 Monaco 编辑器(vscode 编辑器内核)编辑,针对 Markdown 文件添加了快捷键和补全规则 + **兼容性强**:资源保存本地,Markdown 文件可简单处理离线工作;拓展功能尽量用 Markdown 原有的语法实现 + **高拓展性**:可在文档中嵌入小工具、可运行的代码块、ECharts 图形、Plantuml 图形、Drawio 图形等 + **支持加密**:用来保存账号等隐私文件,文件可单独设置密码 ## 注意事项 + Yank Note 是一款**针对程序员**的 Markdown 编辑器,目标应用场景为在本机写文章,日志,笔记,小工具。 + 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,**请务必仔细甄别文件内容是值得信任的**。 + 如果要改造为对外的 Web 服务,本工具可能不太适合。或者请运行在可隔离控制的环境下。 + 加密文件的加密解密操作均在前端完成,请**务必保管好自己的密码**。一旦密码丢失,就只能暴力破解了。 ## Yank-Note 2.0 开发计划 [V2 项目看板](https://github.com/purocean/yn/projects/2) + [x] 项目更名为 **Yank-Note** + [x] 前端界面可以拖动调整尺寸 + [x] 重构前端项目结构,便于拓展:引入 `vuex`,使用 `async await` 代替可怕的回调,规范文件接口 + [x] 暴露 Api 接口可以在文档中嵌入轻量应用,以便构建一些小工具 + [x] 使用 `Electron` 构建为桌面应用。不追求完全做成客户端,还是可以沿用 CS 架构。同样可以在浏览器中使用 + [x] 支持嵌入 `draw.io` 文档 + [x] 文件目录增加右键菜单 + [ ] 支持打开多个文件 + [ ] 支持使用快捷键打开常用文档 + [ ] 全局剪切板功能 + [ ] 拥有更友好的配置界面 + [ ] 可以自定义快捷键 ## 上手使用 + 在 [最新版本](https://github.com/purocean/yn/releases) 下载对应平台应用即可 + 创建文件,点击目录“创建”按钮 + 在系统中打开文件/目录:`Ctrl + 单击文件/目录` + 删除文件/目录:`Shift + 右键文件/目录` + 重命名文件/目录:`Ctrl + 右键文件/目录` + 切换文档预览显示:`Alt + V` 或点击状态栏 `切换预览` 按钮 + 切换编辑器自动换行:`Alt + W` 或点击状态栏 `切换换行` 按钮 + 切换内置终端展示:`Alt + O` 或点击状态栏 `切换终端` 按钮 + 切换内置终端工作目录到当前目录 `Ctrl + Alt + 单击目录` + 刷新目录树 `双击目录空白区域` + 将外链或 BASE64 图片转换为本地图片:`Ctrl + Shift + 单击图片` `Ctrl + Alt + L` 转换所有外链图片到本地 + 默认快捷键参考 [vscode](https://code.visualstudio.com/) + `Ctrl + X` 剪切所选/当前行 + `Ctrl + C` 复制所选/当前行 + `Ctrl + Z` 撤消 + `Ctrl + Shift + Z` 反撤消 + `Ctrl + /` 注释行 + `Ctrl + Shift + A` 注释段 + `Ctrl + K, Ctrl + X` 删除尾部空格 + `Alt + Click` 插入光标 + `Shift + Alt + ↑/↓` 在相邻行插入光标 + `Ctrl + U` 取消最后添加的光标 + `Shift + Alt + I` 在选中区的所有行的最后添加光标 + `Ctrl + D` 为下一个匹配项添加光标 + `Ctrl + F` 查找 + `Ctrl + H` 替换 + 自定义编辑器快捷键 + `Ctrl + P` 打开文件快速跳转面板 + `Ctrl + S` 保存文档 + `Ctrl + Enter` 强制插入新行,忽略预置补全规则 + `Shift + Enter` 强制插入 Tab,忽略预置补全规则 + `Ctrl + Shift + Up` 当前行上移 + `Ctrl + Shift + Down` 当前行下移 + `Ctrl + Shift + D` 重复当前行 + `Ctrl + Alt + D` 插入当前日期 + `Ctrl + Alt + T` 插入当前时间 + `Ctrl + Alt + F` 插入文件附件 + `Ctrl + Alt + I` 插入文档链接 + `Ctrl + J` 连接行 join lines + `Ctrl + K, Ctrl + U` 转换大写 + `Ctrl + K, Ctrl + L` 转换小写 + `Ctrl + Alt + R` 在内置终端里面运行选中内容 + `Ctrl + B + V` 粘贴 html 富文本 ## 特色功能 + 同步预览滚动,实现得较粗糙 + 目录大纲展示 + 文件加密:以 `.c.md` 结尾的文件视为加密文件 + 自动保存(加密文档不自动保存) + 列表自动补全 + 粘贴剪切板里面的图片 + 添加附件到文档 + 运行 PHP,nodejs,Python,bash 代码,**代码块第一行需要包含以 `--run--` 字符串,示例见 FEATURE.md,当然需要安装相关环境** + 文档支持内嵌 HTML 小工具,**HTMl代码块第一行需要包含以 `--applet--` 字符串,其余字符串作为小工具标题,示例见 FEATURE.md** + 文档支持内嵌 drawio 图形,示例见 FEATURE.md + 开启了 HTML 解析,可以直接在文档里面使用 HTML 代码 + 待办进度条 + 快速跳转文件,全文搜索文件内容 + 多仓库切换 + 生成 TOC 在需要生成目录的地方写入 `[toc]{type: "ol", level: [1,2,3]}` 即可 + docx 格式导出,**需要安装 [pandoc](https://pandoc.org/)** + ECharts 图形支持 [ECharts](https://echarts.baidu.com/) **Js 代码块第一行需要包含以 `--echarts--` 字符串,示例见 FEATURE.md** + markdown 编辑器 [monaco-editor](https://github.com/Microsoft/monaco-editor) + markdown 解析 [markdown-it](https://github.com/markdown-it/markdown-it) + GitHub 风格样式和特性 [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) + 待办列表 [GitHub-style task lists](https://github.com/revin/markdown-it-task-lists) + Plantuml 图形,**需要安装 Java,graphviz [markdown-it-plantuml](https://github.com/gmunguia/markdown-it-plantuml)** + katex 公式解析 [markdown-it-katex](https://github.com/waylonflinn/markdown-it-katex) + 元素属性书写 [markdown-it-attrs](https://github.com/arve0/markdown-it-attrs) + 表格解析增强,支持表格标题多行文本,列表等特性 [markdown-it-multimd-table](https://github.com/RedBug312/markdown-it-multimd-table) + 内置终端 [XTERM.JS](https://xtermjs.org/) [node-pty](https://github.com/Microsoft/node-pty) ## 开发 依赖安装和编译比较麻烦,请保证自己有足够耐心且有科学上网的手段。 ### Windows Windows 上安装 node-pty 需要费一番功夫,请参考 https://github.com/microsoft/node-pty#windows 配置编译环境。 ```bat REM Node 版本要求 12 v12.7.0 node -v REM 前端 cd frontend REM 安装依赖 yarn REM 打包 yarn run dist REM 开发 yarn run serve REM Electron 端 cd ../ REM 安装依赖 win-install.bat REM 打包 打包前请在前端目录运行打包命令 win-build.bat REM 开发 yarn run start ``` ### Liunx TODO 手头没有环境,待完善 ### OSX TODO 手头没有环境,待完善 ## 捐赠 如果我的工作对您有帮助,请我喝杯咖啡吧 ^_^。**附言可以留下您的 github 用户名或网站连接**。 微信 支付宝 支付宝红包 1. [wangyedong66](https://github.com/wangyedong66) 2元 1. [yubingcen](https://github.com/yubingcen) 0.1元 ## 界面截图 ![截图](./help/3.png) ![截图](./help/5.png) ![截图](./help/1.png) ![截图](./help/2.png) ![截图](./help/4.gif) ## 更新日志 [最新发布](https://github.com/purocean/yn/releases) ### [v2.0.0-beta8.2](https://github.com/purocean/yn/releases/tag/v2.0.0-beta8.2) 2019-08-27 1. 增加 2.0 计划 1. Electron 打包 1. 增加 HTML 小工具渲染 1. 增加特色功能说明和示例 1. 目录树自动定位文件 1. 目录树增加右键菜单 1. 目录树和集成终端增加拖动调整尺寸功能 1. 使用自定义 UI 控件代替浏览器阻塞性弹出框,优化界面样式,提升交互体验 1. 默认仓库数据和配置改为在 `/yank-note` 下保存 1. 重构前端代码便于拓展 1. 前端重构文件接口
展开查看更多版本记录 ### [v1.23.0](https://github.com/purocean/yn/releases/tag/v1.23.0) 2019-07-09 1. 增加转换所有外链图片到本地功能 `Ctrl + Alt + L` ### [v1.22.0](https://github.com/purocean/yn/releases/tag/v1.22.0) 2019-05-20 1. 增加粘贴 html 富文本功能 `Ctrl + B + V` 1. 增加插入文档快捷键 `Ctrl + Alt + I` 1. 修复 vue cli 3 打包错误 1. 修复图片链接转义 1. 搜索排除 node_modules 1. 上传文件目录优化 ### [v1.21.0](https://github.com/purocean/yn/releases/tag/v1.21.0) 2019-05-03 1. 调整抓取图片到本地的逻辑 1. 优化目录树样式 1. 目录树排除 node_modules 1. eslint 规则调整 ### [v1.20.0](https://github.com/purocean/yn/releases/tag/v1.20.0) 2019-04-18 1. 无功能变化,前端使用 vue cli 3 ### [v1.19.0](https://github.com/purocean/yn/releases/tag/v1.19.0) 2019-04-15 1. 增加终端打开目录功能 `Ctrl + Alt + 单击目录` 1. 增加刷新目录树功能 `Ctrl + Alt + 单击目录` ### [v1.18.2](https://github.com/purocean/yn/releases/tag/v1.18.2) 2019-03-21 1. 保存加密文件密码不一致时增加提示 1. 修复样式问题 ### [v1.18.1](https://github.com/purocean/yn/releases/tag/v1.18.1) 2019-03-01 1. 修复目录样式 1. 修复代码块样式 ### [v1.18.0](https://github.com/purocean/yn/releases/tag/v1.18.0) 2019-02-28 1. 代码块增加行号显示 1. 支持统一文档锚点跳转 1. 移除 `Mermaid` 支持 1. 优化打印样式 1. 优化行内代码样式 ### [v1.17.0](https://github.com/purocean/yn/releases/tag/v1.17.0) 2019-02-20 1. 支持 `ECharts` 图形 1. `Ctrl + Alt + R` 在内置终端中运行选中代码 ### [v1.16.2](https://github.com/purocean/yn/releases/tag/v1.16.2) 2019-02-18 1. 文件树增加操作说明 1. 新增/重命名文件后打开新文件 ### [v1.16.1](https://github.com/purocean/yn/releases/tag/v1.16.1) 2019-02-17 1. 修复打印样式 ### [v1.16.0](https://github.com/purocean/yn/releases/tag/v1.16.0) 2019-02-16 1. 增加 Readme 展示 1. 处理终端退出逻辑 ### [v1.15.1](https://github.com/purocean/yn/releases/tag/v1.15.1) 2019-02-14 1. 更新 UI 1. 内置终端增加 windows 适配 ### [v1.15.0](https://github.com/purocean/yn/releases/tag/v1.15.0) 2019-02-13 1. 增加内置终端 1. 运行代码支持在内置终端运行 ### [v1.14.0](https://github.com/purocean/yn/releases/tag/v1.14.0) 2019-01-16 1. 上传附件增加日期 1. 快速跳转改用模糊搜索并高亮匹配项 ### [v1.13.1](https://github.com/purocean/yn/releases/tag/v1.13.1) 2019-01-14 1. 修复 hr 标签样式 ### [v1.13.0](https://github.com/purocean/yn/releases/tag/v1.13.0) 2019-01-05 1. 增加 toc 1. 增加返回顶部按钮 ### [v1.12.0](https://github.com/purocean/yn/releases/tag/v1.12.0) 2019-01-03 1. 增加连接行快捷键 `Ctrl + J` 1. 增加转换大小写快捷键 `Ctrl + K, Ctrl + U` `Ctrl + K, Ctrl + L` ### [v1.11.0](https://github.com/purocean/yn/releases/tag/v1.11.0) 2019-01-02 1. 切换编辑器自动换行:`Alt + W` 或点击状态栏 `切换换行` 按钮 ### [v1.10.0](https://github.com/purocean/yn/releases/tag/v1.10.0) 2018-12-24 1. 文件列表自然排序 1. 文件目录增加子项目数量显示 ### [v1.9.0](https://github.com/purocean/yn/releases/tag/v1.9.0) 2018-11-12 1. 增加切换文档预览功能 ### [v1.8.0](https://github.com/purocean/yn/releases/tag/v1.8.0) 2018-08-29 1. 增加在系统中打开文件/目录功能 `Ctrl + 双击文件/目录` ### [v1.6](https://github.com/purocean/yn/releases/tag/v1.6) 2018-08-22 1. 修复部分样式不和谐 1. 修复打开新文件编辑器滚动位置不正确 1. 增加将外链或 BASE64 图片转换为本地图片功能 1. 优化代码高亮在暗色主题下的展示 1. 渲染链接默认在新标签打开 ### [v1.5.2](https://github.com/purocean/yn/releases/tag/v1.5.2) 2018-08-13 1. 优化输入数字列表体验 1. 增加直接插入回车和Tab的快捷键 1. 确保文件最后有空行 1. 文件跳转按照最近打开文件排序 ### [v1.5.1](https://github.com/purocean/yn/releases/tag/v1.5.1) 2018-08-06 1. 修复打开上一次文件bug ### [v1.5](https://github.com/purocean/yn/releases/tag/v1.5) 2018-08-06 1. 增加状态栏 1. 添加多仓库支持 ### [v1.4](https://github.com/purocean/yn/releases/tag/v1.4) 2018-08-02 1. 增加全文搜索功能 1. 修复公式定位问题 ### [v1.3](https://github.com/purocean/yn/releases/tag/v1.3) 2018-08-02 1. 增加待办记录时间 1. 增加 bat 脚本运行 1. 优化使用体验 ### [v1.2](https://github.com/purocean/yn/releases/tag/v1.2) 2018-07-30 1. 增加待办进度条展示 ### [v1.1](https://github.com/purocean/yn/releases/tag/v1.1) 2018-07-29 1. 修复若干问题 1. 增加附件插入 1. 调整为暗色主题 1. 图片新标签预览 1. 增加文件筛选面板 Ctrl + p