Class: OrbitalFields::Markdown::HTMLwithPygments

Inherits:
Redcarpet::Render::HTML
  • Object
show all
Defined in:
lib/orbital_fields/markdown.rb

Instance Method Summary collapse

Instance Method Details

#block_code(code, language) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/orbital_fields/markdown.rb', line 51

def block_code(code, language)
  input_name = language.to_s
  input_name = input_name.slice(0..19)+"..."+input_name.slice(-1..-20) if input_name.length > 40
  language = language.match(/\.([^\.]*)$/i)[1].downcase if language =~ /\.([^\.]*)$/i
  language = "rhtml" if language == "erb"
  lexer = Pygments::Lexer.find_by_alias(language)
  lexer_name = lexer.name.downcase unless lexer.nil?
  lexer_name ||= "text"
  lexer ||= Pygments::Lexer.find_by_alias(lexer_name)
  "    <div class=\"code_block\">\n      <div class=\"code_header\">\n        \#{CGI.escapeHTML(input_name)} rendered as \#{CGI.escapeHTML(lexer.name)}\n        \#{clippy(code)}\n      </div>\n      \#{Pygments.highlight(code, lexer: lexer_name)}\n    </div>\n  EOS\nend\n"

#clippy(text) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/orbital_fields/markdown.rb', line 71

def clippy(text)
  id = "clippy_#{rand(10000000)}"
  "    <div id=\"\#{id}\" class=\"clippy\">\n      <span style=\"display:none;visibility:hidden\" class=\"clippy_code\">\#{CGI.escapeHTML(text)}</span>\n      <span class=\"clippy_label\"></span>\n      <object type=\"application/x-shockwave-flash\" data=\"/assets/orbital_fields/clippy.swf\" width=\"14\" height=\"14\" id=\"\#{id}_flash\">\n        <param name=\"movie\" value=\"/assets/orbital_fields/clippy.swf\" />\n        <param name=\"allowScriptAccess\" value=\"always\" />\n        <param name=\"quality\" value=\"high\" />\n        <param name=\"scale\" value=\"noscale\" />\n        <param name=\"FlashVars\" value=\"target=\#{CGI.escape('#' + id)}\" />\n        <param name=\"bgcolor\" value=\"#E0E0E0\" />\n      </object>\n    </div>\n  EOS\nend\n"