Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 放弃后端渲染 Markdown 文本。 #989

Closed
ruibaby opened this issue Jul 21, 2020 · 40 comments · Fixed by #1668
Closed

feat: 放弃后端渲染 Markdown 文本。 #989

ruibaby opened this issue Jul 21, 2020 · 40 comments · Fixed by #1668
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Milestone

Comments

@ruibaby
Copy link
Member

ruibaby commented Jul 21, 2020

概述

放弃在保存文章的时候再渲染 Markdown,直接使用编辑器渲染好的 html 文档。

动机

  1. 很难保证前后端渲染一致,除非自己造 Markdown 渲染引擎,但很显然目前我们没有这个能力。
  2. 后续计划为放弃使用 Markdown 编辑器,将基于 tiptap 引擎实现一个编辑器,类似语雀的编辑器,但同时保留部分常用 Markdown 语法。同时,旧的 Markdown 编辑器将继续保留一段时间,但默认编辑器将不再是 Markdown 编辑器。
@ruibaby ruibaby added the kind/feature Categorizes issue or PR as related to a new feature. label Jul 21, 2020
@ruibaby ruibaby self-assigned this Jul 21, 2020
@ruibaby
Copy link
Member Author

ruibaby commented Jul 21, 2020

@Smith-Cruise
Copy link

这个大概多久能够实现,感觉要很大的改动啊。

@ruibaby
Copy link
Member Author

ruibaby commented Jul 22, 2020

这个大概多久能够实现,感觉要很大的改动啊。

下个 beta

@JohnNiang
Copy link
Member

不建议直接干掉后端渲染 markdown,这样会导致所有主题都得改。可以提供一个选项获取到源 markdown 格式的内容,供主题自行渲染。等所有主题都稳定之后再彻底放弃。

@ruibaby
Copy link
Member Author

ruibaby commented Jul 22, 2020

不建议直接干掉后端渲染 markdown,这样会导致所有主题都得改。可以提供一个选项获取到源 markdown 格式的内容,供主题自行渲染。等所有主题都稳定之后再彻底放弃。

怎么会呢?我的意思是直接用编辑器渲染好的 html。

@yuanzhixiang
Copy link

大佬加油,目前编辑器使用体验真的不好,期待大佬下个版本

@yuanzhixiang
Copy link

vscode web ide 也挺好用,大佬要不要考虑集成这个

@ruibaby
Copy link
Member Author

ruibaby commented Jul 24, 2020

vscode web ide 也挺好用,大佬要不要考虑集成这个

那也太大了

@khassar00
Copy link

我觉得语雀的编辑器用起来最舒服,干脆用语雀编写文档,Webhook推送更新,通过语雀API获取文档内容.类似vuepress的插件vuepress-plugin-yuque

@ruibaby
Copy link
Member Author

ruibaby commented Jul 26, 2020

我觉得语雀的编辑器用起来最舒服,干脆用语雀编写文档,Webhook推送更新,通过语雀API获取文档内容.类似vuepress的插件vuepress-plugin-yuque

但终究还得自己写。

@yuanzhixiang
Copy link

我觉得语雀的编辑器用起来最舒服,干脆用语雀编写文档,Webhook 推送更新,通过语雀 API 获取文档内容。类似 vuepress 的插件 vuepress-plugin-yuque

但终究还得自己写。

大佬,啥时候新的编辑器能上线,好期待

@RealKiro
Copy link

markdown编辑器目前有2个问题有待改进

  1. 当文章很长很长的时候,偶尔想偷懒用下下面的工具,应该在拖动滚动栏的时候锁定(不然又重新回到顶部很麻烦)
    image

  2. markdown编辑框和预览框能做到同步显示具体哪一行吗?因为不同步不方便直接观察效果(大雾
    image

@0xTract0r
Copy link

markdown编辑器建议可以集成vditor,所见即所得的模式,体验类似于Typora,同时也支持经典的双栏编辑,项目地址 https://github.com/Vanessa219/vditor

@0xTract0r
Copy link

markdown编辑器目前有2个问题有待改进

  1. 当文章很长很长的时候,偶尔想偷懒用下下面的工具,应该在拖动滚动栏的时候锁定(不然又重新回到顶部很麻烦)
    image
  2. markdown编辑框和预览框能做到同步显示具体哪一行吗?因为不同步不方便直接观察效果(大雾
    image

这个不同步的问题其实可以通过在左边栏在插入图片时就渲染图片来解决,我看到CSDN的编辑器就是通过类似这种方式来解决双栏编辑器两边不同步的问题

@0xTract0r
Copy link

我觉得语雀的编辑器用起来最舒服,干脆用语雀编写文档,Webhook推送更新,通过语雀API获取文档内容.类似vuepress的插件vuepress-plugin-yuque

语雀不完全支持markdown语法,多少都有点别扭

@yuanzhixiang
Copy link

大佬,新的更换编辑器的版本啥时候能上?

@ruibaby
Copy link
Member Author

ruibaby commented Aug 13, 2020

大佬,新的更换编辑器的版本啥时候能上?

反正不会太快。

@yuanzhixiang
Copy link

yuanzhixiang commented Oct 31, 2020

大佬,新的更换编辑器的版本啥时候能上?

反正不会太快。

最近发现个很好用的笔记软件,notion,编辑时的手感还挺好的,如果 halo 后台能用上这样的编辑器应该很舒服

@XuCpeng
Copy link

XuCpeng commented Nov 5, 2020

可否考虑支持Metaweblog API,这样就可以直接通过第三方编辑器(例如Mweb)推送文章

@ruibaby
Copy link
Member Author

ruibaby commented Nov 5, 2020

可否考虑支持Metaweblog API,这样就可以直接通过第三方编辑器(例如Mweb)推送文章

早些时候的版本写了这个功能,后面没有维护就放弃了。可能未来会考虑再支持,但不会是首要开发任务。

@yuanzhixiang
Copy link

可否考虑支持 Metaweblog API,这样就可以直接通过第三方编辑器(例如 Mweb)推送文章

早些时候的版本写了这个功能,后面没有维护就放弃了。可能未来会考虑再支持,但不会是首要开发任务。

大佬,今年年底前有没有可能用上新的编辑器?

@yuanzhixiang
Copy link

@ruibaby 大佬,新年快乐,2021 年了,咱们的新编辑器啥时候能上?

@yuanzhixiang
Copy link

@ruibaby 大佬,关于编辑器我有个想法,编辑器这块我碰到的最大的痛点其实就是文章内容比较多的时候会卡顿,这是最无法接受的。

所以其实可以实现一个最简单的版本,只有一个输入框,快捷功能就两个,command +v 上传图片,command +s 保存为草稿就行了,其实别的功能花里胡哨没啥用。

大佬能不能开发个这样的编辑器,放个版本出来,先替换掉原来的编辑器

@ruibaby
Copy link
Member Author

ruibaby commented Jan 9, 2021

@ruibaby 大佬,关于编辑器我有个想法,编辑器这块我碰到的最大的痛点其实就是文章内容比较多的时候会卡顿,这是最无法接受的。

所以其实可以实现一个最简单的版本,只有一个输入框,快捷功能就两个,command +v 上传图片,command +s 保存为草稿就行了,其实别的功能花里胡哨没啥用。

大佬能不能开发个这样的编辑器,放个版本出来,先替换掉原来的编辑器

但这只是你的需求,如果只放一个输入框,如何保证不被骂?

@ruibaby
Copy link
Member Author

ruibaby commented Jan 9, 2021

@zhixiangyuan 你可以考虑 fork 一个 halo-dev/halo-admin ,修改之后独立部署一套。就像 admin.halo.run

@yuanzhixiang
Copy link

@zhixiangyuan 你可以考虑 fork 一个 halo-dev/halo-admin ,修改之后独立部署一套。就像 admin.halo.run

老哥,新的编辑器啥时候能上?

@ruibaby
Copy link
Member Author

ruibaby commented Apr 20, 2021

@zhixiangyuan 你可以考虑 fork 一个 halo-dev/halo-admin ,修改之后独立部署一套。就像 admin.halo.run

老哥,新的编辑器啥时候能上?

正在写,基本可以使用,还需要完善一些功能。

但是得等到1.5.0。

@ruibaby
Copy link
Member Author

ruibaby commented Apr 20, 2021

@zhixiangyuan

Snipaste_2021-04-20_18-54-13
Snipaste_2021-04-20_18-54-39
Snipaste_2021-04-20_18-55-09
Snipaste_2021-04-20_18-55-24

可以先行看看图片,后续我们会在合适的时机开放仓库并提供预览地址收集反馈。

Markdown 编辑器也重新写了一个。

@yuanzhixiang
Copy link

Markdown 编辑器也重新写了一个。

@JohnNiang
Copy link
Member

我的建议是:不放弃后端渲染,但是使后端渲染成为可选项即可。

@guqing
Copy link
Member

guqing commented Oct 22, 2021

@JohnNiang 如果不放弃后端渲染那就需要维护两个渲染方式且要保持渲染一致

@JohnNiang
Copy link
Member

@JohnNiang 如果不放弃后端渲染那就需要维护两个渲染方式且要保持渲染一致

后端渲染可以保持现状,不必和其他渲染方式一致。使用者在保存文章的时候可以选择使用哪种方式渲染。

@guqing
Copy link
Member

guqing commented Oct 22, 2021

@JohnNiang 那这样主题展示的时候样式会出问题或者切换主题文章就不兼容 或者编辑器增加了某些功能后端渲染却不支持等问题怎么处理呢 感觉这些都算是bug

@ruibaby
Copy link
Member Author

ruibaby commented Oct 23, 2021

@JohnNiang @guqing

其实最终的目的是在编辑器中预览的内容和保存之后的渲染内容完全一致即可,并非是要放弃后端渲染(也可以通过提供一个接口来渲染 Markdown 提供给编辑器,类似于 GitHub 的处理方式,但我认为这种方式不太友好)。

当然,即便我们在后台保存文章的时候不使用后端渲染的 Markdown,那么最好也保留一下后端渲染的选项。但是不建议提供给最终使用者来选择通过前端渲染还是后端渲染,我们无法告知前端渲染和后端渲染到底支持哪些语法以及有多少地方表现不一致,后端渲染的选项仅仅提供给接口即可。

目前我们也已经在 js-sdk 当中提供了统一的 Markdown 渲染库(基于 markdown-it),https://github.com/halo-dev/js-sdk/tree/master/packages/markdown-renderer ,我们在任何端都统一使用这个库即可。当然,在某些端可能无法直接使用,比如原生的桌面端或者移动端平台,所以如上所说还是得在接口提供后端渲染的选。

@guqing
Copy link
Member

guqing commented Oct 23, 2021

@JohnNiang @guqing

其实最终的目的是在编辑器中预览的内容和保存之后的渲染内容完全一致即可,并非是要放弃后端渲染(也可以通过提供一个接口来渲染 Markdown 提供给编辑器,类似于 GitHub 的处理方式,但我认为这种方式不太友好)。

当然,即便我们在后台保存文章的时候不使用后端渲染的 Markdown,那么最好也保留一下后端渲染的选项。但是不建议提供给最终使用者来选择通过前端渲染还是后端渲染,我们无法告知前端渲染和后端渲染到底支持哪些语法以及有多少地方表现不一致,后端渲染的选项仅仅提供给接口即可。

目前我们也已经在 js-sdk 当中提供了统一的 Markdown 渲染库(基于 markdown-it),https://github.com/halo-dev/js-sdk/tree/master/packages/markdown-renderer ,我们在任何端都统一使用这个库即可。当然,在某些端可能无法直接使用,比如原生的桌面端或者移动端平台,所以如上所说还是得在接口提供后端渲染的选。

好的 这样子的话我觉得没问题

@thomas10011
Copy link

请问这个功能何时实现呢,目前所有的主题对有大量数学公式的文章支持都不是很好,目测应该都是这个markdown渲染导致的

@ruibaby
Copy link
Member Author

ruibaby commented Oct 25, 2021

@thomas10011

1.4.13 已经发布,可能是最后一个 1.4.x 版本了,如果没有其他修复的话。已经准备正式进入 1.5.x 的开发。

https://github.com/halo-dev/halo/milestone/8

@syniii
Copy link

syniii commented Jan 23, 2022

@ruibaby 1.5这个月底能发布不?我比较关心这个md的这个功能

@JohnNiang
Copy link
Member

@ruibaby 1.5这个月底能发布不?我比较关心这个md的这个功能

Please see https://github.com/halo-dev/halo/releases/tag/v1.5.0-alpha.1

@Mrered
Copy link

Mrered commented Jul 18, 2023

可否考虑支持Metaweblog API,这样就可以直接通过第三方编辑器(例如Mweb)推送文章

早些时候的版本写了这个功能,后面没有维护就放弃了。可能未来会考虑再支持,但不会是首要开发任务。

请问目前还有计划开发嘛,2.7已经用了一段时间了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet