class Goethe::Utils
Public Class Methods
auto_link(str)
click to toggle source
从文本中找到链接,转化为 `<a>` 标签,找到换行符,转换为 `
` 标签
@param [String] str
@return [String]
# File lib/goethe/utils.rb, line 14 def auto_link(str) str = str.dup str.gsub!(/<(S*?)[^>]*>.*?|<.*? \/>/) do |s| s.gsub!(/</, "<") s.gsub!(/>/, ">") end str.gsub!(/((https|http|ftp):\/\/)([a-zA-Z0-9.\-_%&=\/\#:\?]+)/i) do protocol, url = $1, $3 %Q{<a href="#{protocol}#{url}" rel="nofollow" target="_blank">#{protocol}#{url}</a>} end str.gsub!(/\r\n|\n/, "<br>") str end
remove_markdown_symbols(str)
click to toggle source
移除文本中所有的 Markdown 控制字符
@param [String] str
@return [String]
# File lib/goethe/utils.rb, line 51 def remove_markdown_symbols(str) return "" if str.nil? result = "" # HEADERS result = str.gsub(Goethe::Regex[:MARKDOWN][:HEADERS], "") #p "HEADERS: #{result}, #{result.size}" result = result.gsub(Goethe::Regex[:MARKDOWN][:BLOCKQUOTES], "") #p "BLOCKQUOTES: #{result}, #{result.size}" # RULERS result = result.gsub(Goethe::Regex[:MARKDOWN][:HRULERS], "") do $2 end #p "RULERS: #{result}, #{result.size}" # LISTS result = result.gsub(Goethe::Regex[:MARKDOWN][:LISTS], "") #p "LISTS: #{result}, #{result.size}" # EMPHASIS result = result.gsub(Goethe::Regex[:MARKDOWN][:EMPHASIS]) do $2 end # IMAGES result = result.gsub(Goethe::Regex[:MARKDOWN][:IMAGES], "") # LINKs result = result.gsub(Goethe::Regex[:MARKDOWN][:LINKS]) do $1 end # COPYRIGHT result = result.gsub(Goethe::Regex[:MARKDOWN][:COPYRIGHT], "") # <quock_link> result = result.gsub(Goethe::Regex[:MARKDOWN][:QUICK_LINKS]) do " #{$1} " end result end