html2ansi 0.0.1 → 0.0.2

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/.gemspec +1 -1
  3. data/VERSION +1 -1
  4. data/bin/html2ansi +2 -182
  5. metadata +9 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 45fe5d736315b620fa3fe9fe74e34aaa577c07a8f6a21fc94de38a97ec4a24f5
4
- data.tar.gz: fe481aa5b73264cc995bdbf51c1b6678ab91da6defc555434715235278328c92
3
+ metadata.gz: 0e8ab4ee7076d454d787e65824c4aa0b2633a87174b683a4497caa6df938bb63
4
+ data.tar.gz: c20c48613e974012ab48dcf29df870ff48aa317d551274cd83a6cf38611447a2
5
5
  SHA512:
6
- metadata.gz: 645a5edb05dcedc588d576a30823461a792c602d5eab24a2bc92da2bf98cae6f0d47560a89c296f9e7d93e59b002d9a7bb1570cfdc6416b9dccbf6a18d029fe2
7
- data.tar.gz: 1901264055eaf8d09245667db01538e193344e1c12eeb3b69b6aa88a5f2a25096b97ca31cd4f13092aa8b32e57be83b82d4bb409fc44349f20e615d7f1d62764
6
+ metadata.gz: 75ef456ea75b33eaad75575d84253ce45294a66cc29e070ba3d3a476e2f30fb368a2a0e4d4d85ea7c88700f0e55feb909062718ef5d084a4708edde7affc5d49
7
+ data.tar.gz: a2cf630a3fe98ef0e7a53b92209a0d5017e6b7837829bd39eaf3ee61cf550112a5192f3e9821e3531c86d1827b15700fac50da415c344e4e181106311a80ee04
data/.gemspec CHANGED
@@ -15,5 +15,5 @@ Gem::Specification.new do |s|
15
15
  s.executables = ['html2ansi']
16
16
  s.extra_rdoc_files = ["README.md", "LICENSE"]
17
17
 
18
- s.add_dependency "html-renderer", "~> 0.1.0"
18
+ s.add_dependency "html-renderer", "~> 0.1.1"
19
19
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -1,18 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #######################################################################################
3
3
  require 'html-renderer'
4
- require 'terminal-table'
5
- require 'term/ansicolor'
6
- require 'coderay'
7
- #######################################################################################
8
-
9
- class String
10
- # include ANSI::Mixin
11
- include Term::ANSIColor
12
-
13
- def grey; self.black.bold; end
14
- end
15
-
16
4
  #######################################################################################
17
5
 
18
6
  def lesspipe(*args)
@@ -47,177 +35,9 @@ end
47
35
 
48
36
  #######################################################################################
49
37
 
50
- class ANSIRenderer < HTMLRenderer::Base
51
-
52
- private
53
-
54
- def indented?(text)
55
- indent_sizes = text.lines.map{ |line| if line =~ /^(\s+)/ then $1 else '' end }.map(&:size)
56
- indent_sizes.all? {|dent| dent > 0 }
57
- end
58
-
59
- def unwrap(text)
60
- return text unless indented? text
61
- text.lines.to_a.map(&:strip).join ' '
62
- end
63
-
64
- def indent(text,amount=2)
65
- text.lines.map{|line| " "*amount + line }.join
66
- end
67
-
68
- def smash(s)
69
- s&.downcase&.scan(/\w+/)&.join
70
- end
71
-
72
- def subscript(s)
73
- "[#{s}]"
74
- end
75
-
76
- public
77
-
78
- def normal_text(text)
79
- text
80
- end
81
-
82
- def underline(content)
83
- content.magenta.bold
84
- end
85
-
86
- def superscript(content)
87
- "^(#{content})"
88
- end
89
-
90
- def link(link, title, content)
91
- unless content&.[] /^Back /
92
- str = ""
93
- # str += "<15>#{content}</15>" if content
94
- str += content.white.bold if content
95
- if smash(link) != smash(content)
96
- # str += " <8>(</8><11>#{link}</11><8>)</8>"
97
- str += " #{"(".grey}#{link&.cyan&.bold}#{")".grey}"
98
- end
99
-
100
- str
101
- end
102
- end
103
-
104
- def anchor(name, title=nil, content=nil)
105
- result = "Anchor: ##{name}"
106
- result << " (#{title})" if title
107
- result << "\n"
108
- result << "#{content}\n" if content
109
- result
110
- end
111
-
112
- def image(link, title, content)
113
- link(link, nil, title)
114
- end
115
-
116
- def italic(text)
117
- text.yellow.bold
118
- end
119
-
120
- def block_code(code, language)
121
- language ||= :ruby
122
-
123
- language = language[1..-1] if language[0] == "." # strip leading "."
124
- language = :cpp if language == "C++"
125
-
126
- require 'coderay'
127
- "#{indent CodeRay.scan(code, language).term, 4}\n"
128
- end
129
-
130
- def block_quote(text)
131
- indent paragraph(text)
132
- end
133
-
134
- def codespan(code)
135
- code.cyan
136
- end
137
-
138
- def header(title, level, anchor=nil)
139
- bar = ("-"*(title.size+4)).grey
140
-
141
- title = case level
142
- when 1 then title.bold.yellow
143
- when 2 then title.bold.cyan
144
- when 3 then title.bold.blue
145
- else title.magenta
146
- end
147
-
148
- "#{bar}\n #{title}\n#{bar}\n\n"
149
- end
150
-
151
- def double_emphasis(text)
152
- text.bold.green
153
- end
154
-
155
- def emphasis(text)
156
- text.green
157
- end
158
-
159
- def linebreak
160
- "\n"
161
- end
162
-
163
- def paragraph(text)
164
- div(text) + "\n"
165
- end
166
-
167
- def div(text)
168
- "#{indented?(text) ? text : unwrap(text)}\n"
169
- end
170
-
171
- def list(content, list_type)
172
- case list_type
173
- when :ordered
174
- @counter = 0
175
- "#{content}\n"
176
- when :unordered
177
- "#{content}\n"
178
- end
179
- end
180
-
181
- def list_item(content, list_type)
182
- case list_type
183
- when :ordered
184
- @counter ||= 0
185
- @counter += 1
186
- # " <8>#{@counter}.</8> #{content.strip}\n".colorize
187
- " #{@counter.to_s.grey}. #{content.strip}\n"
188
- when :unordered
189
- # " <8>*</8> #{content.strip}\n".colorize
190
- " #{"*".grey} #{content.strip}\n"
191
- end
192
- end
193
-
194
- def definition_list(defs)
195
- defs.each do |dt, dd|
196
- puts "<15>#{dt}<7>:".colorize
197
- puts " #{dd}"
198
- puts
199
- end
200
- end
201
-
202
- def table(header, rows)
203
- if header
204
- table = Terminal::Table.new(headings: header, rows: rows)
205
- else
206
- table = Terminal::Table.new(rows: rows)
207
- end
208
- "#{table}\n\n"
209
- end
210
-
211
- def separator
212
- "_____________________________\n\n"
213
- end
214
-
215
- end
216
-
217
- #######################################################################################
218
-
219
38
  def render(stream, paged=false)
220
- output = ANSIRenderer.render(stream)
39
+ output = HTMLRenderer::ANSI.render(stream)
40
+
221
41
  if paged
222
42
  lesspipe { |less| less.puts output }
223
43
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html2ansi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - epitron
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-02 00:00:00.000000000 Z
11
+ date: 2020-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html-renderer
@@ -16,15 +16,15 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: 0.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0
27
- description:
26
+ version: 0.1.1
27
+ description:
28
28
  email: chris@ill-logic.com
29
29
  executables:
30
30
  - html2ansi
@@ -45,7 +45,7 @@ homepage: http://github.com/epitron/html2ansi/
45
45
  licenses:
46
46
  - WTFPL
47
47
  metadata: {}
48
- post_install_message:
48
+ post_install_message:
49
49
  rdoc_options: []
50
50
  require_paths:
51
51
  - lib
@@ -60,8 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  requirements: []
63
- rubygems_version: 3.1.2
64
- signing_key:
63
+ rubygems_version: 3.1.3
64
+ signing_key:
65
65
  specification_version: 4
66
66
  summary: html2ansi is readability for the terminal (renders html documents to text,
67
67
  with terminal colors)