Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ng-tools/ng-factory

Upgradable development workflow for AngularJS
https://github.com/ng-tools/ng-factory

Last synced: 4 months ago
JSON representation

Upgradable development workflow for AngularJS

Awesome Lists containing this project

README

        

# ng-factory

An **upgradable** development workflow library built on top of Gulp and focused on AngularJS components and applications.

**ng-factory** is based on **best practices** and covers the whole development lifecycle :

- **Developement** : code quality, preprocessors...
- **Build** : minification, concat, inject...
- **Documentation** : README + HTML doc & examples...
- **Publication** : TRAVIS CI integration, releases branches...

## Customisation

### Customize the README

You can customize the README by adding a `docs/README.tpl.md`. This is a [nunjucks](http://mozilla.github.io/nunjucks/) template and it extends the [default ng-factory template](lib/templates/readme/README.tpl.md).

### Add examples

Add examples in the `docs/examples` folder, with a subfolder for each example.
Each example can have a single HTML file and any number of CSS, SCSS... and javascript files.

### Add Travis-CI

- signup to [travis-ci.com](http://travis-ci.com)
- activate your repository

### Add CodeClimate

- signup to [codeclimate.com](http://codeclimate.com)
- activate your repository
- add the token to `.travis.yml`

## File slitting

For the sake of clarity and coherence

- Main ng-factoty tasks are in the **tasks folder**
- Template files are in the **templates folder**
- Utility transforms are in the **transforms folder**

## Tasks

Task name example : `ng-factory:src/jshint`.
- `ng-factory` is the namespace
- `src/jshint` the targeted task

### ng-factory:src

#### ng-factory:src/jshint

Jshint the sources

### ng-factory:test

#### ng-factory:test/jshint

Jshint the tests

## Transforms

Bypass gulp plugins directly using the official node lib to to the work.

### clean-css

### concat-scripts

### debug

### jade

### js-beautify

### less

### ng-annotate

### template

### uglify-js

## Pages customization

The pages are highly customizable. The pages templating is provided by (Nunjucks)[mozilla.github.io/nunjucks/].

We integrate a default page with the factory but you can change everything if you please.

The basic pages generation workflow is **copy every thing to the `.tmp/docs` folder and generate what you need to output in the `pages` folder**.

### Default template

`ng-factory/templates/pages/index.nunjucks.html` is the default template file.

> [...] More documentation here [...]

### Views Blocks

By extending the `{% extends "views/base.nunjucks.html" %}` default template you can customize different blocks.
**Note: you can use `{{ super() }}` to render parent blocks**

- **ng-factory/templates/pages/views/base.nunjucks.html**
- **head** for the `` content
- **body** for the `` content
- **foot** fot the "``" content (what comes after the content into the body)

### Includes Blocks

- **ng-factory/templates/pages/views/includes/head.nunjucks.html**
- **headLinks** for the css scripts at the end of the `` tag

- **ng-factory/templates/pages/views/includes/foot.nunjucks.html**
- **footScripts** for the js scripts at the end of the `` tag

> [...] More documentation here [...]