首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中实时预览的文本中呈现Markdown

在Javascript中实时预览的文本中呈现Markdown
EN

Stack Overflow用户
提问于 2016-04-22 20:28:53
回答 2查看 1.6K关注 0票数 3

我正在使用rails的网站工作,在那里人们可以发布文章,也可以做其他的事情。这些帖子使用Markdown来呈现文本,就像堆栈溢出一样。每当用户发布帖子时,在文本区域下面就会有一个实时预览div,显示用户的帖子将是什么样子,就像这里的堆栈溢出一样。我的问题是,我不知道如何让Markdown渲染在现场预览。

我的实时预览的javascript代码是

代码语言:javascript
复制
window.onload = function(){
var idea = document.getElementById("idea-text");
try{
    idea.onkeyup = idea.onkeypress = function(){
        document.getElementById('live-preview').innerHTML = this.value.replace(/\n/g, '<br/>');
    }
}
catch(e){
}
}  

文本将永远是纯文本,任何关于做标记渲染的指针?

编辑

解决我的困境的方法是使用来自https://github.com/evilstreak/markdown-js的标记-js,想出如何在节点中使用这个方法是痛苦的,因为我遇到了多个问题。我在https://rails-assets.org/#/components/markdown上找到了一个解决方案,它为我的问题提供了一个简单的三步解决方案!我的代码显示呈现标记向下的文本的实时预览

代码语言:javascript
复制
window.onload = function(){
var idea = document.getElementById("idea-text");
try{
    idea.onkeyup = idea.onkeypress = function(){
        document.getElementById('live-preview').innerHTML = markdown.toHTML(this.value);
    }
}
catch(e){
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-22 20:41:27

您可以使用像标记-js这样的库来公开一个简单的方法来转换html中的标记conte,然后在预览div中直接注入您的html。

票数 3
EN

Stack Overflow用户

发布于 2016-04-22 20:37:56

非常确定的是,StackOverflow使用PageDown在JavaScript中完成从标记到HTML的转换。

PageDown是用于堆栈溢出和堆栈交换网络其余部分的JavaScript Markdown预览器。它包括一个标记到HTML转换器和页面内Markdown编辑器与现场预览.

你可能最终会做这样的事情:

代码语言:javascript
复制
var converter = new pagedown.Converter();

idea.onkeyup = idea.onkeypress = function(){
    document.getElementById('live-preview').innerHTML = converter.makeHtml(this.value);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36802803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档