2010-08-30 12 views
5

¿BlueCloth es compatible con Rails 3? No puedo hacer que funcione, tal vez alguien lo usa?BlueCloth no funciona con Rails 3

Se supone que hay un ayudante llamado 'markdown' disponible en las vistas después de requerir 'bluecloth', pero parece que no está disponible.

+1

tener este problema, también – postfuturist

Respuesta

2

He creado un fresco carriles 3 y aplicación en el Gemfile añadí:

gem 'bluecloth', '>= 2.0.0' 

Entonces les abrió la consola:

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

Así que parece estar funcionando, al menos para mí .

También podría intentar Rdiscount que no estoy seguro pero creo que está basado en la misma biblioteca de C, o al menos tiene puntos de referencia similares.

Debería ser más específico en cómo no funciona: ¿genera un error? ¿No representa html? etc ...

+0

Sí, funciona la biblioteca BlueCloth, pero no hay ayudante 'rebaja' disponible. – postfuturist

+0

Siempre he definido mi ayudante en ApplicationHelper, imagino que BlueGem no es específico para rieles, ¿BlueGem incluye un ayudante de Rails? – Macario

0

Lo que podría hacer, sin decir que es bastante, es la creación de un inicializador en su proyecto rieles y poner el siguiente en él:

require 'bluecloth' 

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

Esto debería permitir que el método de reducción del precio en cada cuerda objeto.

10

Estoy actualizando una aplicación a rails3 en este momento y funcionó bien para mí. Utilizo una función auxiliar llamada "formato" en las plantillas, aunque el código a continuación también proporciona una función de reducción (en rails3 tendrás que usar eso con raw()). He aquí el contenido de mi [proyecto] /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 

Como un usuario anterior dijo, también necesitará

gem 'bluecloth' 

en su [proyecto]/Gemfile. Mi plantilla se parece a:

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

Con la función de reducción del precio sería:

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

lo tanto, utilizar la función de formato. Cambie el nombre de las funciones como lo desee.

+0

Agregaría .html_safe a la cadena que devuelve su ayudante. Entonces es simplemente "<% = markdown @ post.body%>", sin necesidad de "raw". –

Cuestiones relacionadas