我正在开发一个需要用户输入内容的应用程序,我决定使用Stack Overflow风格的Markdown编辑器。在研究了这个主题的最后几天之后,我意识到基础WMD编辑器有很多分叉,一些有一些基本的增强功能,有些与Stack Overflow有很大不同。
由于这将是应用程序的核心,我想从最好的代码库开始。如果有人能够推荐哪种解决方案最适合我的需求,我会很高兴。
以下是要求,以及我已经设法找到的内容。我希望这个问题可以帮助我决定使用哪个版本,也许可以帮助我找到一个更符合我需求的端口。
img
网址。)以下是我看过的一些代码库,有了想法。显然,我可能会错过另一种解决方案。
答案 0 :(得分:27)
最后,在为现成的编辑器查看了一下之后,我选择了位于http://github.com/openlibrary/wmd的OpenLibrary WMD端口。
我最终实现了自己显示/隐藏编辑框的功能,这在大多数情况下证明非常容易。我没有用任何按钮扩展编辑器,我肯定会在其源代码中有些麻烦,但我认为这不会太大。
Stack Overflow编辑器有一些不同之处:
<br/>
,而不是被视为一个段落。我碰巧喜欢这种方式,所以我对这种改变很好。好吧,我希望这可以帮助任何寻找类似编辑器的人。如果我最终自定义编辑器,我将创建自己的分支(它在MIT许可下获得许可),但是现在我没有修改源代码就离开了。
答案 1 :(得分:7)
嗯,这个问题(以及解决方案)已经老了,所以我想也许我会在这里提出一些最新消息。 :)
这是2014年的开始,当我遇到同样的问题时,我最终使用了PageDown-Bootstrap。它是基于Twitter Bootstrap的WMD编辑器,具有完全可定制的样式栏(按钮栏)。
还有一个名为Bootstrap-Markdown的替代方案,看起来也很有希望。
答案 2 :(得分:5)
对于实时预览部分,Showdown库非常容易使用(正如Edan指出的那样,包含在代码库中)
你使用类似这样的东西(如果你不想,不需要使用jQuery)
$(document).ready(function(){
var converter = new Attacklab.showdown.converter();
function update_description_preview(){
$('#description-preview').html(converter.makeHtml($("#id_description").val()));
}
update_description_preview();
$("#id_description").keyup(function(){
update_description_preview();
});
});
update_description_preview函数使用转换器对象读取#id_description元素中的markdown,并将其转储到#description-preview元素中。
这里我在定义初始化预览窗口之后调用该函数(在编辑器中预先加载了一些文本)
最后一位只是在keyup事件中注册该函数。
答案 3 :(得分:1)
不确定它是否完全符合旧的要求,但2014年提供的另一种解决方案是Open Source Markdown编辑器,其预览版本在Apache 2.0下获得许可并由topten软件创建。
在线演示可在此处找到:http://www.toptensoftware.com/markdowndeep/dingus
答案 4 :(得分:0)
Standard Common Markdown包含一个独立的javascript文件,用于将markdown转换为html。它很容易实现,如官方demo或此plunker所示。
<强>大致是:
<script src="//jgm.github.io/stmd/js/stmd.js"></script>
...
var reader = new stmd.DocParser();
var writer = new stmd.HtmlRenderer();
...
var parsed = reader.parse("Some **markdown** text");
var result = writer.renderBlock(parsed);