packages feed

noise-0.0.1: README.md

# Noise

Noise is a concise, friendly language for graphic design that translates directly to [SVG 1.1](http://www.w3.org/TR/SVG11/). You can learn more about the language at [its webpage](http://tombrow.com/noise).

This project is an implementation of Noise written in [Haskell](http://haskell.org). It includes an interpreter and a library of modules that you can use to write your own interpreter.

## Installation

First, install the [Haskell Platform](http://www.haskell.org/platform/). Then:

    git clone git@github.com:brow/noise.git
    cd noise
    cabal install

Let's make sure it worked:

    $ noise --help
    Usage: noise [file]
      -h  --help  Print this help text.

## Usage

`noise` reads Noise code from standard input and writes SVG to standard output:

    echo "shape.circle(10,10,10,fill:color.red)" | noise > circle.svg

It can also read from a file:

    echo "shape.rectangle(0,0,10,10,fill:color.blue)" > rectangle.noise
    noise rectangle.noise > rectangle.svg

Use `convert` from the [ImageMagick](http://www.imagemagick.org/) package to write other image formats:

    echo "shape.circle(10,10,10,fill:color.green)" | noise | convert -size 20x20 svg:- circle.png

## Development

I recommend using `cabal-dev` to maintain a sandboxed build environment. If you don't have it already:

    cabal install cabal-dev

Then, in the project root:

    cabal-dev install-deps --enable-tests
    cabal-dev configure --enable-tests

After performing the above setup once, you can build and test `noise` like so:

    cabal-dev build && cabal-dev test

For a more detailed and colorful test report, try this:

    cabal-dev build && ./dist/build/test/test