2015-01-11 3 views
1

У меня есть Rails 4 приложения (который использует RedCarpet) и вспомогательный метод, который выглядит как:уценки и внешние ссылки

def markdown(text) 
    options = { 
    escape_html:  true, 
    hard_wrap:  true, 
    link_attributes: { rel: 'nofollow', target: "_blank" }, 
    space_after_headers: true, 
    fenced_code_blocks: true 
    } 

    extensions = { 
    autolink:   true, 
    superscript:  true, 
    disable_indented_code_blocks: true 
    } 

    renderer = Redcarpet::Render::HTML.new(options) 
    markdown = Redcarpet::Markdown.new(renderer, extensions) 

    markdown.render(text).html_safe 
end 

Моя проблема заключается в том, что если кто-то ставит, например [Example here](www.example.com), затем анализируется, и кто-то нажимает на ссылку, она отправляется в www.mywebsite.com/www.example.com, а не www.example.com.

Как исправить это?

+0

он не отвечает на ваш вопрос, но одна вещь, которую пользователь может сделать, это ввести полный URL-адрес, например, в 'https: // www.example.com' или' // example.com' – AndreiMotinga

ответ

0

Для меня, работает ваш метод с "[Example here](www.example.com)" и RedCarpet 3.0 возвращает:

"<p><a href=\"www.example.com\" rel=\"nofollow\" target=\"_blank\">Example here</a></p>\n"

Таким образом, появляется это что-то другое в вашем приложении. Если вы заметили проблему на стороне клиента (т. Е. Нажав ссылку в своем браузере), я предполагаю, что это в ваших представлениях где-то в HTML. Я бы искал каталог файлов вашего приложения, особенно любой HTML, для «www.mywebsite.com».

+0

Не собирается лгать. Я вытягивал свои волосы, пытаясь понять, почему он не работает. И ваш ответ был лучшим. Это действительно было во взглядах. Не уверен, почему кто-то будет вниз. Приветствия. – Andy