BlueCloth не работает с Rails 3 - PullRequest
       47

BlueCloth не работает с Rails 3

5 голосов
/ 30 августа 2010

Совместим ли BlueCloth с Rails 3? Я не могу заставить это работать, может быть, кто-то использует это?

Предполагается, что в представлениях должен присутствовать помощник под названием 'markdown' после запроса 'bluecloth', но, похоже, он недоступен.

Ответы [ 4 ]

10 голосов
/ 21 октября 2010

Я обновляю приложение до rails3 прямо сейчас, и оно работало нормально для меня.Я использую вспомогательную функцию под названием «формат» в шаблонах, хотя код ниже также предоставляет функцию уценки (в rails3 вам придется использовать это с raw ()).Вот содержимое моего [проекта] /app/helpers/application_helper.rb

module ApplicationHelper
  # Format text for display.                                                                    
  def format(text)
    sanitize(markdown(text))
  end

  # Process text with Markdown.                                                                 
  def markdown(text)
    BlueCloth::new(text).to_html
  end
end

Как сказал предыдущий автор, вам также потребуется

gem 'bluecloth'

в вашем [проекте]/ Gemfile.Мой шаблон выглядит так:

<p><%= format @post.body %></p>

С функцией уценки это будет:

<p><%= raw(markdown(@post.body)) %></p>

Поэтому я использую функцию форматирования.Переименуйте функции так, как вы хотите.

2 голосов
/ 27 сентября 2010

Я создал новое приложение на Rails 3 и в Gemfile добавил:

gem 'bluecloth', '>= 2.0.0'

Затем открыл консоль:

ruby-1.8.7-p302 > BlueCloth.new('**hello**').to_html
=> "<p><strong>hello</strong></p>"

Так что, похоже, работаетпо крайней мере для меня.

Вы также можете попробовать Rdiscount, который я не уверен, но я думаю, что он основан на той же библиотеке C, или, по крайней мере, имеет аналогичные тесты.

Вы должны быть более конкретными вкак это не работает: это вызывает ошибку?Разве это не делает HTML?и т.д ...

0 голосов
/ 26 октября 2010

Я бы посоветовал перейти на RDiscount через BlueCloth.Это капля замены и лучше по всем показателям.

http://github.com/rtomayko/rdiscount

0 голосов
/ 03 октября 2010

Что вы могли бы сделать, не говоря уже о том, что это красиво, - это создать инициализатор в вашем проекте rails и добавить в него следующее:

require 'bluecloth'

class String
 def markdown
   BlueCloth.new(self).to_html
 end
end

Это должно включить метод уценки для каждого строкового объекта.

...