## Prerequisites

You will need [Leiningen](https://github.com/technomancy/leiningen) 2.0 or above installed.

You will need [node](https://nodejs.org/en/) installed.

## Running in development
To start a web server for the application during development, run:

```
         lein npm install
         lein ring server
```

This should start a development server, and open a new window or tab in your default browser with the default page of the wiki loaded into it.

## Editing
I generally use [LightTable](http://lighttable.com/) as my `Clojure` editor, but it doesn't really matter what you use; if you run Smeagol as described above, then all changes you make in the code (and save) will instantly be applied to the running system. This makes for a productive development environment.

## Building for deployment

*Important:* Always run `lein clean` before building a deployment build. Once you have deployed your deployment artifact, run `lein clean` again before continuing development.

### To build a standalone executable jar file

run:

```
         lein ring uberjar
```

The resulting file may be run by invoking

```
         java -jar \[path to uberjar file\]
```

## Documentation
It is my intention that the code should be sufficiently well documented to be easy to understand. Documentation may be generated from the code by running

```
         lein codox
```

## Contributing
If you make changes to Smeagol which you think are useful, please contribute them in the form of a [pull request on github](https://help.github.com/articles/creating-a-pull-request/).
