1
opengps 2021-05-29 12:09:58 +08:00
富文本本身还是字符,不过考虑到这一列数据的长度不确定,使用 text 之类的类型存储,尽可能将内容表配合外键单独一个表存储,不读内容时候不读取这个表
至于图片,其实富文本里只是一个引用路径,实际图片文件存储并不在富文本里,而是在网站相应的目录或者第三方存储里 |
2
loading 2021-05-29 12:12:48 +08:00
下载一个 wordpress,装上,学习一下结构就知道了。
富文本最后存下来就是 html,用 text 字段就行了。 建议你用 markdown 呢,时髦一些。 |
3
Kaciras 2021-05-29 13:34:23 +08:00
文本就存原始的比如 Markdown,前端拿到后再渲染成 HTML 。
找图片搞个正则扫一遍文章即可。 内容直接存文章表里就行,没必要抠这个性能,你一篇文章能写多少字? |
4
proxytoworld OP @loading 打算用 tinymce
|
5
shiweiliang 2021-05-29 13:51:46 +08:00
问这些问题,你别做程序员了。
|
6
forgottencoast 2021-05-29 15:21:06 +08:00
上面这些人说的都是简单的实现方式。
如果你想研究高大上的,可以研究 Word 是怎么用 xml 来表达的。 |
7
aristolochic 2021-05-29 15:47:47 +08:00
上面有人提到 Wordpress,那我来说说 Ruby on Rails 的。Rails 做法是正文放在带有多态关联的独立富文本表,附件表也是多态关联。Rails 集成到什么地步?这些东西开箱即用,在模型里标注就行。这样的好处是富文本和附件逻辑可复用,富文本能够做一些变换比如纯文本化之类的,我之前做搜索高亮就是把纯文本丢给 PostgreSQL,建立全文搜索索引,搜的时候由 PostgreSQL 生成<mark>标签。附件也不是硬编码而是有 Variants 的,比如如果你用对象存储的话可以设置有水印 /无水印、是正文用的高清还是列表用的缩略图,以及一些动态生成下载原图的临时链接啥的(本地文件存储也有)。劣势显而易见就是复杂,如果不是用高集成度的系统帮你处理这些复杂度,或者未来扩展空间不大的话,完全没必要。要说参考的话可以看看 sanitizing 是怎么做的(其实……就是记着做就行)。
|
8
falcon05 2021-05-29 15:50:01 +08:00 via iPhone
看看 Wordpress 里的 posts 表,我当时写 cms 时也参考了,有一个 post_content 字段,就是存这个的。
不过它还有一些特殊的 short code,取出渲染到前台时要作一些转换。 |
9
LeslieLeung 2021-05-29 18:22:41 +08:00 via iPhone
我前端把 markdown 渲染成 html 存的,图片存在图床,简单快捷
|
10
wayne233 2021-05-30 00:20:22 +08:00 via iPhone
我最近使用 notion 记笔记,可以直接导出 html,比 markdown 要丰富好看很多。带图片的话也是用超链接到图片文件位置这样。
呃,希望能对楼主建立博客有点帮助 |
11
oneisall8955 2021-05-30 02:06:34 +08:00 via Android
丢静态存储 oss,费用很低
|
12
NilChan 2021-05-30 06:34:29 +08:00 via Android
@shiweiliang 什么鬼,不懂就问,这也能喷?
|
13
iozephyr 2021-05-30 06:46:05 +08:00 via iPhone
支持 11 楼说的用对象存储,开源方案可以看看 Ceph 、Minio
|
14
matrix67 2021-05-30 09:52:19 +08:00
@LeslieLeung #9 那要更新 md 的时候咋处理 jira 的那个 confluence 好像是这么处理的,只能编辑富文本了
|
15
proxytoworld OP @wayne233 可以直接用 notion 做博客 但是那就太。。
|
16
proxytoworld OP @LeslieLeung 敢问用的什么渲染的
|
17
LeslieLeung 2021-05-30 17:53:20 +08:00 via iPhone
@matrix67 #14 还是同一个库 可以把 html 再转回去 md
|
18
LeslieLeung 2021-05-30 20:49:11 +08:00 via iPhone
@proxytoworld #16 md->html 用的 marked,html->md 用的 turndown,都是 js 的库
|
19
proxytoworld OP @LeslieLeung 学习了
|
20
proxytoworld OP @LeslieLeung 你渲染的 html 会存到后端吗
|
21
LeslieLeung 2021-05-31 17:43:37 +08:00 via iPhone
@proxytoworld #20 就是把 html 存到后端
|