Рендеринг Pagedown Markdown в Rails 4

У меня есть правильно работающий редактор pagedown в приложении rails 4, но я считаю, что мне не хватает чего-то простого для отображения данных pagedown на более позднем этапе моего приложения.

Вот гем (и инициализация), который я использую: https://github.com/hughevans/pagedown-bootstrap-rails

Любые идеи о том, как отображать эти данные с уже использованными драгоценными камнями?

РЕДАКТИРОВАТЬ: я думаю, что корень моей проблемы в том, что он не хранит данные в виде HTML-версии, поэтому он не отображает их, когда я снова отображаю данные. При сохранении формы отсутствует шаг конвертера, но я не вижу никаких конкретных инструкций о том, как это сделать, поэтому я предположил, что это часть этих драгоценных камней по умолчанию.

EDIT2: с тех пор я использовал подход для преобразования Markdown при каждой загрузке страницы со следующим кодом:

введите здесь описание изображения

К сожалению, он не использует всю разметку Pagedown, но, по крайней мере, правильно обрабатывает новые строки:

результат

Есть идеи?

Спасибо!


person toobulkeh    schedule 03.02.2014    source источник
comment
При присоединении кода к SO используйте синтаксис кода, чтобы мы могли копировать и вставлять.   -  person Nathan Lilienthal    schedule 05.02.2014
comment
спасибо, буду иметь в виду в следующий раз. Я двигался немного быстро   -  person toobulkeh    schedule 05.02.2014


Ответы (2)


Так что ответ на этот вопрос двоякий. Либо вы можете преобразовать MD в HTML и сохранить его в базе данных, либо оставить его как MD в БД и преобразовывать его в HTML каждый раз, когда вы хотите его отобразить. Обратите внимание, что вам нужно будет преобразовать его обратно в MD (я не уверен, что это совсем просто или нет), если вы хотите, чтобы это поле можно было редактировать в исходном MD.

Так как это приложение не заботится о производительности, я решил сохранить его как MD и визуализировать. Результаты, которые я получил выше, связаны с рендерингом пробелов HAML, поэтому мне пришлось использовать небольшие фильтры HAML, чтобы обойти это.

В итоге HAML выглядел так:

.wmd-output><
  :preserve
    #{@object.attribute}

Вторая задача была на самом деле довольно простой, просто нигде в документации Markdown явно не указано. Итак, я только что написал некоторый javascript, который автоматически преобразует любой класс .wmd-output в правильный Markdown при загрузке страницы:

$(function() {
  $('.wmd-output').each(function(i) {
    var converter = new Markdown.Converter();
    var content = $(this).html();
    $(this).html(converter.makeHtml(content));
  });
});

Я надеюсь, что это поможет другим людям в будущем.

person toobulkeh    schedule 04.02.2014

Эта строка haml должна быть тем, что вам нужно для ее рендеринга:

= f.input :description, :as => :pagedown, :input_html => { :preview => true }

person GeekOnCoffee    schedule 03.02.2014
comment
Я имею в виду визуализацию данных после того, как форма уже сохранена. Не отображать саму форму. Спасибо! - person toobulkeh; 04.02.2014