console_renderer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'console_renderer'
4
+
5
+ m = Redcarpet::Markdown.new(ConsoleRenderer)
6
+ puts m.render(ARGF.read)
@@ -0,0 +1,137 @@
1
+ require 'redcarpet'
2
+ require 'rainbow'
3
+ require 'syntax/convertors/html'
4
+
5
+ class ConsoleRenderer < Redcarpet::Render::Base
6
+
7
+ def self.syntax_highlight(code, inline=true)
8
+ tokenizer = Syntax.load "ruby"
9
+
10
+ c_line = ""
11
+
12
+ code.split("\n").each do |line|
13
+ c_line += " " unless inline
14
+ begin
15
+ bkp = c_line
16
+ tokenizer.tokenize( line ) do |token|
17
+ case token.group.to_s
18
+ when "comment" then c_line = c_line + token.color("#6EE18F")
19
+ when "constant" then c_line = c_line + token.color("#3D3D79")
20
+ when "expr" then c_line = c_line + token.color(:white)
21
+ when "ident" then c_line = c_line + token.color("#AAAAAA")
22
+ when "keyword" then c_line = c_line + token.color("#FF73EC")
23
+ when "normal" then c_line = c_line + token.color(:cyan)
24
+ when "number" then c_line = c_line + token.color("#FF6300")
25
+ when "punct" then c_line = c_line + token.color(:white)
26
+ when "string" then c_line = c_line + token.color(:red)
27
+ when "symbol" then c_line = c_line + token.color(:green)
28
+ else c_line += token
29
+ end
30
+ end
31
+ rescue
32
+ c_line = bkp + line
33
+ end
34
+ c_line += "\n" unless inline
35
+ end
36
+ c_line
37
+ end
38
+
39
+ def block_code(code, language)
40
+ "\n" + (ConsoleRenderer.syntax_highlight(code, false)) + "\n"
41
+ end
42
+
43
+ def block_quote(quote)
44
+ ret = ""
45
+ quote.split("\n").each do |line|
46
+ ret += "|".color(:cyan) + line
47
+ end
48
+ ret
49
+ end
50
+
51
+ def block_html(raw_html)
52
+ raw_html
53
+ end
54
+
55
+ def header(text, header_level)
56
+ text = "\n" + text + "\n"
57
+ if header_level == 1
58
+ text.bright.underline
59
+ else
60
+ text.underline
61
+ end
62
+ end
63
+
64
+ def hrule()
65
+ "___________________________".color(:yellow)
66
+ end
67
+
68
+ def list(contents, list_type)
69
+ contents
70
+ end
71
+
72
+ def list_item(text, list_type)
73
+ " " + "-".color(:cyan) + " " + text
74
+ end
75
+
76
+ def paragraph(text)
77
+ text + "\n"
78
+ end
79
+
80
+ def table(header, body)
81
+ body
82
+ end
83
+
84
+ def table_row(content)
85
+ content
86
+ end
87
+
88
+ def table_cell(content, alignment)
89
+ content
90
+ end
91
+
92
+ def autolink(link, link_type)
93
+ link.color(:cyan)
94
+ end
95
+
96
+ def codespan(code)
97
+ ConsoleRenderer.syntax_highlight(code)
98
+ end
99
+
100
+ def double_emphasis(text)
101
+ text.underline.italic
102
+ end
103
+
104
+ def emphasis(text)
105
+ text.italic
106
+ end
107
+
108
+ def image(link, title, alt_text)
109
+ ("<" + alt_text + ">").color(:green) + ("(image at: " + link + ")").color(:cyan)
110
+ end
111
+
112
+ def linebreak()
113
+ "\n\n"
114
+ end
115
+
116
+ def link(link, title, content)
117
+ (title || "") + " " + ("<" + link + ">").color(:cyan)
118
+ end
119
+
120
+ def raw_html(raw_html)
121
+ raw_html
122
+ end
123
+
124
+ def triple_emphasis(text)
125
+ text.bright.italic.underline
126
+ end
127
+
128
+ def strikethrough(text)
129
+ text
130
+ end
131
+
132
+ def superscript(text)
133
+ ("^" + text).color(:red)
134
+ end
135
+ end
136
+
137
+
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: console_renderer
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Aditya Bhargava
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-02-01 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description:
23
+ email: bluemangroupie@gmail.com
24
+ executables:
25
+ - console_renderer
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/console_renderer.rb
32
+ - bin/console_renderer
33
+ has_rdoc: true
34
+ homepage: https://github.com/egonSchiele/console_renderer
35
+ licenses: []
36
+
37
+ post_install_message:
38
+ rdoc_options: []
39
+
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ hash: 3
48
+ segments:
49
+ - 0
50
+ version: "0"
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ requirements: []
61
+
62
+ rubyforge_project:
63
+ rubygems_version: 1.3.7
64
+ signing_key:
65
+ specification_version: 3
66
+ summary: A renderer for Redcarpet. Render Markdown to the command line!
67
+ test_files: []
68
+