我在rails 4应用程序中有一个正常工作的向下翻页编辑器,但我相信我遗漏了一些简单的东西,以便稍后在我的应用程序中呈现向下翻页数据。
这是我正在使用的gem(和初始化):https://github.com/hughevans/pagedown-bootstrap-rails
关于如何使用已经使用的宝石渲染数据的任何想法?
编辑:我认为问题的根源在于它不是将数据存储为HTML版本,因此当我再次显示数据时它不会呈现它。当表单被保存时,它缺少转换器步骤,但我没有看到任何关于如何执行此操作的具体说明,因此我认为它是这些宝石的默认部分。EDIT2:我已经采用这种方法在每次页面加载时转换Markdown,使用以下代码:
不幸的是,它没有使用所有的Pagedown Markdown,但它至少正确地处理新行:
有什么想法吗?
谢谢!
答案 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 }