zarte
V2EX  ›  问与答

关于论坛帖子样式存储设计问题

  •  
  •   zarte · Jul 2, 2020 · 1259 views
    This topic created in 2184 days ago, the information mentioned may be changed or developed.

    是采用类似 md 格式存储然后显示的时候后端渲染后输出,还是保存的时候额外存一个渲染好的内容字段显示的时候直接读取?
    或者采用 html 编辑的方式,但这种方式人为输入未闭合标签之类的问题怎么解决?

    6 replies    2020-07-03 15:16:53 +08:00
    FaceBug
        1
    FaceBug  
       Jul 2, 2020   ❤️ 1
    1 、写一个校验脚本,html 里的<和>数量要匹配,花点心思还能做个自动补全的功能

    2 、可以在保存的时候,标记是 MD 还是 html,同时兼容两种模式

    3 、MD 保存的时候,请保存一份原始的 MD 格式,因为涉及到日后编辑帖子的场景,再存储一份根据 MD 生成一份 html 这样就减少读取的时候开销,因为毕竟论坛是读远大于写的场景
    luckyrayyy
        2
    luckyrayyy  
       Jul 2, 2020   ❤️ 1
    最好保存原内容吧,那样万一网站的渲染方式发生变化,还方便修改渲染结果。
    namelosw
        3
    namelosw  
       Jul 2, 2020   ❤️ 1
    如果用户编辑 md 就存 md 。

    如果像大部分网站一样,靠按钮改样式,或者能粘贴就 WYSIWYG 的 HTML 就存 HTML 。
    此外有些编辑器还能让用户改 HTML 源码,这种情况未闭合就按未闭合存就行了。
    zarte
        4
    zarte  
    OP
       Jul 3, 2020
    @cepczkd 谢谢
    zarte
        5
    zarte  
    OP
       Jul 3, 2020
    @cepczkd
    @namelosw
    再问下,如果用户输入<p>sdfsd<div>sds</p> 这样的内容咋处理呀? ie 上显示的话可能会导致页面异常不?
    namelosw
        6
    namelosw  
       Jul 3, 2020
    @zarte 异常不异常看浏览器吧,像 Chrome 这种兼容好的就无所谓,兼容不好的肯定会很多异常。但是 JS 应该不会挂,只是渲染有问题。我理解这种东西不用处理吧。

    假如允许用户输 HTML,那么当他的本来就是错的时候,没道理给他修好啊。他要是少输好多东西,还要给他脑补上吗……

    另外记得 sanitize,执行 HTML 基本上是安全问题的重灾区。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5334 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:21 · PVG 15:21 · LAX 00:21 · JFK 03:21
    ♥ Do have faith in what you're doing.