1 Star 0 Fork 26

bugman / yn

forked from 洋子 / yn 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Yank Note Markdown 编辑器

一款面向程序员的 Markdown 编辑器

[toc]{level: [2]}

截图

特色

  • 使用方便:使用 Monaco 编辑器(vscode 编辑器内核)编辑,针对 Markdown 文件添加了快捷键和补全规则
  • 兼容性强:资源保存本地,Markdown 文件可简单处理离线工作;拓展功能尽量用 Markdown 原有的语法实现
  • 高拓展性:可在文档中嵌入小工具、可运行的代码块、ECharts 图形、Plantuml 图形、Drawio 图形等
  • 支持加密:用来保存账号等隐私文件,文件可单独设置密码

注意事项

  • Yank Note 是一款针对程序员的 Markdown 编辑器,目标应用场景为在本机写文章,日志,笔记,小工具。
  • 为了更高的拓展性和方便性,Yank Note 牺牲了安全防护(命令执行,任意文件读写)。如果要用它打开外来 Markdown 文件,请务必仔细甄别文件内容是值得信任的
  • 如果要改造为对外的 Web 服务,本工具可能不太适合。或者请运行在可隔离控制的环境下。
  • 加密文件的加密解密操作均在前端完成,请务必保管好自己的密码。一旦密码丢失,就只能暴力破解了。

Yank-Note 2.0 开发计划

V2 项目看板

  • 项目更名为 Yank-Note
  • 前端界面可以拖动调整尺寸
  • 重构前端项目结构,便于拓展:引入 vuex,使用 async await 代替可怕的回调,规范文件接口
  • 暴露 Api 接口可以在文档中嵌入轻量应用,以便构建一些小工具
  • 使用 Electron 构建为桌面应用。不追求完全做成客户端,还是可以沿用 CS 架构。同样可以在浏览器中使用
  • 支持嵌入 draw.io 文档
  • 文件目录增加右键菜单
  • 支持打开多个文件
  • 支持使用快捷键打开常用文档
  • 全局剪切板功能
  • 拥有更友好的配置界面
  • 可以自定义快捷键

上手使用

  • 最新版本 下载对应平台应用即可
  • 创建文件,点击目录“创建”按钮
  • 在系统中打开文件/目录:Ctrl + 单击文件/目录
  • 删除文件/目录:Shift + 右键文件/目录
  • 重命名文件/目录:Ctrl + 右键文件/目录
  • 切换文档预览显示:Alt + V 或点击状态栏 切换预览 按钮
  • 切换编辑器自动换行:Alt + W 或点击状态栏 切换换行 按钮
  • 切换内置终端展示:Alt + O 或点击状态栏 切换终端 按钮
  • 切换内置终端工作目录到当前目录 Ctrl + Alt + 单击目录
  • 刷新目录树 双击目录空白区域
  • 将外链或 BASE64 图片转换为本地图片:Ctrl + Shift + 单击图片 Ctrl + Alt + L 转换所有外链图片到本地
  • 默认快捷键参考 vscode
    • 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
  • ECharts 图形支持 ECharts Js 代码块第一行需要包含以 --echarts-- 字符串,示例见 FEATURE.md
  • markdown 编辑器 monaco-editor
  • markdown 解析 markdown-it
  • GitHub 风格样式和特性 GitHub Flavored Markdown Spec
  • 待办列表 GitHub-style task lists
  • Plantuml 图形,需要安装 Java,graphviz markdown-it-plantuml
  • katex 公式解析 markdown-it-katex
  • 元素属性书写 markdown-it-attrs
  • 表格解析增强,支持表格标题多行文本,列表等特性 markdown-it-multimd-table
  • 内置终端 XTERM.JS node-pty

开发

依赖安装和编译比较麻烦,请保证自己有足够耐心且有科学上网的手段。

Windows

Windows 上安装 node-pty 需要费一番功夫,请参考 https://github.com/microsoft/node-pty#windows 配置编译环境。

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 2元
  2. yubingcen 0.1元

界面截图

截图 截图 截图 截图 截图

更新日志

最新发布

v2.0.0-beta8.2 2019-08-27

  1. 增加 2.0 计划
  2. Electron 打包
  3. 增加 HTML 小工具渲染
  4. 增加特色功能说明和示例
  5. 目录树自动定位文件
  6. 目录树增加右键菜单
  7. 目录树和集成终端增加拖动调整尺寸功能
  8. 使用自定义 UI 控件代替浏览器阻塞性弹出框,优化界面样式,提升交互体验
  9. 默认仓库数据和配置改为在 <home>/yank-note 下保存
  10. 重构前端代码便于拓展
  11. 前端重构文件接口
展开查看更多版本记录

v1.23.0 2019-07-09

  1. 增加转换所有外链图片到本地功能 Ctrl + Alt + L

v1.22.0 2019-05-20

  1. 增加粘贴 html 富文本功能 Ctrl + B + V
  2. 增加插入文档快捷键 Ctrl + Alt + I
  3. 修复 vue cli 3 打包错误
  4. 修复图片链接转义
  5. 搜索排除 node_modules
  6. 上传文件目录优化

v1.21.0 2019-05-03

  1. 调整抓取图片到本地的逻辑
  2. 优化目录树样式
  3. 目录树排除 node_modules
  4. eslint 规则调整

v1.20.0 2019-04-18

  1. 无功能变化,前端使用 vue cli 3

v1.19.0 2019-04-15

  1. 增加终端打开目录功能 Ctrl + Alt + 单击目录
  2. 增加刷新目录树功能 Ctrl + Alt + 单击目录

v1.18.2 2019-03-21

  1. 保存加密文件密码不一致时增加提示
  2. 修复样式问题

v1.18.1 2019-03-01

  1. 修复目录样式
  2. 修复代码块样式

v1.18.0 2019-02-28

  1. 代码块增加行号显示
  2. 支持统一文档锚点跳转
  3. 移除 Mermaid 支持
  4. 优化打印样式
  5. 优化行内代码样式

v1.17.0 2019-02-20

  1. 支持 ECharts 图形
  2. Ctrl + Alt + R 在内置终端中运行选中代码

v1.16.2 2019-02-18

  1. 文件树增加操作说明
  2. 新增/重命名文件后打开新文件

v1.16.1 2019-02-17

  1. 修复打印样式

v1.16.0 2019-02-16

  1. 增加 Readme 展示
  2. 处理终端退出逻辑

v1.15.1 2019-02-14

  1. 更新 UI
  2. 内置终端增加 windows 适配

v1.15.0 2019-02-13

  1. 增加内置终端
  2. 运行代码支持在内置终端运行

v1.14.0 2019-01-16

  1. 上传附件增加日期
  2. 快速跳转改用模糊搜索并高亮匹配项

v1.13.1 2019-01-14

  1. 修复 hr 标签样式

v1.13.0 2019-01-05

  1. 增加 toc
  2. 增加返回顶部按钮

v1.12.0 2019-01-03

  1. 增加连接行快捷键 Ctrl + J
  2. 增加转换大小写快捷键 Ctrl + K, Ctrl + U Ctrl + K, Ctrl + L

v1.11.0 2019-01-02

  1. 切换编辑器自动换行:Alt + W 或点击状态栏 切换换行 按钮

v1.10.0 2018-12-24

  1. 文件列表自然排序
  2. 文件目录增加子项目数量显示

v1.9.0 2018-11-12

  1. 增加切换文档预览功能

v1.8.0 2018-08-29

  1. 增加在系统中打开文件/目录功能 Ctrl + 双击文件/目录

v1.6 2018-08-22

  1. 修复部分样式不和谐
  2. 修复打开新文件编辑器滚动位置不正确
  3. 增加将外链或 BASE64 图片转换为本地图片功能
  4. 优化代码高亮在暗色主题下的展示
  5. 渲染链接默认在新标签打开

v1.5.2 2018-08-13

  1. 优化输入数字列表体验
  2. 增加直接插入回车和Tab的快捷键
  3. 确保文件最后有空行
  4. 文件跳转按照最近打开文件排序

v1.5.1 2018-08-06

  1. 修复打开上一次文件bug

v1.5 2018-08-06

  1. 增加状态栏
  2. 添加多仓库支持

v1.4 2018-08-02

  1. 增加全文搜索功能
  2. 修复公式定位问题

v1.3 2018-08-02

  1. 增加待办记录时间
  2. 增加 bat 脚本运行
  3. 优化使用体验

v1.2 2018-07-30

  1. 增加待办进度条展示

v1.1 2018-07-29

  1. 修复若干问题
  2. 增加附件插入
  3. 调整为暗色主题
  4. 图片新标签预览
  5. 增加文件筛选面板 Ctrl + p
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

Yank Note 一款面向程序员的 Markdown 笔记应用。支持加密文档,代码片段运行,内置终端,图表嵌入,HTML 小工具。 展开 收起
JavaScript
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/skygit/yn.git
git@gitee.com:skygit/yn.git
skygit
yn
yn
master

搜索帮助