首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拼音:将HTML/Redcloth转换为纯文本

拼音:将HTML/Redcloth转换为纯文本
EN

Stack Overflow用户
提问于 2009-06-05 09:33:05
回答 3查看 2.1K关注 0票数 2

有人知道如何用Ruby将html转换为纯文本吗?实际上,我需要将RedCloth转换为纯文本,任何一种方式都可以。

我说的不仅仅是去掉标签(这就是我到目前为止所做的全部)。例如,我希望有序列表保留数字,无序列表使用星号表示项目符号等。

代码语言:javascript
复制
 def red_cloth_to_plain_text(s)
       s = RedCloth.new(s).to_html
       s = strip_tags(s)
       s = html_unescape(s) # reverse of html_escape
       s = undo_red_cloths_html_codes(s)
       return s 
 end

也许我必须尝试一个RedCloth到纯文本格式化程序

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-05 11:24:42

您需要创建一个新的格式化器类。

代码语言:javascript
复制
module RedCloth::Formatters
  module PlainText
    include RedCloth::Formatters::Base
    # ...
  end
end

我今天不会为你写你的代码,但这很容易做到。如果您对我有疑问,请阅读RedCloth源代码:它只有346行。

因此,一旦有了PlainText格式化程序,就可以修补类并使用它:

代码语言:javascript
复制
module RedCloth
  class TextileDoc
    def to_txt( *rules )
      apply_rules(rules)
      to(RedCloth::Formatters::PlainText)
    end
  end
end

print RedCloth.new(str).to_txt
票数 2
EN

Stack Overflow用户

发布于 2010-05-13 21:33:20

Joseph Halter写了一个RedCloth的普通格式化程序:

http://github.com/JosephHalter/redcloth-formatters-plain

示例用法:

代码语言:javascript
复制
RedCloth.new("p. this is *simple* _test_").to_plain

将返回:

代码语言:javascript
复制
"this is simple test"
票数 2
EN

Stack Overflow用户

发布于 2009-06-05 11:11:31

这可能就是你必须要做的。You're not the first to want this,但我猜它还不是这个库的一部分,因为每个人都希望他们的纯文本稍有不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/955027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档