在Rails中渲染Pagedown Markdown 4

时间:2014-02-03 20:14:53

标签: ruby-on-rails markdown pagedown

我在rails 4应用程序中有一个正常工作的向下翻页编辑器,但我相信我遗漏了一些简单的东西,以便稍后在我的应用程序中呈现向下翻页数据。

这是我正在使用的gem(和初始化):https://github.com/hughevans/pagedown-bootstrap-rails

关于如何使用已经使用的宝石渲染数据的任何想法?

编辑:我认为问题的根源在于它不是将数据存储为HTML版本,因此当我再次显示数据时它不会呈现它。当表单被保存时,它缺少转换器步骤,但我没有看到任何关于如何执行此操作的具体说明,因此我认为它是这些宝石的默认部分。

EDIT2:我已经采用这种方法在每次页面加载时转换Markdown,使用以下代码:

enter image description here

不幸的是,它没有使用所有的Pagedown Markdown,但它至少正确地处理新行:

the result

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

所以这个问题的答案有两个方面。您可以将MD转换为HTML并将其存储在数据库中,或将其作为MD保留在DB中,并在每次要渲染时将其转换为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));
  });
});

我希望将来可以帮助其他人。

答案 1 :(得分:0)

引用的haml行应该是你需要渲染的:

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