最近在做项目时需要用一个MarkDown编辑器编写文章然后保存到数据库中,如下图所示,使用的是MdEditor
但通过后台提取数据显示到html页面中时,却发现没有换行。原来这是因为数据库把换行符过滤掉了。
那该怎么办呢,其实可以用一种迂回的方法将其写入到数据库中,就是可以先把”\n”换行符转换为特定的字符串,读取出来的时候再替换回来。
比如,提交数据时利用 js 获取 textarea 中的内容,再把所有换行符转为 <br>。
<script type ="text/javascript" >
var content = $("#form1 textarea" ).val();
content = content.replace(/\n|\r\n/g ,"<br>" );
</script >
读取出来的时候再替换回来
<script type ="text/javascript" >
$(function () {
var content ='${blog.article}' ;
content = content.replace(/<br>/g ,"\n" );
});
</script >
如果是一般textarea内容像上面那样就行了,但由于我这是markdown内容,还要将markdown内容转为 html 代码段
<script src ="https://cdn.bootcss.com/showdown/1.3.0/showdown.min.js" >
<script type="text/javascript" >
var converter = new showdown.Converter();
var htmlcontent = converter.makeHtml(content);
$("#article .article-entry" ).html(htmlcontent);
</script >
最后显示效果,经过换行转换和MarkDown转换后文章能够完美显示出来。(代码段高亮是另外加的啦)