【问题标题】:Rendering Pagedown Markdown in Rails 4在 Rails 4 中渲染 Pagedown Markdown
【发布时间】:2014-02-05 02:11:27
【问题描述】:

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

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

关于如何使用已使用的 gem 渲染该数据有什么想法吗?

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

EDIT2:我已经采取了在每个页面加载时转换 Markdown 的方法,使用以下代码:

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

有什么想法吗?

谢谢!

【问题讨论】:

  • 将代码附加到 SO 时,使用代码语法以便我们可以复制和粘贴。
  • 谢谢,下次我会记住这一点。我移动得有点快

标签: ruby-on-rails markdown pagedown


【解决方案1】:

所以这个问题的答案有两个。您可以将 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));
  });
});

我希望这对将来的其他人有所帮助。

【讨论】:

    【解决方案2】:

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

    = f.input :description, :as =&gt; :pagedown, :input_html =&gt; { :preview =&gt; true }

    【讨论】:

    • 我的意思是在表单保存后渲染数据。不呈现表单本身。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2017-05-07
    • 2021-11-10
    • 2023-04-10
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    相关资源
    最近更新 更多