nkj20932/power-build

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Power Build

[![Gem Version](https://badge.fury.io/rb/power-build.svg)](http://badge.fury.io/rb/power-build) [![Code Climate](https://codeclimate.com/github/nkj20932/power-build/badges/gpa.svg)](https://codeclimate.com/github/nkj20932/power-build)

Power Build is a photo album builder which generates a site based on the images in a project. It works from command line.

#### [Demo Site](https://github.com/nkj20932/image_stack/tree/gh-pages)

## Requirement

1. Ruby version 2.0 or higher
2. Mac or Linux (Nothing has been tested on Windows.)
3. This tool is for hosting on [GitHub pages](https://pages.github.com/). Other sites may not be compatible.

## Installation

Run:

```
$gem install power-build
```

or manually write `gem 'power-build'` in the Gemfile before you run `$bundle`.

## Commands

In the root of your project, run:

```
$power init
```

It creates a config file in your project directory. You can adjust the content depending on how you want to build your site, but don't change the file name.

```
$power build
```

You can skip the `build` and just run `power`. This command generates a static site which allows you to host on github pages. Basically it creates a `index.html` and a folder `assets` with other stuff in it.

```
$power delete
```

Clean all files generated by power-build.

Further commands and shortcuts will display at:

```
$power help
```

## Config

The config file looks like this:

```
{
  "title": "Your Site Title",

  // Displaying the source on you nav-bar
  "host_link": "https://github.com/nkj20932/power-build",
  "host_display_text": "GitHub",

  // Select the folder you store images
  "root_folder": "storage",

  // Website language: either "zh-tw" or "en"
  "language": "zh-tw"
}

```

1. Remember to keep the file content in JSON format. Don't break it.
2. Currently there are only two languages for display: English and Traditional Chinese.
3. `root_folder` for the images should be in your root folder. Otherwise the links and images will not be displayed. Check the folder structure in the next section.

## Folder Structure

Before site generation, you need to include at least the folder of your images:

```
My_project_folder
|-- image_root_folder
```

If so, your folder will look like this after site generation:

```
My_project_folder
|-- image_root_folder
|-- power-build.config
|-- assets
|-- index.html
```

Everything in your project root folder will be ignored. Files already in your `assets` directory will not be overwritten during build, so any change in `custom.js` or `custom.css` will preserve.

## Image Arrangement

The image folder should be stored by categories like this:

```
image_root_folder
|-- category_1
|    |--  image_1.jpg
|    |--  image_2.png
|    |--  image_3.gif
|
|-- category_2
|-- category_3
|-- image_1.jpg
|-- image_2.png
```

All images will be categorized with their folder name. Images not in a subfolder will be categorized as "Uncategorized". For example:

```
my_album/
|-- family/
|    |--  brother.jpg
|    |--  mother.png
|    |--  sister.gif
|
|-- my_life/
|-- my_pet/
|-- James Bond.jpg
|-- Samuel Jackson.png
```

`brother.jpg` will be labelled as "family", while `James Bond.jpg` and `Samuel Jacson.png` will be labelled as "Uncategorized".

Only this structure followed can the site be generated in the correct format as in the [demo](https://github.com/nkj20932/image_stack/tree/gh-pages).

## Deployment

After generation, push from the branch `gh-pages` to Github and enjoy.

#### [GitHub Pages Hosting Instruction](https://pages.github.com/)

## Issues & Contribution

The project follows MIT Licence. Any issue, pull-request, feature-request, or comment is welcomed.