plus icon indicating copy to clipboard operation
plus copied to clipboard

讨论:Markdown 真的合适吗?富文本是否更加合适?

Open medz opened this issue 6 years ago • 57 comments

在往期甚至目前来讲,Plus 一直使用 markdown 作为文本的储存形式,随着程序的不断壮大,我们发现了下面的问题:

  1. 影响到了前端技术栈选型
  2. 主流 Web 技术(React/Vue.js)均没有好的 Markdown 实现
  3. 统一渲染结果(这个问题在不同平台最为严重,web ,iOS,Android 渲染出来均有不一致)
  4. 拓展自定义功能很难实现(目前已有编辑器均很难进行拓展)

但是 markdown 也有下面的几个优点:

  1. 格式简单
  2. 无效占用符较少
  3. 便于源格式文本阅读

富文本

富文本泽可以规避很多问题,优势如下:

  1. 可简单统一渲染结果(虽然 markdown 也可以,但是解析器不同也会造成结果不同)
  2. 目前有很多文本编辑器可以非常好的拓展,facebook 的 Draft.js 就是目前 React 生态最好的例子。

但是缺点也很明显:

  1. 容易造成 XSS 漏洞
  2. 无效符较多(主要是 HTML 格式)

投票

  • 支持 Markdown 的请选择 ❤️
  • 支持富文本的请选择 🎉

点击右上角 image

medz avatar Sep 29 '18 10:09 medz

markdown 缺点补充:用户需要进行 markdown 学习

medz avatar Sep 29 '18 10:09 medz

其实我一看还不知道什么是 markdown 什么是 富文本 .. 百度了一下 做了下对比.

markdown 比较时尚简单

如果 markdown 兼容性好 还是选markdown 比较好看着简单

富文本 上面说“任意造成 XSS 漏洞 ” 是打错字还是什么专业术语 还是拼音整的错字哈. 是不是说 富文本 “容易造成 XSS漏洞” 如果是“容易造成 XSS漏洞” 是不是可以实现系统过滤的方式来预防.

基于实用性最终投票 富文本

863324395 avatar Sep 29 '18 11:09 863324395

你所说的富文本编辑器,其实就是html编辑器吧。 我们不妨假设换成了富文本编辑看看会有什么结果

  1. 因为html的渲染最终还是要看css样式表的。在web端编辑的html在不同的app可能会表现不一致,和markdown其实差不多的。
  2. 虽然前端工程师对html语法比较熟悉,但是,markdown相对于普通人来说,学习门槛是极低的。
  3. 虽然有很多成熟的html编辑器,但是真正要编写出美观的文章格式,一般也不得不使用源码模式(html),其实并不会更容易
  4. markdown虽然现在有一些问题,但无论是web端还是app端很多组件的渲染也是通过最终输出html完成的。但是markdown的语法相对较少,所以定制组件的工作量其实是可控的
  5. 最可能发生的情况是,换成html编辑器,然后问题依旧,或带来新的问题。
  6. markdown的是因为语法简单,所以才流行。而且也越来越成为潮流,如简书,知乎,有道云笔记等。随着越来越流行,markdown编辑器和渲染组件会越来越多,越来越成熟。正如曾经的xml和现在的json格式类似,因为简单,所以更流行。
  7. 综上,站在一个专业人员角度,个人认为即便换成富文本编辑,也未必能跨过坑。而且开历史倒车,显然是不明智的。比如习惯了swfit还能回到Object-C吗? 支持 Markdown 的请选择 ❤️

westudiodev avatar Sep 29 '18 11:09 westudiodev

现在markdown最大的坑无非是image标签。就拿有道云笔记来说吧,它之前是不支持在线上传的,但并不影响它的流行。也是最近刚刚支持文件上传的。

westudiodev avatar Sep 29 '18 11:09 westudiodev

比如用户吐槽ts+的mardown最多的是同步帖子到动态时,图片渲染失败,但有没有考虑过,同步功能本身设计上就让人费解。为何不改为点击跳转?这样以来根本无需解析图片。因此就不存在问题。

westudiodev avatar Sep 29 '18 11:09 westudiodev

毕竟这涉及到系统架构,需要很专业的多方考量。个人不建议面向一般的用户进行投票。除非每个人都是有一定技术素养的(起码是高级程序员,最好是架构师)参与投票。

westudiodev avatar Sep 29 '18 11:09 westudiodev

那现在发帖编辑的内容提交之后显示不正常 原来是这个原因。 那我选 image.

image

863324395 avatar Sep 29 '18 11:09 863324395

我觉得 @ westudiodev 说的是有道理的,我是外行,只知道谁说哪个好 我就选哪个 image

863324395 avatar Sep 29 '18 11:09 863324395

有困难 就克服 ts+ 加油

image

尤其是 富文本 容易造成 XSS 漏洞 挺可怕的

再说 富文本 编辑器 配置在 高大上的 TS+ 有点不搭配 ,

TS V4 应该是 富文本 编辑器好像哈,看着有点土

863324395 avatar Sep 29 '18 11:09 863324395

还有一点需要强调,有没有考虑过是不是交互设计上的问题,而非技术选型问题。比如针对问题不断的图片上传,是否可以考虑用选择图片库的形式(就是把图片上传和图片地址选择分开),而不是直接上传(这种方式富文本也一定会出现问题)。把重点放在纯文字的编辑和排版上。 就拿有道云笔记,虽然一直也没有图片直接上传功能。但文字排版做得很便利。仍然得到大量的粉丝。 可以参考下有道云的设计策略(而非技术),或简书的产品设计以及知乎和知识星球的设计。

westudiodev avatar Sep 29 '18 11:09 westudiodev

从技术发展的趋势看,无不体现这从复杂到简单的规律: SGML格式 -> XML格式 -> JSON格式 Cobra分布式技术 -> DCOM分布式技术 -> RPC分布式技术 -> 微服务架构 从前后台揉在一起的web架构(三层架构) -> 前后台端分离的架构 从C++ -> Java -> js 从无比繁琐的EJB -> Spring框架 -> Spring boot 从java -> Kotlin 从PHP(或java) -> node (Seven老大不要骂我,我们已经全部迁移到了node技术栈) 。。。 真是太多了 从html语言 -> mardown语言遵循这一规律 其实ts+不也是按照简单主义原则来设计和架构的吗? 千万别开历史倒车

westudiodev avatar Sep 29 '18 11:09 westudiodev

BTW,我们的产品,从一开始就不打算上PC端,因为我们觉得除了增加复杂性外和运维成本意外,其实在运营上意义并不大。还是将精力集中在移动端。

westudiodev avatar Sep 29 '18 11:09 westudiodev

BTW,我们的产品,从一开始就不打算上PC端,因为我们觉得除了增加复杂性外和运维成本意外,其实在运营上意义并不大。还是将精力集中在移动端。

PC端方便用户发布文章和帖子 手机编辑毕竟不方便是不

863324395 avatar Sep 29 '18 12:09 863324395

BTW,我们的产品,从一开始就不打算上PC端,因为我们觉得除了增加复杂性外和运维成本意外,其实在运营上意义并不大。还是将精力集中在移动端。

PC端方便用户发布文章和帖子 手机编辑毕竟不方便

最实用的做法是采集第三方的文章,或者用更专业的markdown编辑器(比如vscode或有道云笔记)然后复制到ts+里。 ts+编辑器无论做的再出色,没有再编辑功能。还是用第三方工具更实用些。

westudiodev avatar Sep 29 '18 12:09 westudiodev

如果你经历过在web端编辑一篇email然后浏览器自动刷新,从而半天工作泡汤,你就会明白我的意思。 对于文章编辑,再好的web工具都不一定靠谱。

westudiodev avatar Sep 29 '18 12:09 westudiodev

比如用vscode这样的软件编辑,其实很爽的,有道云也很棒。app端,无论用富文本还是markdown如何都不方便,那应该是动态(纯文本)这样的场景才需要的。对于长文的编辑,还是老老实实用原生工具吧。 这个图是vscode里编辑mardown的截图 screen shot 2018-09-29 at 20 07 00

westudiodev avatar Sep 29 '18 12:09 westudiodev

如果你经历过在web端编辑一篇email然后浏览器自动刷新,从而半天工作泡汤,你就会明白我的意思。 对于文章编辑,再好的web工具都不一定靠谱。

这个我深有感受, 发布一篇帖字,在编辑的和 提交 显示的不是一回事

863324395 avatar Sep 29 '18 12:09 863324395

其实我是支持你的意思的,我最初选择 md 也是出于很多考虑,但是这个话我说了没有,天天商务问,天天客户问。有什么办法呢!选择是因为我不想独裁,md 就是我独裁选择的结果。现在这个权利交给同事和用户,他们选什么就是什么,每个都有坑,选择了我会明确里面的坑。

Seven Du <[email protected]mailto:[email protected]>

在 2018年9月29日,20:09,westudiodev <[email protected]mailto:[email protected]> 写道:

比如用vscode这样的软件编辑,其实很爽的,有道云也很棒。app端,无论用富文本还是markdown如何都不方便,那应该是动态(纯文本)这样的场景才需要的。对于长文的编辑,还是老老实实用原生工具吧。 这个图是vscode里编辑mardown的截图 [screen shot 2018-09-29 at 20 07 00]https://user-images.githubusercontent.com/33219803/46245630-935c4f80-c423-11e8-9d9d-e35ec1b080a9.png

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/slimkit/plus/issues/395#issuecomment-425640116, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFTplZW5nZNJvUvwUTO2g1itNoj4xj50ks5uf2MSgaJpZM4XAb-T.

medz avatar Sep 29 '18 12:09 medz

其实有一点大家可能忽略了,以为换成了html富文本就万事大吉了。 markdown的问题其实即便换了,问题也一样会存在。 就好比之前的ts4用Object-C开发,以为换成了Swift会更好,但实际上大家都看到了半斤八两。(何况swfit比oc要先进) 有什么理由用一个快要被历史淘汰的东西来替换一个朝气的孩子,尽管它还在成长中。

westudiodev avatar Sep 29 '18 12:09 westudiodev

Seven:如果你说打算用node替换php,我或许会赞成(当然不考虑成本和时间的前提下),实际上之前看到那篇email,我甚至有些兴奋。

westudiodev avatar Sep 29 '18 12:09 westudiodev

其实我是支持你的意思的,我最初选择 md 也是出于很多考虑,但是这个话我说了没有,天天商务问,天天客户问。有什么办法呢!选择是因为我不想独裁,md 就是我独裁选择的结果。现在这个权利交给同事和用户,他们选什么就是什么,每个都有坑,选择了我会明确里面的坑。 Seven Du <[email protected]mailto:[email protected]> 在 2018年9月29日,20:09,westudiodev <[email protected]mailto:[email protected]> 写道: 比如用vscode这样的软件编辑,其实很爽的,有道云也很棒。app端,无论用富文本还是markdown如何都不方便,那应该是动态(纯文本)这样的场景才需要的。对于长文的编辑,还是老老实实用原生工具吧。 这个图是vscode里编辑mardown的截图 [screen shot 2018-09-29 at 20 07 00]https://user-images.githubusercontent.com/33219803/46245630-935c4f80-c423-11e8-9d9d-e35ec1b080a9.png — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub<#395 (comment)>, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFTplZW5nZNJvUvwUTO2g1itNoj4xj50ks5uf2MSgaJpZM4XAb-T.

其实,商务或产品经理忽略的一点就是。换了以后,骂声和压力不会减少的。白白搭进去大量成本和时间。对于选型markdown,我无论如何必须支持你。因为你是对的。

westudiodev avatar Sep 29 '18 12:09 westudiodev

可以把我说的话拿给客户看,客户会理解的。因为我自己也是客户,只不过我是属于真正懂行的客户。

westudiodev avatar Sep 29 '18 12:09 westudiodev

可以把我说的话拿给客户看,客户会理解的。因为我自己也是客户,只不过我是属于真正懂行的客户。

感觉有道理的 赞同的 都点 image

863324395 avatar Sep 29 '18 12:09 863324395

还是用markdown吧,富文本多端渲染结果也会有问题,除非只用少量标签且没有内联样式,否则情况可能更糟糕。

markdown哪有问题就改进哪, 哪体验不好就优化哪就行了。

作为客户肯定不想去学习理解那些markdown符号,他们想要所见即所得的编辑器,markdown改改也能做到。

xiewme avatar Sep 29 '18 12:09 xiewme

Plus 真的之后会有 node 这个我很早就提了讨论的,把 Plus 按照业务拆分多个系统,我个人很喜欢 node 栈的东西

Seven Du <[email protected]mailto:[email protected]>

在 2018年9月29日,20:20,westudiodev <[email protected]mailto:[email protected]> 写道:

Seven:如果你说打算用node替换php,我或许会赞成(当然不考虑成本和时间的前提下),实际上之前看到那篇email,我甚至有些兴奋。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/slimkit/plus/issues/395#issuecomment-425640749, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFTplT09XO2JfYgSU4X4sXC_XRquvymRks5uf2WCgaJpZM4XAb-T.

medz avatar Sep 29 '18 12:09 medz

其实不用真的换html富文本,你们只需要做好宣传工作,比如让客户知道ts+框架同时可以支持markdown和html富文本。可以根据客户需求改成富文本(当然如果定制,费用好谈,呵呵,又可以多笔生意)

westudiodev avatar Sep 29 '18 12:09 westudiodev

其实不用真的换html富文本,你们只需要做好宣传工作,比如ts+同时支持markdown和html富文本。可以根据客户需求改成富文本(当然需要费用,呵呵,又可以多笔生意)

这是怎么感觉有点坏主意吧 image

863324395 avatar Sep 29 '18 12:09 863324395

Plus 真的之后会有 node 这个我很早就提了讨论的,把 Plus 按照业务拆分多个系统,我个人很喜欢 node 栈的东西 Seven Du <[email protected]mailto:[email protected]> 在 2018年9月29日,20:20,westudiodev <[email protected]mailto:[email protected]> 写道: Seven:如果你说打算用node替换php,我或许会赞成(当然不考虑成本和时间的前提下),实际上之前看到那篇email,我甚至有些兴奋。 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub<#395 (comment)>, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFTplT09XO2JfYgSU4X4sXC_XRquvymRks5uf2WCgaJpZM4XAb-T.

呵呵,我10年前是写java的,现在特反感,各种过度设计。整体扯什么设计优雅。还是用node简单

westudiodev avatar Sep 29 '18 12:09 westudiodev

其实不用真的换html富文本,你们只需要做好宣传工作,比如ts+同时支持markdown和html富文本。可以根据客户需求改成富文本(当然需要费用,呵呵,又可以多笔生意)

这是怎么感觉有点坏主意吧

大多数用户是不知道自己到底要什么的。有很多时候,你不忽悠他,他不相信你。 张小龙有两句名言:1,用户永远不知道自己真正想要什么;2,用户要A,你一定要给他B。

westudiodev avatar Sep 29 '18 12:09 westudiodev

其实不用真的换html富文本,你们只需要做好宣传工作,比如ts+同时支持markdown和html富文本。可以根据客户需求改成富文本(当然需要费用,呵呵,又可以多笔生意)

这是怎么感觉有点坏主意吧

大多数用户是不知道自己到底要什么的。

99%是因为不懂所以才不懂得如何选择

863324395 avatar Sep 29 '18 12:09 863324395