twikoojs / twikoo

💬 一个简洁、安全、免费的静态网站评论系统 | A simple, safe, free comment system.
http://twikoo.js.org
MIT License
1.57k stars 306 forks source link

Twikoo 管理面板加一个编辑评论的功能 #390

Open Gahotx opened 2 years ago

Gahotx commented 2 years ago

不知道有没有希望 (逃

Android-KitKat commented 2 years ago

我认为这个功能很实用,跑去数据库编辑评论确实有些麻烦。 而且如果是腾讯云函数,有些字符无法在网页直接编辑。 需要将评论导出编辑,然后再导入。

评论在提交后,会被编译成 HTML 代码储存,以便提升性能和保持更多可能性。 (比如在评论里插入视频、使用彩色文字。 Markdown 并没有这样的语法,但是博主可以通过直接编辑 HTML 实现。)

所以要实现编辑评论,应该需要新增一个字段,用来储存评论的源代码。 然后在编辑的时候,读取并填充源代码到输入框以供编辑。 (当然如果你手动编辑过 HTML,储存的源代码肯定对不上。 不过这也没有办法,但是应该也不会有人大量使用那种特殊用法。)

Gahotx commented 2 years ago

腾讯云数据库里面的"comment"就是评论的源代码,就是每次编辑评论都要上云开发的数据库里编辑,确实比较麻烦,所以想着如果管理面板里有个编辑按钮,然后就可以直接编辑评论的源代码,那会方便很多

Android-KitKat commented 2 years ago

那个不是储存的 HTML 吗,编辑的话应该以 Markdown 的形式进行编辑吧。

imaegoo commented 2 years ago

目前的想法:如 @Android-KitKat 所说,不存储 Markdown 内容的情况下,编辑的时候不保留富文本,只保留纯文本,是可以实现的。比如用户发送了 **Bold**,编辑时会变成 Bold 丢失加粗效果。

Android-KitKat commented 2 years ago

我也是这样认为的,既然做成一个功能。 让用户直接编辑 HTML 代码,在使用体验上不太好。 富文本编辑器的话,我不了解。不知道好不好应用。

这样处理如何,之后的新评论都会储存原文。 在编辑评论的时候,如果有原文数据,就读取并填充到输入框。

如果没有原文数据,就提示用户:

该评论未储存原文,将转换为纯文本进行编辑。 原样保存可能会丢失部分内容,敬请留意。

然后将富文本转换为纯文本并填充到输入框。

或者如果能把 HTML 代码直接再转换回 Markdown 的话…… 但是可能得处理表情代码,以及意料之外的 HTML 标签。

Gahotx commented 2 years ago

好像有类似的这种html转markdown工具:https://github.com/mixmark-io/turndown

imaegoo commented 2 years ago

会参考以上建议实现

chlorine3545 commented 1 month ago

个人认为,直接让管理员编辑 HTML 也不是完全不可行,在评论区使用极端复杂的 Markdown 和 iframe 等的应该还是少数。