【发布时间】:2016-04-27 07:36:18
【问题描述】:
我正在开发 Ruby on Rails 项目,我已经使用 redcarpet gem 为我的项目中的一些文本描述实现了降价语法。
它的工作原理就像魅力一样,允许将 Markdown 文本转换为 HTML,就像
<%= markdown some_text_variable %>
但现在我想实现预览功能,只渲染全文的一小部分。
下面的幼稚构造
<%= markdown some_text_variable[0..preview_length] %>
不会起作用,因为它很容易分解 MD 语法,从而导致结构混乱(想象一下,例如,在图像链接的一半上拆分原始字符串)。
我想出了
<%= markdown some_text_variable[0..preview_length].split(/\r?\n/)[0..-2].join("\r\n")) %>
但它不处理例如代码块。
有没有什么方法可以实现这样的MD文本预览?
【问题讨论】:
-
你能遍历 markdown 语法数组并检查匹配换行符和任何 markdown 字符的正则表达式吗?如果为真,(有开始和结束),打印切片,如果为假,(在下一个结束或换行之前有开始但没有结束并且没有打开标签),添加结束标签并打印切片?
-
@BottledSmoke 是不是太复杂了?以及如何处理没有结束标签的列表?我想出了在新行上切片的想法(但不少于一定数量的字符)。但它也不处理列表...
-
是的,我刚刚意识到您可以使用降价和摊牌。你必须原谅我。我刚起床:)
标签: ruby-on-rails ruby markdown redcarpet