我无法解决
provemath上的内容未按要求呈现的问题.
问题是书面内容中的每一行(第一行除外)都包含在< div>中.例如,内容
line1. line2.
正如您在Safari中看到的,Web检查器实际上呈现为< p> line1.< div> line2.< / div>< / p>. DESIRED输出是< p> line1.< br> line2.< / p>.
有一些事情可以在这里发挥作用……
>我不确定浏览器如何处理输入的换行符.
>我的内容呈现功能(包含在下面)运行Markdown(实际上是marked)和一些正则表达式.
> CSS(包含在下面)操纵一些事物的显示方式,我想知道它是否会导致HTML本身发生变化.我以前认为使用flexBox导致了这一点,但我改变了CSS无济于事.
内容呈现如下:
内容由用户输入(命中RETURN表示新行)并使用jQuery的.html函数捕获
blind.value = $value.html()
function render_content(string) { // make all \ into \\ instead,so that they will be \ again when marked is done. This is for MathJax postrender compatability. string = string.replace(/\\/g,'\\\\') string = string.replace(/\n/g,'<br />') // not doing anything AFAIK string = marked(string) string = string.replace(/img(\d+)/g,'<img src="image/$1.jpg" />') string = string.replace(/\\includegraphics\{(.*?)\}/g,'<img src="image/$1.jpg" />') return string }
CSS如下:
.value { // display: inline-flex; display: inline; // flex-direction: column; vertical-align: top; width: 85%; }
你可以看到旧的CSS注释掉了.
解决方法
你为什么要在’换行’之前处理’反斜杠’?你试过这个吗?
string = string.replace(/\n/g,'<br />') string = string.replace(/\\/g,'\\\\') string = marked(string)