而不是使用不是 html 的插入文本,因此不会显示为 html(\r\n 不是“p”标签等),您可以使用诸如 markdown 之类的格式化语言(如您所述)。
否则,您将需要手动替换/解析输入的文本(我认为这不是一个好主意,因为已经为此发明了诸如降价之类的语言)。
有一些很好的 python 库可以将markdown(您存储在数据库中的数据)转换为 html,例如python-markdown2。
它真的很容易使用,请参阅 python-markdown 链接中的示例:
>>> import markdown2
>>> markdown2.markdown("*boo!*") # or use `html = markdown_path(PATH)`
u'<p><em>boo!</em></p>\n'
>>> markdowner = Markdown()
>>> markdowner.convert("*boo!*")
u'<p><em>boo!</em></p>\n'
>>> markdowner.convert("**boom!**")
u'<p><strong>boom!</strong></p>\n'
这迫使您使用降价语法(或您使用的任何格式)输入内容。为了使这更容易,您可以使用所见即所得的编辑器来为您创建降价(就像 Stackoverflow 上的编辑器)。我认为 Stackoverflow 使用wmd但还有很多其他降价所见即所得的编辑器。
wmd 示例:
<html>
<head>
<title>WMD Example using jquery</title>
<link rel="stylesheet" type="text/css" href="wmd.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.wmd.min.js"></script>
</head>
<body>
<h1>WMD Example using jquery</h1>
<div>
<textarea id="notes"/>
</div>
<script type="text/javascript">
$().ready(function() {
$("#notes").wmd();
});
</script>
</body>
</html>