Top Level Namespace
Defined Under Namespace
Modules: Spacedocs Classes: GFMTest
Instance Method Summary collapse
Instance Method Details
#gfm(text) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/node_modules/dox/node_modules/github-flavored-markdown/code.rb', line 3 def gfm(text) # Extract pre blocks extractions = {} text.gsub!(%r{<pre>.*?</pre>}m) do |match| md5 = Digest::MD5.hexdigest(match) extractions[md5] = match "{gfm-extraction-#{md5}}" end # prevent foo_bar_baz from ending up with an italic word in the middle text.gsub!(/(^(?! {4}|\t)\w+_\w+_\w[\w_]*)/) do |x| x.gsub('_', '\_') if x.split('').sort.to_s[0..1] == '__' end # in very clear cases, let newlines become <br /> tags text.gsub!(/(\A|^$\n)(^\w[^\n]*\n)(^\w[^\n]*$)+/m) do |x| x.gsub(/^(.+)$/, "\\1 ") end # Insert pre block extractions text.gsub!(/\{gfm-extraction-([0-9a-f]{32})\}/) do extractions[$1] end text end |