Less compiler for golang
JavaScript Go
Latest commit afb7b19 Jan 27, 2016 @ivahaev ivahaev Update README.md
Permalink
Failed to load latest commit information.
assets/less-go Move js to assets Dec 8, 2015
lessc lessc fix Dec 10, 2015
.gitignore Update gitignore Dec 8, 2015
.travis.yml Update .travis.yml Dec 10, 2015
LICENSE Initial commit Dec 8, 2015
README.md Update README.md Jan 27, 2016
assets.go CLI and API Dec 8, 2015
less.go Return error when render error Dec 8, 2015
less_test.go Test passed Dec 10, 2015

README.md

less-go

Build Status

Less compiler for Golang

Builds CSS using original Less compiler and Duktape embeddable Javascript engine

Status

This project is a work-in-progress, we accept pull requests.

Installation

    go get github.com/kib357/less-go

Command Line usage

    cd $GOPATH/src/github.com/kib357/less-go/lessc
    go get
    go build
    ./lessc --input="inputFile" --output="outputFile"
    ./lessc -i inputFile -o outputFile

Examples:

    ./lessc --input="./styles.less" --output="./styles.css"
    ./lessc -i styles.less -o styles.css

More about usage you can see in cli help:

    ./lessc -h

Programmatic usage

    import "github.com/kib357/less-go"

    func main() {
        err := less.RenderFile("./styles.less", "./styles.css", map[string]interface{}{"compress": true})
    }

Function reference

RenderFile(input, output string, mods ...map[string]interface{}) error

Renders Less and generates output CSS.

SetReader(customReader Reader)

    type Reader interface {
        ReadFile(string) ([]byte, error)
    }

Sets a custom reader for .less files. You can use it to replace standard input from file system to another. Example:

    type LessReader struct{}

    var lessFiles = map[string][]byte{"styles": []byte{".class { width: (1 + 1) }"}}

    func (LessReader) ReadFile(path string) ([]byte, error) {
        lessFile, ok := lessFiles[path]
        if !ok {
            return "", errors.New("path not found")
        }
        return lessFile, nil
    }

    func main() {
        less.SetReader(LessReader)
        ...
    }

SetWriter(customWriter Writer)

    type Writer interface {
        WriteFile(string, []byte, os.FileMode) error
    }

Analogue of custom reader, but for output CSS.

Current limitations

Because of using C Javascript engine, cross compilation not supported. Not tested on Windows.

CLI interface doesnt support options