1

私は光を見てきました。素晴らしいテキスタイルマークアップを使用するために、自分のサイトをRedClothに変換しています。

問題は、データベースにテキスタイルマークアップではない数年分のHTMLコンテンツがあることです。どうすればそれをテキスタイルに変換できますか?非手動の方法はありますか?

いいえの場合、コンテンツを出力するときにhtmlをチェックする必要があります。存在する場合は、RedClothを使用しないでください。

例:

// not sure of best way to check if a string has html
if (@content.description has html)
    <%= @content.description.html_safe %>
else
    <%= RedCloth.new(@content.description).to_html %>
end

これのルビーの方法は何ですか?初心者を助けてください!:-)

4

2 に答える 2

1

マークアップの解析にRdiscountを使用していますが、HTMLとテキスタイル入力の両方で機能します。テキスタイルはhtmlを許可していると思いますが、実際、このエディターに強力なタグを付ければ機能します。

htmlとテキスタイルの両方をredclothで単純に解析するとどうなりますか?

<%= RedCloth.new(@content.description).to_html %>
于 2011-01-28T16:55:08.173 に答える
1

これを見つけました:http://clothred.rubyforge.org/

そしてこれ:https ://github.com/jystewart/html2textile

そしてこれ:https ://github.com/mattt/pricetag

編集

私はhtml2textileを使いました。私が尋ねたこのSOの質問からの指示を使用してそれをインストールしました。

次に、textile_izeというタスクを/lib/tasks/app.rakeに作成しました。それはそのように見えます:

namespace :db do
  desc "Convert html to textile on desc columns"
  task :textile_ize => :environment do
    puts "Starting Desc"

    contents = Content.all
    contents.each do |c|
                    #desc
        parser = HTMLToTextileParser.new
        parser.feed(c.desc)
        c.desc_textile = parser.to_textile
        c.save
    end

    puts "Finished with Desc"

end

それから私は走っrake db:textile_izeて、ふざけることができました。テキスタイルを保存し、テキスタイルからhtmlを作成するための列を実際に追加しました:before_save。これは(私のモデルでは)次のようになりました。

before_save :textile_ize

# convert textile to html
def textile_ize
    self.desc = RedCloth.new(self.desc_textile).to_html     
end

これが誰かを助けてくれることを願っています!

于 2011-01-28T19:55:05.957 に答える