Question

Je l'ai vu la lumière, je convertir mon site sur RedCloth pour utiliser le merveilleux balisage textile.

Le problème est, j'ai quelques années la valeur de contenu HTML dans ma base de données qui ne sont pas le balisage textile. Comment puis-je convertir en textile? Est-il un moyen non-manuel?

Si non, lorsque le contenu en sortie, dois-je vérifier html, si elle est présente alors ne pas utiliser RedCloth?

exemple:

// 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

Quelle est la façon rubis à ce sujet? Aidez un newb! : -)

Était-ce utile?

La solution 2

Trouvé ceci: http://clothred.rubyforge.org/

Et ceci: https://github.com/jystewart/html2textile

Et ceci: https://github.com/mattt/pricetag

modifier

Je suis allé avec html2textile. Je l'ai installé en utilisant l'instruction cette question SO demandai-je.

J'ai ensuite créé une tâche dans textile_ize appelé /lib/tasks/app.rake. Il ressemble à ceci:

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

Je pourrais alors courir rake db:textile_ize et poof, fait. En fait, j'ajouté une colonne supplémentaire pour stocker le textile et créer html du textile avec :before_save. Cela ressemblait à ceci (dans mon modèle):

before_save :textile_ize

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

Espérons que cela aide quelqu'un là-bas!

Autres conseils

J'utilise Rdiscount pour analyser le balisage, il fonctionne aussi bien avec html et entrée textile. Je suppose que le textile permet html, enfait si je mets balise forte dans cet éditeur travail de it!

ce qui se passe si vous Parse simple, HTML et textile avec redcloth?

<%= RedCloth.new(@content.description).to_html %>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top