我正在使用jquery 内联编辑插件jeditable 。谢天谢地, jeditia提供插件能力,用于在内联延伸开箱即用编辑它提供。

我希望没有重新发明轮子 - 因为它已经是一个 pagedown 插件已经存在菊花?如果我的Google-fu没有转变任何结果。

有帮助吗?

解决方案

我从来没有找到jeditaitapagedown插件,所以我自己写了一下。下面的例子太具体了,可以在没有修改的情况下使用,但应该为任何人努力完成类似的任务,提供足够的概要。

代码将“markdown”输入类型添加到JEDable:

var converter = Markdown.getSanitizingConverter();

$.editable.addInputType('markdown', {
    element: function(settings, original) {
        var editorId = original.id.substring(original.id.lastIndexOf("-"));
        var input = $('<textarea />');
        input.attr('id', 'wmd-input' + editorId);

        var panel = $('<div class="wmd-panel" />');
        panel.append('<div id="wmd-button-bar' + editorId + '" />');
        panel.append(input);
        panel.append('<div id="wmd-preview' + editorId + '" />');

        $(this).append(panel);
        return (input);
    },
    plugin: function(settings, original) {
        var editorId = original.id.substring(original.id.lastIndexOf("-"));
        var editor = new Markdown.Editor(converter, editorId);
        editor.run();
    }
});
.

上面的代码通过一堆有关元素ID的激动,因为在我的情况下,我可以在单个页面上有几个编辑器。查看 pagedown文档

一旦我添加了“Markdown”输入类型到JEDable,它只是利用此代码使用它的问题:

$('.editable-element-area').editable('http://jsfiddle.net/echo/jsonp/', {
    onblur: 'submit',
    type: 'markdown',
    indicator: 'Saving...',
    loadurl: 'http://jsfiddle.net/echo/jsonp/', // retrieve existing markdown
    callback: function(value, settings) {
        $(this).html(converter.makeHtml(value)); // render updated markdown
    }
});​
.

我希望我的用户在没有编辑时将标记视为HTML,所以我必须使用回调和loadull JEDITATION参数。 Load URL检索文本以以标记格式编辑,而调用将新文本转换回HTML。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top