Как я могу заставить Textile создавать ссылки из простых URL-адресов? - PullRequest
2 голосов
/ 05 августа 2010

Многие из моих пользователей вводят простые URL-адреса и не используют текстильный формат для создания ссылок.Я хотел бы, чтобы Textile просто сделал ссылку доступной для URL.Мне не нужно беспокоиться о XSS или о чем-либо злонамеренном, потому что это внутренняя сеть с очень небольшой группой пользователей.Как лучше всего достичь этой функциональности?

Я использую версию RedCloth для Ruby.

Ответы [ 2 ]

3 голосов
/ 10 октября 2012

Как насчет этого?

def urls2links( s )
  s.gsub(
    /([^:])((https?|ftp)\:\/\/[^\s)'"]+[^.,)\s])(. |, |[\s]|\) | )/, 
    '\1<a href="\2" target="_blank">\2</a>\4')
end

def textile2html( s )
  textilize(urls2links(s)).html_safe
end

Используйте этот текст для проверки:

Plain urls converted to external links by my textile2html helper:
* http://www.google.com 
* http://www.google.com, 
* http://www.google.com. 
1 голос
/ 05 августа 2010

Я не уверен, может ли RedCloth превратить URL-адреса в интерактивные ссылки, но есть текстовый помощник Rails под названием auto_link , который может.

...