Ответ 1
Документация для PageDown в значительной степени беспорядок. Я попытаюсь создать здесь гораздо более удобный пример.
Необходимые биты
JS
<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>
Вы также можете использовать версии .min.js
из CDNjs
CSS
<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>
Вероятно, вы не хотите полагаться непосредственно на файлы управления источником для использования в целях производства, но он работает в крайнем случае.
HTML
Редактор 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
<script>
var converter = Markdown.getSanitizingConverter();
var editor = new Markdown.Editor(converter);
editor.run();
</script>
Это должно помочь вам. Более подробную информацию о том, как управлять вставкой изображений, несколькими редакторами или добавлением собственных пользовательских плагинов, см. В оригинальной документации .
Дополнительные примечания
Если у вас есть существующий текст 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>
, вам нужно будет изменить переменную basic_tag_whitelist
внутри Markdown.Sanitizer.js
Если вы хотите, чтобы кнопка заголовка имела более H1 и H2, как H1-H4, взгляните на мой смысл: https://gist.github.com/dotnetchris/0f68c879082343295503, насколько я могу судить, нет способа поддержать это иначе, чем напрямую модифицировать метод commandProto.doHeading
. В этом конкретном контексте я перестраиваю заголовки, чтобы начать с H4, его можно легко изменить, чтобы начать с H6.