#!/usr/bin/env plackup
use strict;
use warnings;
use Plack::Builder;

use lib "lib";
use HTML::FromANSI::Tiny;
my $w = HTML::FromANSI::Tiny->new(auto_reverse => 1, background => 'white', foreground => 'black');
my $b = HTML::FromANSI::Tiny->new(auto_reverse => 1, background => 'black', foreground => 'white');

my $ansi = do { local $/; <DATA> };

my $alternate = eval q{
  use HTML::FromANSI;
  HTML::FromANSI::ansi2html( $ansi );
};

my $html =
  sprintf '<html><head><style>%s</style></head><body><pre>%s</pre><pre style="background: black; color: white;">%s</pre><hr/><div>%s</div></body></html>',
    scalar $w->css,
    scalar $w->html( $ansi ),
    scalar $b->html( $ansi ),
    $alternate;

builder { 
  sub { [ 200, [ "Content-type" => "text/html" ], [ $html ] ]; }
};

__DATA__
 0	  0   0 		 1	  1   1 
 2	  2   2 		 3	  3   3 
 4	  4   4 		 5	  5   5 
 6	  6   6 		 7	  7   7 
30	 30  30 		31	 31  31 
30	 30  30 		31	 31  31 
32	 32  32 		33	 33  33 
34	 34  34 		35	 35  35 
36	 36  36 		37	 37  37 
40	 40  40 		41	 41  41 
42	 42  42 		43	 43  43 
44	 44  44 		45	 45  45 
46	 46  46 		47	 47  47 
90	 90  90 		91	 91  91 
92	 92  92 		93	 93  93 
94	 94  94 		95	 95  95 
96	 96  96 		97	 97  97 
100	 100  100 		101	 101  101 
102	 102  102 		103	 103  103 
104	 104  104 		105	 105  105 
106	 106  106 		107	 107  107