Как заставить markitup editor, используя markdown set, отправлять markdown вместо html

#ruby-on-rails #markdown #markitup

#ruby-on-rails #markdown #markitup

Вопрос:

Я использую rails, и у меня есть редактор markItUp, использующий пользовательский набор Markdown. Единственное, чего я не могу понять, это как заставить его отправлять необработанный Markdown вместо преобразованного html. Я планирую сохранить оба формата, но я не нашел ничего, способного преобразовать html обратно в markdown. Я настроил markdown set set.js поскольку мы не хотели использовать весь набор параметров форматирования. Здесь:

 myMarkdownSettings = {
previewParserPath:  '',
onShiftEnter:       {keepDefault:false, openWith:'nn'},
markupSet: [    
    {name:'Bold', key:'B', openWith:'**', closeWith:'**'},
    {name:'Italic', key:'I', openWith:'_', closeWith:'_'},
    {name:'Bulleted List', openWith:'- ' },
    {name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' }
    ]
}
  

И вот готовый код для страницы, на которой отображаются элементы markitup:

 $.editable.addInputType('markitup', {
    element : $.editable.types.textarea.element,
    plugin  : function(myMarkdownSettings, original) {
        $('textarea', this).markItUp(myMarkdownSettings);
    }
});

$('.editable').editable({type : 'markitup'});
  

Это работает, но он отправляется как html. Я пытался использовать wmd, поскольку есть опция для вывода, которая сохраняет текст markdown как есть, но не смог заставить его работать. Спасибо.

Ответ №1:

Предполагая, что текстовая область содержит текст в формате markdown, вы должны быть в состоянии захватить содержимое перед отправкой формы с помощью $ (‘.editable’).text() и сохранить его в другом скрытом поле, но вам нужно убедиться, что вы доберетесь до содержимого, прежде чем markitup его преобразует.

Если вы действительно просто хотите сохранить markdown, вам было бы лучше не использовать markitup, а просто оставить его как простой markdown в текстовом представлении, а затем перевести его самостоятельно в html для отображения с помощью одной из доступных библиотек, таких как rdiscount и т.д.