像 typora 这种原地渲染显示的 markdown 编辑器原理是什么呢,需要用 textarea 写一个简单的,能做到吗

2021-10-18 08:42:44 +08:00
 zxCoder

有个任务需要写一个超级简单的编辑器,大概就是支持 markdown 的一小部分语法。左边源文本,右边预览这种比较简单,那如果要做到原地渲染显示,需要怎么做呢?完全没有思路

3379 次点击
所在节点    问与答
13 条回复
jackmod
2021-10-18 08:48:31 +08:00
vscode 的 markdown 插件也可以实时预览,或许可以参考。
4ark
2021-10-18 08:50:01 +08:00
为什么不用开源的?搜一下 markdown editor
ihainan
2021-10-18 08:56:30 +08:00
有开源实现 vditor 可以参考一下,楼上的 markdown editor 也是基于 vditor 做的实现。

https://github.com/Vanessa219/vditor
Panway
2021-10-18 09:20:29 +08:00
Typora 应该是前端渲染的,这类编辑器开源的可太多了:

https://doocs.github.io/md/#/

https://labs.lyric.im/wxformat/

https://github.com/markedjs/marked
myd
2021-10-18 09:25:16 +08:00
contenteditable 属性
bnm965321
2021-10-18 09:50:20 +08:00
所见即所得是个很大的坑,目前市面上也就 typora 做的比较好。

不过我不太喜欢所见即所得的编辑方式
ihainan
2021-10-18 10:07:28 +08:00
@bnm965321 Typora 对我个人来说最大的痛点是没有网页端,VS 扩展 zaaack's Markdown Editor 配合 Code Server 算是某种程度上解决了这个问题而且体验相对最接近 Typora 的(虽然还是有差距)。

ipwx
2021-10-18 10:38:31 +08:00
12tall
2021-10-18 15:03:20 +08:00
我有一个没验证的想法,就是控件监听用户输入存到 localstorage 或者其他地方,然后再从 localstorage 渲染到控件。
zhaiblog
2021-10-18 16:15:46 +08:00
@ihainan milkdown 不错,可以试试
ihainan
2021-10-18 17:11:49 +08:00
@zhaiblog 试了一下在线 demo,不知道为啥我输入 $$ 会被转义,其他看起来挺棒,我研究一下,感谢!
zqli92
2021-11-09 11:12:22 +08:00
如果你只要左编辑右预览,给你个方案:codemirror 做代码编辑器,markdown-it 或 remark 做渲染,上面说的基本都是这种,很容易做,掘金、腾讯开源的 markdown 编辑器都是这么做的,如果想要所见即所得,类似 word 那种,就是上面说的 milkdown ,这种也非常多,开发难度高一点(因为文档字符流是分离的),可以基于 prosemirror 或者 slatejs 去做,基本 markdown 标记都是有的,官方 demo 直接就是这种了。类似 typora 那种难度比较大,目前在线版本只看到一个: https://markdowner.net ,体验非常接近了,也支持 latex ,表格功能更好用
mirone
2021-12-03 07:42:11 +08:00
@zqli92 其实我个人感觉第三种可能在技术难度上没有第二种大,因为只要把每个编辑的位置替换成一个源码模式的编辑框就好了,需要解决的 coner case 可能还没有第二种多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX