关于所见即所得 Markdown 编辑器的讨论

本贴最后更新于 1768 天前,其中的信息可能已经时移俗易

在 GitHub 上搜索 “Markdown editor”,会发现几乎所有流行的 Markdown 编辑器项目都会有被人提类似这样一个特性请求:

能否像 Typora 那样进行实时渲染?

这是一个有趣的现象,但几乎所有的项目都没实现,我翻了这些项目下面的 issue 讨论,作者们大致认为:

  • 所见即所得违反了 Markdown 设计用意
  • 设计上没有保证一致性,比如列表、块引用和标题就无法展开标记符;有的操作只能依赖鼠标或者快捷键,比如表格扩展行列
  • 实现工作量较大,还有优先级更高的任务需要去做
  • 太难了

其中 VNote 提出的“折中方案”,即图片、图表和公式进行实时渲染,其他元素则进行 Markdown 语法高亮。这个方案看似折中,但实则更严重地破坏了一致性,会让用户更容易分心。老外们的项目似乎很看重“设计一致性”,只要逻辑上有点瑕疵他们都不接受。而国人大部分(包括我)都是实用主义者,用着爽就行,管那么多干啥。

Vditor 虽然还不那么流行,但是也被提过。本来我和 @Vanessa 是想做好所见即所得就行了,这样不熟悉 Markdown 的人也能用。当我翻遍了现有 Markdown 编辑器项目相关讨论后,我觉得还是很有必要去实现保留标记符实时渲染模式的,虽然工作量巨大,但是这样会对熟悉 Markdown 的人更加友好。目前大致的计划是在 v3 中进行实现,估计得半年后了。

最后,从某个方面也再次印证了那个被重复一万次的设计问题:用户觉得好就真的是好的吗?

也许是吧,因为离开了社区的支持,作者个人再怎么努力也是白费的……

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • hjljy 1 赞同

    工具制作出来不就是给人用的么?站在使用者的角度上来说:这个工具怎么实现的,我并不关心,对我而言,好用就是好用,不好用就是不好用。

    1 回复
  • 我个人是不太习惯 typora 那种编辑方式的。最主要的一点就是修改起来不够优雅,需要来回调整光标。表格就更别提了。

    相比之下,我还是习惯 side-by-side 这种传统编辑方式。还有那种在渲染格式的同时保留 markdown 标记符的编辑方式也还可以接受。

    1 回复
  • 88250

    你后面说的应该是 Markdown 语法高亮吧?这种方式确实比较受欢迎,等有空 Vditor 也会进行支持。

  • iTanken 1 赞同

    用过所见即所得后还是感觉 编辑&预览 更高效

  • Typora 确实挺好用的,我用了好几年了

  • JssDream

    支持doge 坐等大佬

  • DevYui

    Typora 其实也是用前端写的。

    1 回复
  • 88250

    嗯,通过开发者工具大概浏览了下 Typora 的代码(虽然被压缩过,但是格式化后还是能看的),Markdown 引擎部分应该是直接用 JavaScript 开发的。

    话说编程语言的一大趋势是不分前后端,比如 JavaScript 可以通过 Node.js 跑在服务端上、golang 可以通过 GopherJS 编译成 JavaScript 跑浏览器上、很多后端语言也可以编译为 WASM 跑浏览器上。

    所以对于很多应用产品而言,用什么语言实现已经越来越不重要了,重要的是如何组合工具,换来 1+1 > 2 的价值。

    1 回复
  • DevYui

    Shift + F12?

    1 回复
  • DevYui

    D 大,很晚了。记得早点睡,我先去睡了。晚安。

  • 88250

    菜单上可以打开开发者工具,Typora 用了零宽空格字符处理一些场景,这个技巧值得借鉴。作者确实挺厉害的,大量细节处理都非常到位,Vditor 也会加油完善。

  • 这其实也是如今快餐文化下,文学/影视/游戏产业存在的问题,多数受众只管自己看的爽玩的爽,才不在乎什么艺术,什么世界观。为了能赚到更多的钱,从业者也慢慢变得浮躁起来,忘记了初心,干货也越来越少了。。

  • yoss

    VNote 的 README 是这样评价 Typora 的:

    类富文本实时渲染模式,代表软件是 Typora,其缺点是矫枉过正,和 Markdown 的设计理念背道而驰

    为黑而黑,Typora 对 Markdown 的支持我觉得是最好的,没有之一。

    1 回复
  • 88250

    我是最近才开始用 Typora 的,主要是为了学习研究其功能。Typora 的 Markdown 相关配置开关确实很优秀。

  • losky
    该回帖仅作者和楼主可见
    1 回复
  • 88250
  • “估计得半年后”

    结果转眼就实现了。真香 [doge]

    1 回复
  • 88250

    错误评估工时的典型案例 wulian

  • roland100

    用户想给马车加一匹马。。他们只是想不到可以制作一辆轿车。

  • baozebing

    提个需求:图片上传支持自定义函数

  • qingyun1029

    请问“可通过修改 index.less 中的变量对主题颜色进行定制”说的,我修改了 index.less 后如何打包呢?

    或者如何覆盖一些默认样式?

    谢谢!

请输入回帖内容 ...

推荐标签 标签

  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    266 引用 • 665 回帖 • 1 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    176 引用 • 815 回帖
  • danl
    132 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 2 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 3 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    222 引用 • 473 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 170 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖 • 1 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖 • 2 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1434 引用 • 10054 回帖 • 490 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 529 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 588 回帖 • 1 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 633 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    690 引用 • 535 回帖
  • sts
    2 引用 • 2 回帖 • 196 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 629 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 4 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 724 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 665 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 911 回帖 • 245 关注