2010-08-05 64 views
2

我的許多用戶都在輸入純網址,而不是使用Textile格式創建鏈接。我希望Textile將URL鏈接到URL。我並不需要擔心XSS或任何惡意軟件,因爲它是一個只有很少用戶羣的內部網絡。什麼是實現此功能的最佳途徑?我如何才能讓Textile通過純URL創建鏈接?

我使用Ruby版本的RedCloth。

回答

1

我不確定RedCloth是否可以將URL變成可點擊的鏈接,但是有一個名爲auto_link的Rails文本幫助程序可以。

+0

有趣。我已經通過Textile發送數據,所以通過另一個解析器發送它並不是我想要做的。 – Sixty4Bit 2010-08-05 15:27:17

3

這個怎麼樣?

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. 
+0

請將您的答案解決並在其中添加新代碼 – Yaroslav 2012-10-10 11:33:06

+0

編輯您的答案,讓其他人一次查看完整答案,無需閱讀所有評論 – Yaroslav 2012-10-10 11:49:30

相關問題