README.md
asimov-static
================
[![NPM version](https://badge.fury.io/js/asimov-static.png)](http://badge.fury.io/js/asimov-static) [![Build Status](https://travis-ci.org/adamrenklint/asimov-static.png?branch=master)](https://travis-ci.org/adamrenklint/asimov-static) [![Code Climate](https://codeclimate.com/github/adamrenklint/asimov-static.png)](https://codeclimate.com/github/adamrenklint/asimov-static) [![Dependency Status](https://david-dm.org/adamrenklint/asimov-static.png?theme=shields.io)](https://david-dm.org/adamrenklint/asimov-static)
**Static site generator for [asimov.js](http://github.com/adamrenklint/asimov) and [asimov-server](http://github.com/adamrenklint/asimov-server)**
Made by [Adam Renklint](http://adamrenklint.com), Berlin 2014-2015. MIT licensed.
## Install
```
$ npm install --save asimov-static
```
## Usage
- Install the [asimov cli](https://github.com/adamrenklint/asimov.js#getting-started)
- Create a [new asimov project](https://github.com/adamrenklint/asimov.js#create-a-new-project)
- Add pages in ```/content``` using mixed [Markdown and YAML format](https://github.com/adamrenklint/asimov-static/blob/master/content/home.txt)
- Add [localized versions of page](https://github.com/adamrenklint/asimov-static/blob/master/content/home.de.txt)
- Add handlebars templates to ```/site/templates```
- The name of the page textfile defines which template is used
- Add styles to ```/site/styles``` and include with ```{{style "foo"}}``` in your template
- Add client side scripts with ```{{script "foo"}}```, transpiled from es6/7 with Babel
- Include any template as a partial with ```{{import "bar"}}```, and pass data with ```{{import "bar" object}}``` or ```{{import "bar" key="value"}}```
- Start with ```$ asimov``` or ```$ asimov debug```
- Prebuild entire site to ```/public``` with ```ENV=prebuild```, for use as pure static site generator
### Advanced usage
- [add process initializers](https://github.com/adamrenklint/asimov.js#initializers)
- [add server request middleware](https://github.com/adamrenklint/asimov-server#middleware)
- [using plugins](https://github.com/adamrenklint/asimov.js#adding-plugins)
- [add cli commands](https://github.com/adamrenklint/asimov.js#create-a-new-command)
### Configuration
- [environment configs](https://github.com/adamrenklint/asimov-static/tree/master/environments) are loaded automatically
- [asimov.js config declarations](https://github.com/adamrenklint/asimov.js#configuration)
- **languages** define available languages, defaults to ```["en"]```
- **defaultLangCode** default ```"en"```
- **defaultLangFallback** allow localized pages to fall back to parent page when an attribute is not translated or available, defaults to ```TRUE```
### Examples:
- [asimovjs.org](https://github.com/adamrenklint/asimovjs.org)
## Develop
### Testing
- Run unit tests with ```$ asimov test```
- Smoke tests are in [```/content/test```](https://github.com/adamrenklint/asimov-static/tree/master/content/test), run ```$ asimov``` to view
### Publish new version
- Bump version in ```package.json```, following [semver](http://semver.org/)
- Make sure the [README](https://github.com/adamrenklint/asimov-static/blob/master/README.md) reflects the changes
- Update the [changelog](https://github.com/adamrenklint/asimov-static/blob/master/CHANGELOG.md)
- Run ```$ make publish```
## Credits
Author: [Adam Renklint](http://adamrenklint.com). Contributors: [Adam Schroder](https://github.com/adamschroder), [Raymond May Jr.](https://github.com/octatone), [Marvin Labod](https://github.com/mlabod), [Aditya Yadav](https://github.com/netroy).