Project

ansi_art

0.01
No commit activity in last 3 years
No release in over 3 years
Render AsciiArt to HTML and PNG format
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 1.0.9
~> 0.0.3
 Project Readme

AnsiArt

This project is under refactoring.

Pending issues:

  • Currently it only supports Ruby 1.9.2 or above because it uses String#encode!
  • It requires uming.ttc font file in current working directory. This is inconvenient.
  • The CSS should be moved somewhere else.
  • Do we need to refine API of AnsiArt::Document. It should be the only API class. All other classes are for internal use. It's nice if we can make its API as generic as possible.

I saw there are some code to use gd2 gem in ruby 1.8.x. I think that doesn't work.

Requirement

  • Ruby 1.9.2 or above
  • libgd

Installation

It's not on rubygems.org yet. Just clone the git reposiory and execute.

rake install

Example: Get it working

This gem requires CJK font AR PL UMing for PNG rendering, which is licensed under Arphic Public License. Put a uming.tcc font file in your working directory.

Ways to find it:

Download a ansi file:

wget http://ansi.loli.tw/ansiarts/static/803.ans

And here is the ruby snippet:

require 'rubygems'
gem 'ansi_art'
require 'ansi_art'

doc = AnsiArt::Document.new(IO.read('803.ans'))
File.open('out.html', 'w') { |f| f.write(doc.to_html) }
File.open('out.png', 'wb') { |f| f.write(doc.to_png) }

You should see out.html and out.png in your working directory.

Make HTML display correctly

HTML output needs to be wraped under a <div class="ansi-block"> tag, and apply required css files.

Example:

<!doctype html>
<html>
<head>
    <title>ANSI art test page</title>
    <link href="ansi.css" rel="stylesheet" type="text/css">
    <!--[if IE 9]>
    <link href="ansi.ie9.css" rel="stylesheet" type="text/css">
    <![endif]-->
</head>
<body>
    <div class="ansi-block">
	<%= c.to_html %>
    </div>
</body>
</html>