4

标题几乎解释了它。我正在使用 Ruby 1.9.3 和 Rails 3.2.2 为自己编写一个博客引擎,我需要能够从帖子中获取第一段(作为文本单元存储在数据库中)以用作帖子头版摘要。最简单的方法是什么?

谷歌在这个问题上透露的很少;这似乎不是一个普遍的需求。

4

3 回答 3

13

一旦你开始思考在你的世界中究竟是什么定义了“段落”,答案就会变得相当明显。

如果它是第一个字符列表,后跟两个换行符?就像是

str.split("\n\n", 2)[0]

可以工作。

如果您有 HTML 并且您的段落由<p>标签定义,请使用 nokogiri 之类的

Nokogiri::HTML.parse(input_string).css('p').first.text

但是再次,这完全取决于你如何定义你的段落。一旦您开始考虑您想要拥有什么,例如如何以抽象方式将输入数据转换为输出数据,这样的事情通常会自行解决。所需的算法自然来自这些步骤。

于 2012-04-14T21:11:02.843 回答
0

万一这可能对某人有所帮助,我通过将 Holger Just 的 Nokogiri 解决方案与 RedCloth 相结合来获得 html 标签,从而在 RoR 中获得了预期的结果:

Nokogiri::HTML.parse(raw RedCloth.new(input_string).to_html).css('p').first.text
于 2013-02-24T09:52:01.000 回答
-1

str.lines[0] 应该给你第一句话......或者如果你不介意在句子中间分裂,则只需使用 truncate() ActionView Helper

于 2013-08-09T13:34:48.840 回答