我使用 Markdown 来记录笔记大概有四五年了,尝试了很多不同的笔记软件和编辑器,包括为知笔记、有道云笔记、MarkdownPad、初次惊艳的 Typora、StackEdit 和作业部落等。最后觉得这些笔记和编辑器并不能满足自己的需求。个人认为,Markdown 需要预览是对 Markdown 的一个最大误解。于是,我自己基于 Qt 搞了一个笔记软件—— VNote。
VNote 的特性包括:
以下是 VNote 编辑时的一个界面:
目前 VNote 处于 1.6 版本,正在活跃开发中,欢迎大家尝试反馈!
下面附上一些之前写的关于 VNote 设计理念和特性的文章:
谢谢!
上面这张图片为了演示语法高亮特性的,所以把几乎所有Markdown元素都放在一起,显得有点凌乱;而且这个图片是之前一个版本的截图,非本地图片还不能实时预览。
下面附上一张最新版我自己的笔记截图。感谢大家提的意见!行高问题的确是一个要注意的问题。另外,还有其他一些特性希望大家能去看看项目主页的介绍或者文章里面的介绍,或者就有那么一两个特性把您打动了呢?转角也能遇到爱,是吧? :) 再次感谢大家!!!
上图中把我们程序员里面非常方便的highlight trailing spaces特性拿过来了,因为Markdown里面往往是空两个换行实现强制换行。
一个操作录屏:
附上微信公众号 VNote笔记,后面用于推送使用技巧和更新。还在观望的V友可以考虑关注一个,地铁上无聊的时候看看~~
项目网站: VNote
支持丰富的导出选项(比如多合一PDF)以及强大的全文搜索啦!
102
clino 2017-06-27 10:56:13 +08:00
@tamlok 用 qtcreator 编译又碰到一个问题:
/home/zhangclb/opt/Qt/5.9/gcc_64/include/QtGui/qopengl.h:139: error: GL/gl.h: 没有那个文件或目录 这个要装相关包? 但是现在的方法又不是用安装包的方式,所以这个要怎么解决呢? |
103
tamlok OP @clino 是要安装相关包。网上查了一下,试试执行一下: sudo apt-get install mesa-common-dev libglu1-mesa-dev -y
|
104
clino 2017-06-27 11:07:19 +08:00
|
107
kancloud 2017-06-27 11:27:03 +08:00
根据我们的经验,语法高亮仍然不能替代实时预览,看云也曾经在这个问题上纠结过,当然还有一个关键的问题是 使用扩展标签的时候 必须要预览才能有效查看。
|
108
zangbob 2017-06-27 11:51:31 +08:00
bug 反馈:
VNote_win_x86_portable_1.6.zip / Win7 32 位下,新建 aa.md,写入任意文字后保存,右键 “保存更改并阅读”,弹出 Vnote 已停止工作,并建议联机检查 balabala...,重新打开,所以之前已保存的皆不可点击,一点击同样出错。 持续关注,期待稳定版本并能持续更新。。。不要像本坛某 markdown 软件那样。。。 --------------------------------------------------- 问题签名: 问题事件名称: APPCRASH 应用程序名: VNote.exe 应用程序版本: 0.0.0.0 应用程序时间戳: 59504885 故障模块名称: ig4icd32.dll 故障模块版本: 8.15.10.1995 故障模块时间戳: 4af4adea 异常代码: c0000005 异常偏移: 00032900 OS 版本: 6.1.7601.2.1.0.256.48 --------------------------------------------------- |
109
tamlok OP @kancloud VNote 会预览图片和公式等。其实主要目的是让用户知道整篇文档的结构,能有效抓住信息,而不是白纸黑字。另外,为了兼容,VNote 应该不会采用过多扩展语法。主要看用户是喜欢什么类型的吧。谢谢回复。
|
110
tamlok OP @zangbob 谢谢反馈!可能是 opengl 或显卡驱动问题?试试命令行加--disable-gpu 启动 VNote.exe 看看?一个判断标准是您可以新建一个后缀不是 md 的非 markdown 笔记,然后看看编辑和阅读有没有问题。如果只是 md 文件阅读的时候有问题,一般会是这个情况。方便的话可以 github 或 qq 一起讨论解决。
|
111
zangbob 2017-06-27 12:19:34 +08:00
|
112
tamlok OP @zangbob 应该是 Intel 集显的问题,不支持 OpenGL,后面我弄一个没有 opengl 的版本,麻烦您到时候再试试哈!谢谢!
|
113
SuperMild 2017-06-27 12:25:31 +08:00 1
看来做一个这样的软件不容易啊,有无数的小问题需要解决,楼主辛苦了
|
114
porrat 2017-06-27 12:35:19 +08:00
184.5 MiB [##########] /QtWebEngineCore.framework
6.4 MiB [ ] /QtWidgets.framework 5.8 MiB [ ] /QtCore.framework 5.2 MiB [ ] /QtGui.framework 3.7 MiB [ ] /QtQml.framework 3.7 MiB [ ] /QtQuick.framework 1.3 MiB [ ] /QtNetwork.framework 360.0 KiB [ ] /QtSvg.framework 352.0 KiB [ ] /QtPrintSupport.framework 320.0 KiB [ ] /QtPositioning.framework 276.0 KiB [ ] /QtWebEngineWidgets.framework 152.0 KiB [ ] /QtWebChannel.framework 体积这么大,既然是用 Web 技术写的,还不如直接用 Electron。 |
116
tamlok OP @porrat 体积大是 Qt 的病呀。用 qtwebengine 主要是为了阅读 html,因为 qt 的 textbrowser 不支持 js 和全部 css 样式。其他部分都是 cpp 实现的。效率感觉还是比 eletron 好的不是一点点。之前我用过 cmd,封装 web 的,几个文件来回切换的时候,简直慢到没朋友。:)
|
119
Les1ie 2017-06-27 14:13:54 +08:00
感受下用 vim 写 markdown 的感觉...![]( https://vgy.me/F7ki6G.png)
|
120
tamlok OP @Les1ie 哈哈😄 VNote 就是从我用 Vim 写了一个多月 md 期间获得灵感的。这是我用 vim 写 md 的情景:http://www.jianshu.com/p/fa8c56e1aa52
|
121
tamlok OP @Les1ie 原来 V2EX 是支持 md 评论的?试试链接 [Vim]( http://www.jianshu.com/p/fa8c56e1aa52)
|
122
endoffight 2017-06-27 14:46:28 +08:00
能不能支持 http://flowchart.js.org
|
124
tamlok OP @mianju 这个已经支持了,在 markdown 菜单里面启用即可,因为 mathjax 包比较大,所以需要联网哦。
|
125
tamlok OP @endoffight 目前已经支持 mermaid,也能画流程图。这两个之间哪个比较好呢?
|
126
prasanta 2017-06-27 15:18:19 +08:00
为什么实时预览是对 Markdon 的一种误解, 可以详细说说么
|
127
tamlok OP @prasanta hi,我觉得 md 设计之处就是用简单的标记来使得纯文本编辑易读,而且能输出漂亮的排版。所以预览其实是用来阅读的,编辑的时候完全不需要。md 本来就是为了专注和化繁为简的,加上预览反倒使得编辑分心了。具体您可以看一下我这篇文章里说到设计 vnote 的初衷( http://www.jianshu.com/p/3b8e0e70cd48)。不过纯粹是个人意见哈!:)
|
128
kancloud 2017-06-27 16:14:32 +08:00
@tamlok 预览确实是为了阅读的效果,但编辑的时候也要知道实际的阅读效果是什么的吧(事实上很多 md 编辑器都支持预览 不过也可以关闭 其实 vscode 的 md 预览效果挺不错的) 至于分心的问题 只要能关闭预览 就没问题。
|
129
yaokwok 2017-06-27 16:17:18 +08:00
很不错,支持一个
|
130
tamlok OP @kancloud 问题是很多编辑器关闭预览后,编辑界面能呈现的信息有多少。VNote 在保留 md 纯文本特性的前提下尽可能让编辑时效果和阅读时一致。比如编辑的时候就能加粗 /斜体 /行内代码 /链接 /代码块之类的都以差不多的效果显示出来,图片和公式也能原地预览显示,这样就能得到一个折中(typora 把这个做到了另一个极端),尽可能减少 md 的阅读和编辑的割裂感。VNote 目前除了公式预览还没有实现,其他基本都做到了。您可以试着用一段时间。反正我用了后,反而喜欢待在编辑模式,很少停留在阅读模式了。谢谢!
|
132
endoffight 2017-06-27 17:09:00 +08:00
@tamlok flowchart.js 属于那种小而美的
|
133
tamlok OP @endoffight ok,应该不是问题,后面我看一下。后面也会支持 plantuml,大而全的😁谢谢支持
|
134
tamlok OP @endoffight 您好!目前 VNote 已经支持 Flowchart.js 了,( https://github.com/tamlok/vnote/commit/f911c60c79d82283c2ada3daaef8edec26f6e313),需要的话可以下载最新构建版本,或者等待下一个版本发布。:) 谢谢支持!
|
135
sadhen 2017-07-07 00:29:46 +08:00 1
@tamlok 非常赞,跟我心里面构思的 Markdown 编辑器是一样的
之前也动手做了 https://github.com/sadhen/marketo 但是工作之后就没有坚持。Qt 也是我很喜欢的技术,有机会参与一下开发。 |
136
tamlok OP @sadhen 是呀,感觉和您的那个很多地方重合,比如代码块实时语法高亮!不过 qt 并没有提供这样高完成度的控件,只能自己用些小技巧来实现!😁
|
137
acdea4effdbb420d 2017-08-12 23:18:31 +08:00
实在是丑
|
138
tamlok OP @acdea4effdbb420d 谢谢您的意见!欢迎 PR 改进 UI 呀!对于开源程序,还是一个人的开源程序,还是一个急就章等着要用的开源程序,请多多宽容:) 谢谢
|
139
mozutaba 2017-08-16 04:46:39 +08:00
不支持查找啊,只能文本内查找
|
141
tamlok OP @clino Hi,目前 VNote 支持作为一个普通的 md 编辑器使用了,能作为 md 文件的默认打开方式。欢迎尝试 1.8 版,https://github.com/tamlok/vnote/releases/
|
143
tamlok OP @Immortal Hi, Linux 终于打包好为 AppImage 格式了,您可以下载尝试一下,http://pan.baidu.com/s/1jI5HROq
|
145
acgnsstech 2017-11-23 11:50:55 +08:00
功能很好 就是界面感觉有点古老!
AD 一哈我的 mdoc.vip |
146
civilians 2017-11-30 19:11:11 +08:00
提点没那么专业的建议吧,中文没有全覆盖啊,编辑界面右键菜单好多都还是英文菜单..
|
147
tamlok OP @civilians 那些是 qt 的默认菜单,不知道为啥都汉化不了。后面会找时间好好看一下。谢谢支持!
|
148
FantasyPupil 2018-01-11 09:56:36 +08:00 1
看起来很不错啊!
|
149
snailjw 2018-06-22 09:29:39 +08:00
觉得可以试试,看着挺好
|
150
Jonithan 2018-12-28 22:28:39 +08:00
非常感谢作者的奉献,作者大大有没有可能考虑其他笔记导入的功能啊😂想把印象笔记里的笔记都导进去
|
151
tamlok OP @Jonithan vnote 使用的就是普通的文件夹结构加上一个 json 索引,所以其实导入就是 Evernote 的导出,写个 python 脚本把 Evernote 的笔记按结构导出并生成一个 json 索引即可。有能力的用户可以尝试一下。
|
153
Jonithan 2018-12-29 09:56:09 +08:00
@tamlok 对比了下 Evernote 导出的 enex 格式和 html 格式,html 的比较简单易懂,enex 有图片资源的话好像用了哈希
|
156
walkinrain 2019-01-11 23:17:00 +08:00
@tamlok 个人提点小的看法,如果觉得有道理,可以考虑考虑。觉得不符合理念,当我乱说好了。
首先,优点,软件整体感觉不错,貌似主题修改刷新存在一些瑕疵,但是一旦配置完全后问题不大。 个人是把 vnote 作为 markdown 编辑器使用的,作为笔记,纯 md 还是局限了点,当然也有不少优点。 看法: 1 预览:其实,程序员也是很懒的,有预览并不一定会反感,特别前期语法不熟练的时候。可以考虑简便方案,不一定非要实时预览,也不一定非要 html 预览。建议搞个 html 预览,一个 png 预览,用保存时刷新即可。至于大小,版面什么,建议 html 预览采用一个标准的 html 文件,png 预览,则采用小的多的侧边栏形式。 既然编辑器本身已经有了分割功能,直接将标准 html 放到分割页,应该不算大改动。而 png 预览,可考虑放在工具栏目中。 2 笔记概念: 笔记本身概念不错,但是和 onenote 以及印象一类的比还是有缺陷的,不妨将其作为辅助概念。既然是使用文件夹作为笔记结构基础,不妨直接指定软件本身某个子目录为默认笔记,不要不配置每次开启都弹出要建立笔记。 3 如果作为一个 markdown 编辑器,文件菜单缺乏新建 md 文件选项。文件菜单最好添加一些编辑器类的菜单,如新建,保存,打开文件夹(比如打开了某个文件夹,就默认为笔记形式,这一个是一种笔记推广形式) 4 笔记侧边栏:建议可以隐藏,如果需要使用笔记功能,可以菜单打开。 5 绿色绿色绿色:不建议配置写在系统目录下,建议直接在本地目录下建立 User 配置。 个人使用 md 主要目的,是写点东西,比如学习笔记,readme 等等,用 md 很方便,显示出来又不难看。本身又是基于文本的形式。 作为个人项目,不建议在所见即所得上花费太多时间,简单的如标题,加粗等不破坏文本结构的增加所见即所得。图片类可考虑快速预览形式,如鼠标指向显示。其他的通过页面预览来实现。一方面保持文本本身的清洁,另一方面在语法不熟的前提下,也能快速修正语法。 个人希望能在 code,样式等方面更易扩展点。毕竟写 md 的很多人,还是对美观又追求的,这种追求也不是无限的,容易找到或者定制自己喜欢的排版即可,不然直接 txt 好了。 尽量用 md 标准语法,其他的靠插件扩展。更容易接入插件,更方便定制样式,再加上本身的笔记辅助功能,我觉得这种定位可能更好一点。 标准语法,速度快,流畅,界面简洁高配置度,插件易扩展,样式易定制,绿色,轻便,启动快。 以上个人拙见,仅供参考。 |
157
tamlok OP @walkinrain hi
1. 实时预览后面再考虑了,优先级比较低; 2. vnote 有浏览器面板,支持浏览系统文件系统,也支持直接拖放一个文件夹到 vnote 里面打开; 3. 这个后面可以完善一下文件菜单; 4. 快捷键 ctrl-e e 或者工具栏上面的扩展按钮,即可最大化编辑区; ctrl-e t 隐藏工具栏; 5. 文档有介绍如何使得 vnote 读取可执行文件目录下面的配置文件。默认写到用户目录是考虑三个 pc 平台以及程序和数据分离;(比如 linux 安装到 usr/bin 目录,把数据写到这个下面感觉不太好) 6. vnote 不喜欢 typora 那种矫枉过正的所见即所得,也不喜欢双边实时预览,采用的是一种折中的方法:所有文本都会原样保留显示,通过语法高亮和适当的原地预览来辅助信息显示。 其实 vnote 相对于其他 md 编辑器或者笔记的强大之处在于搜索 /通用入口 /快捷键等等借鉴于代码编辑器里面的优秀特性。 谢谢! |
158
walkinrain 2019-01-12 18:57:04 +08:00
@tamlok
a. 可否提供同一文件分别展示在分割窗口中?这个需求估计程序员会挺喜欢。(说实话,我就是偷偷打着一个文件分割 2 边,一边预览一边写的主意,O(∩_∩)O ) b. 最大化后,无法创建新的 md 文件。打开菜单默认*文件也不太适合。 c. 关于笔记的设想,设立新的文件后缀,包含笔记所需要的信息,类似 ms 的 sln 文件,这样就无需在配置中记录笔记目录(可考虑记录相对路径增加变动的兼容性)。 d. md 文件拖放到 vNote 中,自动阅读模式,不受配置中打开文件为编辑模式控制。 e. 关于实时预览,我的意思是是否可考虑部分内容(占地方比较严重的内容),提供非实时选项。比如图片,公式,当鼠标指向的时候再浮动显示。这样更加保持文本原有结构和形式,也利于插件扩展。 f. 样式变动基本需要重启程序,这点有点问题。可否优化一下。毕竟前期调优的时候,动辄几十个模板,这么切换来切换去很头疼。虽然程序启动还算快。 g. 能否去掉不建立笔记本,每次打开弹出建立笔记本模式窗口。 h. 绿色问题,按照文档所述,在程序位置建立了配置。发现软件根目录下目录较多,可考虑精简或者归类一下。比如配置放在 User 目录下。如果考虑平台兼容性,可考虑首次运行时提示(本地目录或者默认系统目录下均无配置,提示建立配置)。可能是我个人喜好问题,对默默创建一堆东西的程序,都觉得不爽。 笔记功能有点意思,比较适合代码知识库建立。不过目前我的需求度不够,等日后有机会研究了再出馊主意。 |
159
sjkww 2019-02-23 23:57:47 +08:00
想知道幻词添加了快捷键之后怎么使用快捷键啊,就一个键,按了也没有用……
|
160
tamlok OP |
161
walkinrain 2019-04-08 01:14:54 +08:00
@tamlok
win 下的一些使用问题请教: 请问一下,vnote 有没有命令行参数?我看了一下 code,由于对 qt 和 c++不熟,只发现了个-d 还有没有其他命令行方式? 用命令行方式,直接提供一个 md 文件可以打开。直接提供一个目录,貌似没有什么效果。 一个不算严重的小问题: 表格编辑中,有光标乱跳现象,8.02 秒,删除秒,光标跳到.后,添加一个汉字,光标跳到 2 后。 | A 定分 | U 定分 | 速度 | 参数 | 输入 | 输出 | 时间 [^1] | | :---: | :---: | :--: | :-----: | :--: | :-: | :-------: | | ❌ | ✅ | □□ | 长度列表 | str | str | 8.02 秒 | 其实表格实时变化的需求并不太大吧?改到表格完成,光标移开后再变化也行吧? ==========================下面是些幻想和建议=========================== 最近用了一段时间 vnote,挺不错,由于是功能性建议,我就在这里乱说说,你看有没有什么能用的上的。 1. vnote 笔记本概念就是每个目录下增加了一个_vnote.json 文件,目录浏览器面板感觉意义真的不大,索性直接统一到笔记中,可以一键将笔记本转换为文件夹,一键将文件夹转换为笔记本。只需要维护一个主目录列表即可。 2. 小推车是个有意思的概念,但是我没想明白你对这个概念的想法是什么。我试验过,小推车内容在 vnote 重启后就消失了。可否将小推车设计为一个非易失的文件路径列表,这就类似于一个 md 文件收藏夹了。 3. 目录浏览器面板,除了拖进文件夹至主界面,几乎无所用,收藏功能其实和笔记本功能有所重叠。 4. 既然主推笔记,笔记本,搜索等笔记概念,快速的笔记,笔记本转换,收藏就该是主导方向,现在文件夹转笔记本,md 文件收藏到笔记本内,功能性都很弱。 -------------------------------------------------------------------------------------------------------------------- 以上的 1-4 的建议其实是一体的,包含我对 vnote 笔记本,文件夹,等概念综合性整合的建议。 具体实现建议: a. 不再强制区分笔记本与文件夹,笔记本面板增加一个文件夹树形控件,显示所有笔记本列表(非易失),所有打开的目录(易失),所有收藏的目录(非易失),分别用笔记本,空文件夹,实文件夹图标区分,该文件夹控件中右键菜单可转换笔记本为文件夹,文件夹转换为笔记本(弹窗是否保留图片至本地目录)。 b. 笔记本面板的笔记文件列表中的 md 文件的右键菜单添加收藏至 xx 笔记本,或者直接拖拽至新增加的文件夹树形控件,完成收藏 **复制** 的过程 c. 小推车改为非易失性文件列表,增加收藏至 xx 笔记本功能。 d. 软件默认笔记本(便携版:本目录下 UserData,安装版:文档目录下:vNote ) e. 由于有默认笔记本,便携版在移至其他电脑就不会发生错误。另外,由于笔记本列表,小推车列表均问路径列表,在加载的时候可以添加目录存在性检测。 ---------------------------------------------------------------------------------------------------------------------- 5. 工具栏:原工具栏分为笔记本,MD 格式,其他三个部分。建议改为: 系统:vNote 登录,新建笔记本,保存更改并阅读,放弃更改并阅读(建议合二为一,切换状态时候提示保存即可),扩展编辑区,笔记本模式,阅读模式,编辑模式。 笔记本:新建目录,新建笔记,删除笔记,笔记信息,放入小推车,收藏至.., 文件:新建文件,保存文件,打开文件,保存,全部保存,全部关闭,查找(打开搜索面板,当前笔记中查找)。 编辑:剪贴,复制,粘贴,撤销,重做,放大,缩小 [其实意义不大,但是这个一般通用编辑器的标配] MD 格式: 原内容 其他:原内容 6. 菜单: 文件菜单,新增项 [新建 md 文件,打开 md 文件,保存,全部保存,关闭,全部关闭] 新增:视图菜单,新增项 [笔记本模式,阅读模式,编辑模式] ,部分编辑菜单内容移至视图菜单。 [或者将 3 模式项目加入查看菜单] 7. 命令行参数 新增命令行参数 -r , > 命令格式:`vNote.exe -r [fileName] ` >> 用阅读模式打开 md 文件 新增命令行参数 -e, > 命令格式:`vNote.exe -e [fileName] ` >> 用编辑模式打开 md 文件 8. 增加三种模式配置功能 阅读模式:菜单栏+主显示面板+大纲 编辑模式:菜单栏+工具栏 [系统,文件,编辑,MD 格式,其他] + 大纲 笔记本模式:现有的全界面 三种模式均可独立配置界面,并保留最后配置。 三种模式的发展方向: 阅读模式:快,极致的快。可考虑有文件名传入的情况下,渲染和界面多线程同时运行。 编辑模式:速度一般,界面清爽,满足聚焦编辑的功能即可。 笔记本模式:更容易的将 md 文件,收藏,保存至笔记本,整理,待整理等 [楼主想在笔记上进一步发展,估计得考虑 Html 反向解析问题了,不需要太精准,至少能保存个大概的格式] 。 --------------------------------------------------------------------------------------------------------------------- 上面 5-8 其实也是一体的,为三模式命令行准备的。 个人觉得 vNote 是个很不错的东西,速度快,界面也清爽,无论做阅读器,编辑器,都不比 Typora 差。 然楼主太喜爱笔记功能,而忽视了其他功能的应用,使得看起来有点小众。所以想出这个命令行启动 方式,不知是否能让 vNote 更大众点也更火一点。 ============================================================= 看似很多建议,实际总结下来:调整和整合部分功能未知,增加已有功能的菜单,工具栏,新增命令行方式,新增 文件夹,笔记本转换,新增 md 文件添加至笔记本。 整体代码结构和改动量不大 [嗯,怎么那么像某些项目经理的屁话] 。 希望这些东西对你有用吧。 ps:想到一个最小代码量增加双栏显示的方法: 主显示区文件标签栏增加右键菜单-预览克隆,点击后,临时文件夹中生成一个临时文件(名称前加👁)并打开,同时生成一个克隆文件对应表,并在用户使用保存文件功能的时候,根据对应表同步临时文件。一个全局字典,几行生成临时文件的语句,搞定 O(∩_∩)O。 [临时文件修改神马的全不管] 其实,就算不为双栏预览功能,编辑器同文件分栏显示,也是大文件撰写的重要需求吧:)。 |
162
tamlok OP @walkinrain 感谢详细建议和回复!
1. 目前还没有实用的命令行功能,后面会添加; 2. 表格优化的光标问题的确是处理得比较粗暴; 3. 后面会把浏览器面板合并到笔记本中; 4. 小推车主要是用于任意多选笔记,以便批处理,比如导出任意的笔记;收藏功能主要还是由历史面板来实现; 5. 后面会支持同一文件任意分隔; 目前还在重构下一个版本,所以很多东西都会重新设计和考虑。 |
163
lasuar 2020-04-15 09:40:47 +08:00
通过搜索"markdown 笔记"搜到了这篇帖子。。
请问 VNote 可以配合 gitee/github 私仓实现自动化保存?比如可以配置这两个平台的账号 /密码或者 ssh 公钥,以及自动保存频率等等。。我的意思主要是如何便携== |