用marked.js以及MarkdownExtraExtended替换旧的markdown解析引擎
全面支持表格,以及回车换行
This commit is contained in:
+29
-5
@@ -1,5 +1,6 @@
|
||||
<?php $content = !empty($post) ? $post : $page; if ($options->markdown && (!$content->have() || $content->isMarkdown)): ?>
|
||||
<script src="<?php $options->adminUrl('js/markdown.js?v=' . $suffixVersion); ?>"></script>
|
||||
<script src="<?php $options->adminUrl('js/marked.js?v=' . $suffixVersion); ?>"></script>
|
||||
<script src="<?php $options->adminUrl('js/pagedown.js?v=' . $suffixVersion); ?>"></script>
|
||||
<script src="<?php $options->adminUrl('js/diff.js?v=' . $suffixVersion); ?>"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
@@ -7,7 +8,7 @@ $(document).ready(function () {
|
||||
toolbar = $('<div class="editor" id="wmd-button-bar" />').insertBefore(textarea.parent())
|
||||
preview = $('<div id="wmd-preview" />').insertAfter('.submit');
|
||||
|
||||
var converter = new Showdown.converter(), options = {};
|
||||
var options = {};
|
||||
|
||||
options.strings = {
|
||||
bold: '<?php _e('加粗'); ?> <strong> Ctrl+B',
|
||||
@@ -55,13 +56,36 @@ $(document).ready(function () {
|
||||
help: '<?php _e('Markdown语法帮助'); ?>'
|
||||
};
|
||||
|
||||
var editor = new Markdown.Editor(converter, '', options),
|
||||
var editor = new Markdown.Editor(marked, '', options),
|
||||
diffMatch = new diff_match_patch(), last = '', preview = $('#wmd-preview'),
|
||||
mark = '@mark' + Math.ceil(Math.random() * 100000000) + '@',
|
||||
span = '<span class="diff" />';
|
||||
|
||||
// 设置markdown
|
||||
marked.setOptions({
|
||||
breaks : true
|
||||
});
|
||||
|
||||
// 自动跟随
|
||||
converter.postConversion = function (html) {
|
||||
editor.hooks.chain('postMarkdown', function (html) {
|
||||
html = html.replace(/<\/?(\!doctype|html|head|body|link|title|input|select|button|textarea|style|noscript)[^>]*>/ig, function (all) {
|
||||
return all.replace(/&/g, '&')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>')
|
||||
.replace(/'/g, ''')
|
||||
.replace(/"/g, '"');
|
||||
});
|
||||
|
||||
if (html.indexOf('<!--more-->') > 0) {
|
||||
var parts = html.split(/\s*<\!\-\-more\-\->\s*/),
|
||||
summary = parts.shift(),
|
||||
details = parts.join('');
|
||||
|
||||
html = '<div class="summary">' + summary + '</div>'
|
||||
+ '<div class="details">' + details + '</div>';
|
||||
}
|
||||
|
||||
|
||||
var diffs = diffMatch.diff_main(last, html);
|
||||
last = html;
|
||||
|
||||
@@ -110,7 +134,7 @@ $(document).ready(function () {
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
});
|
||||
|
||||
editor.hooks.chain('onPreviewRefresh', function () {
|
||||
var diff = $('.diff', preview);
|
||||
|
||||
Reference in New Issue
Block a user