ansi-to-html 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f9e7dbe4d083c0b74ee77285f47f2daec616d7b
4
- data.tar.gz: 01879dc879674b42e8bc6368ab55cad6e3dcc1b2
3
+ metadata.gz: 6de44dd3141015a87cf2f4baa04e52191be1ca56
4
+ data.tar.gz: 36b30e5a8bd7ee6e93b0a20f19a26d1ee902db9f
5
5
  SHA512:
6
- metadata.gz: 78d03393a40ed88a098831dae72dd536874f5fb80c49cdf599b42441b5ea4577191063f50c4f59a29393eac4bb8c4c7a673483cd3c11813d3c9c75f5b5a93fcf
7
- data.tar.gz: 6e08bc41732b59fea71a61f9b49fec7a6c5a2b7adbd659b9223434518287193779ed3a6139e71886356e166defac73b9eeab575f2311fd39e979e78623436435
6
+ metadata.gz: eea73932e671fe416d6e390f0b9439bb7298dea8d3adaf5dd32c00d18cdaa86e06ef9bc7a6ddf81c29a3c5132169c6701172e1781802d8dbc9cbe31407eb2299
7
+ data.tar.gz: 1b8827dcc1e2f7a1fc12d57e1fcbff6fc83c81f5a33b7f696bb6848a01622041b3cc843de24ec6da294ea28b019f1319cfe3335d71c5e40800e1558c5026f527
data/README.md CHANGED
@@ -4,6 +4,14 @@ ANSI color code sequence to HTML.
4
4
 
5
5
  See `examples/` directory for a generated result.
6
6
 
7
+ This is almost deadcopy of [bcat](https://github.com/rtomayko/bcat/blob/master/lib/bcat/ansi.rb) :bow:
8
+
9
+ But some differences are:
10
+
11
+ - `\x1b[39m` (and `49m`) support
12
+ - bgcolor for 256color support
13
+ - generate whole `<html>` with default fg/bg color (via `-f`,`-b`)
14
+
7
15
  ## Installation
8
16
 
9
17
  Add this line to your application's Gemfile:
@@ -25,6 +33,8 @@ Or install it yourself as:
25
33
  $ cat /tmp/terminal | ansi-to-html > /tmp/bar.html
26
34
  $ tmux capture-pane -S -10000 -e; tmux show-buffer | ansi-to-html > /tmp/baz.html
27
35
 
36
+ Specify default foreground/background color with `-f` and/or `-b` option such as `ansi-to-html -f '#fff' -b '#000'`.
37
+
28
38
  ## Contributing
29
39
 
30
40
  1. Fork it
@@ -15,9 +15,11 @@ opt = OptionParser.new
15
15
  colors = {
16
16
  :fg => "#fff",
17
17
  :bg => "#000",
18
+ :pallete => :linux,
18
19
  }
19
- opt.on('-f', '--fg=VAL') {|v| colors[:fg] = v }
20
- opt.on('-b', '--bg=VAL') {|v| colors[:bg] = v }
20
+ opt.on('-f VAL', '--fg=VAL') {|v| colors[:fg] = v }
21
+ opt.on('-b VAL', '--bg=VAL') {|v| colors[:bg] = v }
22
+ opt.on('-p VAL', '--pallete=VAL') {|v| colors[:pallete] = v.to_sym }
21
23
  opt.parse! ARGV
22
24
 
23
25
  if ARGF.to_io == STDIN && !File.pipe?(STDIN)
@@ -28,14 +30,8 @@ end
28
30
  ansi = Ansi::To::Html.new(ARGF)
29
31
 
30
32
  puts "<html><head><style>"
31
- puts <<-CSS
32
- body {
33
- background-color: #{colors[:bg]};
34
- color: #{colors[:fg]};
35
- }
36
- CSS
37
- puts "</style></head><body>"
33
+ puts %Q!</style></head><body style="color:#{colors[:fg]};background-color:#{colors[:bg]}">!
38
34
  puts "<pre>"
39
- puts ansi.to_html
35
+ puts ansi.to_html(colors[:pallete])
40
36
  puts "</pre>"
41
37
  puts "</body></html>"
@@ -14,43 +14,30 @@ module Ansi
14
14
  ESCAPE = "\x1b"
15
15
 
16
16
  # Linux console palette
17
- STYLES = {
18
- 'ef0' => 'color:#000',
19
- 'ef1' => 'color:#A00',
20
- 'ef2' => 'color:#0A0',
21
- 'ef3' => 'color:#A50',
22
- 'ef4' => 'color:#00A',
23
- 'ef5' => 'color:#A0A',
24
- 'ef6' => 'color:#0AA',
25
- 'ef7' => 'color:#AAA',
26
- 'ef8' => 'color:#555',
27
- 'ef9' => 'color:#F55',
28
- 'ef10' => 'color:#5F5',
29
- 'ef11' => 'color:#FF5',
30
- 'ef12' => 'color:#55F',
31
- 'ef13' => 'color:#F5F',
32
- 'ef14' => 'color:#5FF',
33
- 'ef15' => 'color:#FFF',
34
- 'eb0' => 'background-color:#000',
35
- 'eb1' => 'background-color:#A00',
36
- 'eb2' => 'background-color:#0A0',
37
- 'eb3' => 'background-color:#A50',
38
- 'eb4' => 'background-color:#00A',
39
- 'eb5' => 'background-color:#A0A',
40
- 'eb6' => 'background-color:#0AA',
41
- 'eb7' => 'background-color:#AAA',
42
- 'eb8' => 'background-color:#555',
43
- 'eb9' => 'background-color:#F55',
44
- 'eb10' => 'background-color:#5F5',
45
- 'eb11' => 'background-color:#FF5',
46
- 'eb12' => 'background-color:#55F',
47
- 'eb13' => 'background-color:#F5F',
48
- 'eb14' => 'background-color:#5FF',
49
- 'eb15' => 'background-color:#FFF',
17
+ pallete = { # http://www.pixelbeat.org/scripts/ansi2html.sh
18
+ :solarized => %w(
19
+ 073642 D30102 859900 B58900 268BD2 D33682 2AA198 EEE8D5 002B36 CB4B16 586E75 657B83 839496 6C71C4 93A1A1 FDF6E3
20
+ ),
21
+ :linux => %w(
22
+ 000 A00 0A0 A50 00A A0A 0AA AAA 555 F55 5F5 FF5 55F F5F 5FF FFF
23
+ ),
24
+ :tango => %w(
25
+ 262626 AF0000 5F8700 AF8700 0087FF AF005F 00AFAF E4E4E4 1C1C1C D75F00 585858 626262 808080 5F5FAF 8A8A8A FFFFD7
26
+ ),
27
+ :xterm => %w(
28
+ 000000 CD0000 00CD00 CDCD00 0000EE CD00CD 00CDCD E5E5E5 7F7F7F FF0000 00FF00 FFFF00 5C5CFF FF00FF 00FFFF FFFFFF
29
+ ),
50
30
  }
51
31
 
52
- ##
53
- # The default xterm 256 colour palette
32
+ STYLES = {}
33
+ PALLETE = {}
34
+ pallete.each do |key, colors|
35
+ PALLETE[key] = {}
36
+ (0..15).each do |n|
37
+ PALLETE[key]["ef#{n}"] = "color:##{colors[n]};"
38
+ PALLETE[key]["eb#{n}"] = "background-color:##{colors[n]}"
39
+ end
40
+ end
54
41
 
55
42
  (0..5).each do |red|
56
43
  (0..5).each do |green|
@@ -84,8 +71,13 @@ module Ansi
84
71
  @stack = []
85
72
  end
86
73
 
87
- def to_html
74
+ def to_html(pallete = :linux)
88
75
  buf = []
76
+ if PALLETE.keys.include?(pallete)
77
+ @pallete = pallete
78
+ else
79
+ warn "--pallet=#{pallete} is unknown."
80
+ end
89
81
  each { |chunk| buf << chunk }
90
82
  buf.join
91
83
  end
@@ -128,7 +120,7 @@ module Ansi
128
120
  end
129
121
 
130
122
  def push_tag(tag, style=nil)
131
- style = STYLES[style] if style && !style.include?(':')
123
+ style = STYLES[style] || PALLETE[@pallete || :linux][style] if style && !style.include?(':')
132
124
  @stack.push tag
133
125
  [ "<#{tag}",
134
126
  (" style='#{style}'" if style),
@@ -1,7 +1,7 @@
1
1
  module Ansi
2
2
  module To
3
3
  class Html
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansi-to-html
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
  - uu59
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2013-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler