简单的一个 - 如何截断博客帖子的文本(比方说)第3段?并明确告诉它不渲染图像?
我正在使用markdown btw。这可以通过简单的代码以一些“优雅”的方式完成,纯红宝石中没有外部宝石吗?
如果没有,如何最好地实施它?
答案 0 :(得分:3)
对于截断段落,以下内容应该有效:
def truncate_by_paragraph(text, num=3)
# since I'm not sure if the text will have \r, \n or both I'm swapping
# all \r characters for \n, then splitting at the newlines and removing
# any blank characters from the array
array = text.gsub("\r", "\n").split("\n").reject { |i| i == "" }
array.take(num).join("\n") + ".." # only 2 dots since sentence will already have 1
end
要删除图像,您可以执行以下操作:
def remove_images(text)
text.gsub(/<img([^>])+/, "")
end
然后你可以做
truncate_by_paragraph(@text) # will return first 3 paragraphs
truncate_by_paragraph(@text, 5) # will return first 5 paragraphs
remove_images(truncate_by_paragraph(@text)) # 3 paragraphs + no images
根据您之后的格式,您可能希望将第一种方法中的join
更改为join("\n\n")
以获得双倍间距。
此外,如果你真的想在文本的末尾...
,你可能想测试第3段是否有点,或者它可能已经有3。