【问题标题】:What markup language to store in a DB?存储在数据库中的标记语言是什么?
【发布时间】:2010-12-30 07:36:59
【问题描述】:

相关:How to store lightweight formatting (Textile, Markdown) in database?

我想在我们的数据库中以某种标记语言存储评论格式。但是,我们希望允许多种格式语言(markdown、textile、restructuredText)。看来我们应该存储它们的特征的超集,以便我们可以在它们之间进行转换。

  • 这行得通吗?
  • 有这样的超集吗?
  • 是否有库可以在它们之间切换?
  • 我们应该将 cmets 保存在 DB 中吗?

(如果重要,Python/Google App Engine)

【问题讨论】:

    标签: database markdown markup restructuredtext textile


    【解决方案1】:

    您是否考虑过一些更简单的事情:以原始形式存储 cmets,以及一个额外的列,说明它以哪种格式存储(markdown、textile 等...)?

    我认为任何超集要么通过仅存储可以在特定标记中编写语法的许多可能不同方式中的一种而导致一些信息丢失,要么它会因为它试图允许而过于复杂对于所有允许的标记中特定语法的所有可能编码。

    【讨论】:

    • 我确实考虑过。我反对它的原因是我希望能够在它们之间动态切换。但这是一个单独的问题,对于那里的有损解决方案来说可能还可以。所以我认为你可能是对的。
    • @Paul:马克给了你一个很好的答案,但是如果你仍然希望能够在格式之间进行转换,试试 HTML ex。 Markdown->HTML->Textile->HTML->restructuredText
    • 超集并不是指支持所有语法的语言。我的意思是 HTML 之类的东西(可能只有 b,i,a,blockquote)。我会将 reST/markdown/etc 转换为 HTML。我倾向于这一点,因为这意味着有一些规范格式可以进行所有转换,而不是为每对格式编写/查找转换库。
    • 我同意在任何两个标记之间转换时通过 HTML 是个好主意。我认为这不一定意味着 HTML 应该存储在数据库中。如果用户提交评论,然后立即尝试对其进行编辑,他可能会失望地看到他精心格式化的 Markdown 已被自动转换为可读性较差的内容。
    • 嗯。两个都存?我并不十分担心空间效率。易于编程和简洁的设计现在更为重要。
    猜你喜欢
    • 2012-04-25
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2013-09-22
    • 2023-03-27
    • 2019-05-26
    相关资源
    最近更新 更多