首先:我知道有数以百计的文章/问题与此标题相同或相似,但让我解释一下我想要实现的目标以及我的问题是什么
我有一个 Markdown 编辑器,我将在其中存储用户的内容,如果他们希望以后可以编辑该内容。
所以,在我的例子中,我elasticsearch
用来存储所有用户的内容。
存储信息对我来说根本不是问题,但必须检索它并重新显示是一个巨大的问题,我现在正在尝试解决这个问题好几个小时。
使用这个 Markdown 编辑器,用户可以毫无限制地输入内容,我不确定这是否是我的 Markdown 编辑器错误处理所有这些内容的方式,但换行符在这里是一个大问题。
如果用户输入这样的内容
#Hello World
#Here you see I have two extra lines
#How about a video element here as well?
<iframe width="420" height="315" src="//www.youtube.com/embed/Uogdn7zWDmY" frameborder="0" allowfullscreen></iframe>
#Damn cool!!
存储它显然没问题,但是当必须重新显示时editor
我收到这个错误。
Uncaught SyntaxError: Unexpected token ILLEGAL
幸运的是,我可以使用我之前在这里提出的问题中的一些内容来解决这个问题,但是一个问题解决了另一个问题。
问题的解决方案是做这样的事情
var your_content = ' #Hello World
#Here you see I have two extra lines
#How about a video element here as well?
<iframe width="420" height="315" src="//www.youtube.com/embed/Uogdn7zWDmY" frameborder="0" allowfullscreen></iframe>
#Damn cool!!
';
var replaced_text = your_content.replace(/\n|\s/g, "");
但是使用上述解决方案,一切都会像这样显示:
#Hello World #Here you see I have two extra lines #How about a video element here as well? <iframe width="420" height="315" src="//www.youtube.com/embed/Uogdn7zWDmY" frameborder="0" allowfullscreen></iframe> #Damn cool!
所以,代码的格式真的搞砸了,这是另一个问题,因为用户显然希望能够编辑他们的代码并具有良好的格式。
我正在使用这个 Markdown 编辑器http://dillinger.io
我的服务器是:Nodejs,所以我使用的一切都是 JavaScript
更新
这是代码的片段:
var editor
, converter
, autoInterval
, paperImgPath = '/img/notebook_paper_200x200.gif'
, profile =
{
theme: 'ace/theme/idle_fingers'
, showPaper: false
, currentMd: '{{contentMd}}' <---- this is the problem
, autosave:
{
enabled: true
, interval: 3000 // might be too aggressive; don't want to block UI for large saves.
}
, current_filename : 'Filename'
}
并且我将 {{contentMd}} 存储在哪里都没有关系,我仍然会收到该错误。如果我这样存储它们
var abcd = '{{contentMd}}';
所以contentMd
它是从服务器传递的东西,它包含我在顶部发布的所有内容。