我的应用允许会员发帖,我希望能够从他们提交的帖子中提取和格式化某些项目;例如urls,@ mentions,#hashtags等(主要是将它们变成链接)。
出于性能原因,我的目标是将帖子保留为字符串类型列。我宁愿不使用像Markdown这样的东西,因为我认为如果人们只是发布并且事情会自动转换为它们会更好。 (此外,它将减少一个依赖。)
以下是我的一些想法:
使用正则表达式依次查找每个项目并替换为格式化的HTML(此方法的优点和缺点是什么?我猜这里字符串列的大小限制可能是一个问题。)
将用户提交的文本替换为我自己的自定义标记,然后在显示屏上对其进行格式化。例如,某人发布了“Hello @Danny,请查看此#Ferrari”并将@替换为[u_id=2]
和#tag标签[t_id=1]
,然后显示它们会转换为<a href="site.com/users/danny">@Danny</a>
和{{ 1}}。这也意味着如果人们更改用户名,则链接始终是正确的。但是,由于正则表达式在创建和显示中都会运行,所以这听闻太多了吗?
我还有其他选择吗?最好的,最有效的方法是什么?