我想为用户提供实时预览使用Markdown创建的笔记的功能。但是我在该项目中找不到任何下载。
如何开始使用PageDown Markdown编辑器?
答案 0 :(得分:57)
PageDown的文档非常混乱。我将尝试在这里创建一个更加准备好的例子。
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Converter.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Editor.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js"></script>
您还可以使用CDNjs的.min.js
版本
<link rel="stylesheet"
href="//cdn.rawgit.com/balpha/pagedown/master/demo/browser/demo.css" />
<style>
.wmd-button > span {
background-image:
url('//cdn.rawgit.com/derobins/wmd/master/images/wmd-buttons.png');
background-repeat: no-repeat;
background-position: 0px 0px;
width: 20px;
height: 20px;
display: inline-block;
}
</style>
您可能不希望直接依赖源代码控制文件进行生产使用,但它可以在紧急情况下运行。
PageDown编辑器对您网页上存在的html抱有几个期望。
<div id="wmd-button-bar"></div>
<textarea id="wmd-input" class="wmd-input"></textarea>
<div id="wmd-preview" class="wmd-panel wmd-preview"></div>
<script>
var converter = Markdown.getSanitizingConverter();
var editor = new Markdown.Editor(converter);
editor.run();
</script>
这应该让你开始运行。有关如何操作图像插入,多个编辑器或添加自己的自定义插件的更多高级信息,请参阅original documentation。
如果您有预先存在的Markdown文字,例如您正在展示编辑器以编辑现有页面,您只需在文本区域中插入Markdown内容即可。请注意,如果您执行以下操作:
<textarea id="wmd-input" class="wmd-input">
@Model.Markdown
</textarea>
textarea标记内的空格将被视为Markdown并按此处理,这可能会导致意外行为。 (字面意思是发生在我身上,因为我想知道为什么我会在什么应该是p标签上进行代码格式化)
确保将元素定义为:
<textarea id="wmd-input" class="wmd-input">
@Model.Markdown
</textarea>
请注意没有任何缩进。
H4-H6用法。如果您希望将#### H4
翻译为<h4>H4</h4>
,则需要修改 Markdown.Sanitizer.js
basic_tag_whitelist
变量
如果您想支持Header按钮以获得超过H1&amp; H2,就像H1-H4一样,看看我的要点:https://gist.github.com/dotnetchris/0f68c879082343295503尽我所知,除了直接修改commandProto.doHeading
方法之外,没办法支持这个。在这个特定的要点中,我重新标记从H4开始的标题,可以很容易地修改为从H6开始。
答案 1 :(得分:3)
我创建了两个编辑器。第一个输入被消毒,第二个没有消毒。
.pagedown { width: 400px; }
.wmd-button, .wmd-spacer { display: none; }
.wmd-input { width: 400px; height: 100px; }
.wmd-preview { margin-bottom: 40px; background-color: #eef;}
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Converter.js"
> </script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Editor.js">
> </script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js"
> </script>
<div class="pagedown">
<div id="wmd-button-bar-first" class="wmd-button-bar"></div>
<textarea id="wmd-input-first" class="wmd-input">
**first editor**
the *input* is sanitized:
<marquee>PageDown!</marquee>
</textarea>
<div id="wmd-preview-first" class="wmd-preview"></div>
</div>
<div class="pagedown">
<div id="wmd-button-bar-second" class="wmd-button-bar"></div>
<textarea id="wmd-input-second" class="wmd-input">
**second editor**
the *input* is NOT sanitized:
<marquee>PageDown!</marquee>
</textarea>
<div id="wmd-preview-second" class="wmd-preview"></div>
</div>
<script type="text/javascript">
var converter1 = Markdown.getSanitizingConverter();
var editor1 = new Markdown.Editor(converter1, '-first');
editor1.run();
var converter2 = new Markdown.Converter();
var editor2 = new Markdown.Editor(converter2, '-second');
editor2.run();
</script>