photish 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bf314194e23c79c0044bb7ae4a1e89d85a75c249
4
- data.tar.gz: 058379e40ecc0ebc40575335c620b626ba496874
3
+ metadata.gz: 9b24062db6ffb294975d675025cf9948d2396584
4
+ data.tar.gz: d3694dd3929c89a3c236519d0787874c3763846f
5
5
  SHA512:
6
- metadata.gz: 71d79a7276c266b57e06f21811f823a5315c6941ec2c17498c1bb35e39eb0a51a2b9c7213b175a949b60923557d0fa1df007ad96306dd733481b50a942218646
7
- data.tar.gz: 2a43e23ad1bc0e6a5623a8213df6c6acd686e8f3fdd77f44bf0aec6bef54ceb221a424a4f8334c9d15e84adacfc5d021468d8cdf51ab27f63073e4eb6383151f
6
+ metadata.gz: bee41d8d3348cb8a944979d430fe61a0f8ab901408ac7d5c982ca5f636fdbc9eeb9df14b2099beb1ccd639acac9453e92b19f95e8c3982cc29a98a2aa5979166
7
+ data.tar.gz: 9a9921a7d9a0373c3c0089533b1d4c73c09b29cba11392e1e9ff38984102d8ccc165960adc2e87d060041c337eef2674f563e98250a4d3814accc8db1070a3c4
data/README.md CHANGED
@@ -1,26 +1,367 @@
1
1
  # Photish
2
2
 
3
+ Photish is a simple, convention based (but configurable) static photo site
4
+ generator. Photish allows you to group your photo collections by folder.
5
+ Metadata can be written alongside the photo in a [YAML](http://yaml.org/) file
6
+ with the same name as the photo.
7
+
8
+ Photish will crawl through your directory of photos and metadata, and render
9
+ the information in your website templates. Photish supports all template
10
+ engines implemented by [Tilt](https://github.com/rtomayko/tilt) (currently over
11
+ 30 formats). It will also read your configuration and automatically convert
12
+ your images to your configured size, dimensions, colourscheme, etc using
13
+ [ImageMagick](http://www.imagemagick.org/script/index.php). Using this
14
+ information, Photish creates a complete static website that can be hosted on an
15
+ [NGINX](http://nginx.org/), [Apache HTTP Server](https://httpd.apache.org/), or
16
+ even on [Github Pages](https://pages.github.com/).
17
+
18
+ ## Overview
19
+
20
+ Photish turns this:
21
+
22
+ ./my_new_photo_site
23
+ ├── config.yml
24
+ ├── photos
25
+ │   ├── Big Dogs
26
+ │   │   ├── Tired Dogs.jpg
27
+ │   │   └── Winking Dog.jpg
28
+ │   └── Small Dogs
29
+ │   ├── Fluffy Dogs
30
+ │   │   ├── Exhausted Dogs.jpg
31
+ │   │   ├── Exhausted Dogs.yml
32
+ │   │   ├── Many Dogs.jpg
33
+ │   │   └── Many Dogs.yml
34
+ │   ├── Sleepy Dog.jpg
35
+ │   ├── Sleepy Dog.yml
36
+ │   └── Squishy Dogs
37
+ │   └── Big Ear Dog.jpg
38
+ └── site
39
+ ├── _templates
40
+ │   ├── album.slim
41
+ │   ├── collection.slim
42
+ │   ├── layout.slim
43
+ │   └── photo.slim
44
+ ├── custom.html
45
+ └── styles
46
+ └── basic.css
47
+
48
+ Into this:
49
+
50
+ ./my_new_photo_site
51
+ └── output
52
+ ├── big-dogs
53
+ │   ├── index.html
54
+ │   ├── tired-dogs
55
+ │   │   ├── images
56
+ │   │   │   ├── tired-dogs-low.jpg
57
+ │   │   │   └── tired-dogs-original.jpg
58
+ │   │   └── index.html
59
+ │   └── winking-dog
60
+ │   ├── images
61
+ │   │   ├── winking-dog-low.jpg
62
+ │   │   └── winking-dog-original.jpg
63
+ │   └── index.html
64
+ ├── custom.html
65
+ ├── index.html
66
+ ├── small-dogs
67
+ │   ├── fluffy-dogs
68
+ │   │   ├── exhausted-dogs
69
+ │   │   │   ├── images
70
+ │   │   │   │   ├── exhausted-dogs-low.jpg
71
+ │   │   │   │   └── exhausted-dogs-original.jpg
72
+ │   │   │   └── index.html
73
+ │   │   ├── index.html
74
+ │   │   └── many-dogs
75
+ │   │   ├── images
76
+ │   │   │   ├── many-dogs-low.jpg
77
+ │   │   │   └── many-dogs-original.jpg
78
+ │   │   └── index.html
79
+ │   ├── index.html
80
+ │   ├── sleepy-dog
81
+ │   │   ├── images
82
+ │   │   │   ├── sleepy-dog-low.jpg
83
+ │   │   │   └── sleepy-dog-original.jpg
84
+ │   │   └── index.html
85
+ │   └── squishy-dogs
86
+ │   ├── big-ear-dog
87
+ │   │   ├── images
88
+ │   │   │   ├── big-ear-dog-low.jpg
89
+ │   │   │   └── big-ear-dog-original.jpg
90
+ │   │   └── index.html
91
+ │   └── index.html
92
+ └── styles
93
+ └── basic.css
94
+
95
+ A breakdown of the before and after is as follows:
96
+
97
+ 1. For the **Collection** of photos in "Photos" an _index.html_ was created
98
+ 1. For each **Album** (that is a folder in the "Photos" collection), an
99
+ _index.html_ was created in a slugified sub folder
100
+ 1. For each **Photo** (an image file in the album), another _index.html_ was
101
+ created in a slugified sub folder named after the original photo
102
+ 1. For each of these Photos, a version of the **Image** was made in both "low"
103
+ and "original" quality in a sub folder called _images_
104
+
105
+ The number of Images and the quality of each is completely configurable. Using
106
+ the templating language of your choice you can easily generate a Photo
107
+ collection driven website with all of your photos available in various
108
+ qualities and formats.
109
+
3
110
  ## Installation
4
111
 
5
112
  Install the gem locally by running:
6
113
 
7
114
  $ gem install photish
8
115
 
116
+ Alternatively, use [Bundler](http://bundler.io/). Create a folder for your
117
+ photo site so you can track the version of Photish you are building with:
118
+
119
+ $ mkdir my_new_photo_site
120
+ $ cd my_new_photo_site
121
+ $ bundle init
122
+ $ echo 'gem "photish"' >> Gemfile
123
+ $ bundle install
124
+
9
125
  ## Usage
10
126
 
11
- TODO: Write usage instructions here
127
+ Once you have photish installed. Get started with the following commands:
128
+
129
+ ### Initialize
130
+
131
+ A skeleton site can be created by running the below command inside the
132
+ `my_new_photo_site` folder:
133
+
134
+ $ photish init
135
+
136
+ #### Basic Photish Structure
137
+
138
+ Inside your `my_new_photo_site` folder, you will have a:
139
+
140
+ File or Folder | Purpose
141
+ --------------------------------- | -------
142
+ `photos` | folder, for your photo collection and metadata
143
+ `site` | folder for your templates, assets and static pages
144
+ `site/_templates` | folder for your templates
145
+ `site/_templates/layout.slim` | file for the basic layout for all pages
146
+ `site/_templates/collection.slim` | template file for your collection page
147
+ `site/_templates/album.slim` | template file for your album page(s)
148
+ `site/_templates/photo.slim` | template file for your photo page(s)
149
+ `config.yml` | file to store all configuration in YAML format
150
+
151
+ #### Template Engines
152
+
153
+ By default Photish uses [Slim](http://slim-lang.com/) as the template language.
154
+ The templates can be in any format supported by
155
+ [Tilt](https://github.com/rtomayko/tilt). To use a different template language:
156
+
157
+ 1. Create a `layout`, `collection`, `album` and `photo` file with
158
+ the file extension of the template engine you prefer
159
+ 1. Update `config.yml` to reference your newly created template files
160
+ 1. Re write the basic template code in your chosen language
161
+
162
+ #### Site Assets, CSS, Images, JavaScript
163
+
164
+ Any content not starting with an `_` (underscore) in the `site` folder will be
165
+ copied to the `output` folder.
166
+
167
+ In the example in the Overview section. There are 2 static asset files. These
168
+ are:
169
+
170
+ 1. `site/styles/basic.css`
171
+ 1. `site/custom.html`
172
+
173
+ Both of these files were copied by Photish to the output folder, respecting
174
+ their folder/file hierarchy:
175
+
176
+ 1. `output/styles/basic.css`
177
+ 1. `site/custom.html`
178
+
179
+ As documented in the Generate section, assets are copied before the site
180
+ content is generated. If an asset has a conflicting name and path with a
181
+ generated file, the generated file will clobber the asset.
182
+
183
+ #### Config File Options
184
+
185
+ Below is a basic `config.yml` file:
186
+
187
+ ```yaml
188
+ port: 9876
189
+ qualities:
190
+ - name: Original
191
+ params: []
192
+ - name: Low
193
+ params: ['-resize', '200x200']
194
+ templates:
195
+ layout: layout.slim
196
+ collection: collection.slim
197
+ album: album.slim
198
+ photo: photo.slim
199
+ ```
200
+
201
+ The meanings and purpose of each field is defined below:
202
+
203
+ Field | Purpose
204
+ ---------------------- | -------
205
+ `port` | the port number that the `photish host` command will bind to
206
+ `qualities` | an array of `name` and `params` fields for **Images**
207
+ `qualities[]/name` | the name of the **Image** quality
208
+ `qualities[]/params` | the parameters to be provided to the ImageMagick `convert` utility for the **Image** file quality
209
+ `templates` | a listing of the various template files
210
+ `templates/layout` | the layout template file in the `site/_templates` folder
211
+ `templates/collection` | the collection template file in the `site/_templates` folder
212
+ `templates/album` | the album template file in the `site/_templates` folder
213
+ `templates/photo` | the photo template file in the `site/_templates` folder
214
+
215
+ #### Customizing Templates
216
+
217
+ Below is the documentation for the various data available inside
218
+ each of the templates.
219
+
220
+ **Note:** `{type}` is a place holder depending on your chosen template engine
221
+ the file extension will change. By default the template engine is
222
+ [Slim](http://slim-lang.com/), so templates will end with the _slim_ extension.
223
+
224
+ ##### Layout Template
225
+
226
+ `site/_templates/layout.{type}`
227
+
228
+ The layout template is the base layout for all the other templates. The
229
+ `collection`, `album` and `photo` templates will be rendered inside this
230
+ layout. The layout template **must** include the `yield` statement to bind the
231
+ sub template inside it. Below is an example [Slim](http://slim-lang.com/)
232
+ template, the other templates will be bound where the `yield` statement is:
233
+
234
+ ```slim
235
+ doctype html
236
+ html
237
+ head
238
+ title Master Layout
239
+ body
240
+ == yield
241
+ ```
242
+
243
+ ##### Collection Template
244
+
245
+ `site/_templates/collection.{type}`
246
+
247
+ The collection template becomes the `index.html` for the root of the website.
248
+
249
+ This template is passed the
250
+ [Collection](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/collection.rb)
251
+ model when rendered.
252
+
253
+ Attribute or Method | Description
254
+ ------------------- | -----------
255
+ url | the URL of this page
256
+ metadata | an object with methods for the attributes in the `photos.yml` file
257
+ all_albums | an array of all child [Albums](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/album.rb)
258
+ all_photos | an array of all child [Photos](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/photo.rb)
259
+ all_images | an array of all child [Images](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/image.rb)
260
+
261
+ ##### Album Template
262
+
263
+ `site/_templates/album.{type}`
264
+
265
+ For each folder in the `photos` directory, a slugified album folder is created
266
+ with an `index.html` in it.
267
+
268
+ This template is passed the
269
+ [Album](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/album.rb)
270
+ model when rendered.
271
+
272
+ Attribute or Method | Description
273
+ ------------------- | -----------
274
+ name | the name of the folder, i.e. `photos/My album/` will become `My album`
275
+ url | the URL of this page
276
+ metadata | an object with methods for the attributes in the `{album_name}.yml` file stored at the same level as the album
277
+ all_albums | an array of all child [Albums](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/album.rb)
278
+ all_photos | an array of all child [Photos](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/photo.rb)
279
+ all_images | an array of all child [Images](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/image.rb)
280
+
281
+ ##### Photo Template
282
+
283
+ `site/_templates/photo.{type}`
284
+
285
+ For each image in an Albums directory, a slugified photo folder is created
286
+ with an `index.html` in it.
287
+
288
+ This template is passed the
289
+ [Photo](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/photo.rb)
290
+ model when rendered.
291
+
292
+ Attribute or Method | Description
293
+ ------------------- | -----------
294
+ name | the name of the photo, i.e. `photos/My album/My dog.jpg` will become `My dog`
295
+ url | the URL of this page
296
+ metadata | an object with methods for the attributes in the `{photo_name}.yml` file stored at the same level as the photo
297
+ exif | an object with methods for the exif data of the original photo file
298
+ images | an array of all the [Images](https://github.com/henrylawson/photish/blob/master/lib/photish/gallery/image.rb) for this photo, an Image will be a version of the photo in the quality configured in `config.yml`
299
+
300
+ ### Generate
301
+
302
+ The static HTML can be generated by running the below command inside the
303
+ `my_new_photo_site` folder:
304
+
305
+ $ photish generate
306
+
307
+ All generated content will be written to the `output` folder by default.
308
+
309
+ #### Execution Order
310
+
311
+ The Generate command does the following:
312
+
313
+ 1. Crawls the `photos` directory for photos and metadata
314
+ 1. Creates a site structure of Collection, Album(s), Photo(s) and Image(s)
315
+ 1. Copies all files in the `site` folder **not** beginning with an `_`
316
+ (underscore) to the `output` folder as these are viewed as "static" assets.
317
+ That is, folders like `_templates` are ignored
318
+ 1. Renders the HTML _index_ file(s) for the Collection, Album(s), Photo(s) and
319
+ Image(s) to the `output` folder
320
+ 1. Converts all Photo(s) to the configured quality versions, writing various
321
+ images to the `output` folder
322
+
323
+ ### Host
324
+
325
+ To test and view your changes locally, the host command can be used to run a
326
+ local
327
+ [WEBrick](http://ruby-doc.org/stdlib-1.9.3/libdoc/webrick/rdoc/WEBrick.html)
328
+ server to serve the HTML files:
329
+
330
+ $ photish host
331
+
332
+ The local version of your website will be visible at [http://localhost:9876/](http://localhost:9876/)
12
333
 
13
334
  ## Development
14
335
 
15
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
336
+ If you would like to contribute to Photish by creating a new feature or fixing
337
+ bugs, you are more then welcome!
338
+
339
+ To develop:
340
+
341
+ $ git clone git@github.com:henrylawson/photish.git
342
+ $ cd photish
343
+ $ ./bin/setup # installs dependencies
344
+ $ rake # runs the tests
345
+ $ vim # open up the project and begin contributing
346
+ $ ./bin/console # for an interactive prompt
347
+
348
+ To release:
16
349
 
17
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
350
+ $ git add -p # add in changed files
351
+ $ git commit -m 'Final commit' # finish up changes
352
+ $ rake # ensure all tests pass
353
+ $ vim lib/photish/version.rb # update version
354
+ $ rake release # release to rubygems
18
355
 
19
356
  ## Contributing
20
357
 
21
- Bug reports and pull requests are welcome on GitHub at https://github.com/henrylawson/photish. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
358
+ Bug reports and pull requests are welcome on GitHub at
359
+ https://github.com/henrylawson/photish. This project is intended to be a safe,
360
+ welcoming space for collaboration, and contributors are expected to adhere to
361
+ the [Contributor Covenant](contributor-covenant.org) code of conduct.
22
362
 
23
363
  ## License
24
364
 
25
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
365
+ The gem is available as open source under the terms of the [MIT
366
+ License](http://opensource.org/licenses/MIT).
26
367
 
data/TODO.md CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  ## Must Have
4
4
 
5
+ 1. `init` command to get started
5
6
 
6
7
  ## Might Have
7
8
 
8
- 1. `init` command to get started
9
9
  1. `deploy` to deploy to github pages
10
- 1. Better README.md
11
- 1. Actual website, using photish
10
+ 1. Exception and error handling to have clearer errors
12
11
  1. Startup bash script should install image magick, libmagic, exiftool
12
+ 1. README table of contents
13
13
 
14
14
  ## Potential Features
15
15
 
16
- 1. A sitemap feature
17
- 1. A breadcrumb feature
16
+ 1. A sitemap helper
17
+ 1. A breadcrumb helper
18
18
  1. Relative/absolute with/without hostname URLs (for different host envs) with view helper
@@ -0,0 +1,12 @@
1
+ ---
2
+ port: 9876
3
+ qualities:
4
+ - name: Original
5
+ params: []
6
+ - name: Low
7
+ params: ['-resize', '200x200']
8
+ templates:
9
+ layout: layout.slim
10
+ collection: collection.slim
11
+ album: album.slim
12
+ photo: photo.slim
@@ -0,0 +1,2 @@
1
+ ---
2
+ description: Soft fluffy doggy!
@@ -0,0 +1,2 @@
1
+ ---
2
+ description: Many doggies!!
@@ -0,0 +1,2 @@
1
+ ---
2
+ description: A sleepy doggy!
@@ -0,0 +1,31 @@
1
+ h1 Album "#{name}"
2
+ h2 Sub Albums
3
+ ul
4
+ - albums.each do |album|
5
+ li
6
+ a href=album.url
7
+ | #{album.name}
8
+ - if albums.empty?
9
+ li
10
+ | Empty
11
+ h2 Photos
12
+ ul
13
+ - photos.each do |photo|
14
+ li
15
+ a href=photo.url
16
+ | #{photo.name}
17
+ - if photos.empty?
18
+ li
19
+ | Empty
20
+ h2 Photos
21
+ ul
22
+ - all_photos.each do |photo|
23
+ li
24
+ a href=photo.url
25
+ | #{photo.name}
26
+ h2 Images
27
+ ul
28
+ - all_images.each do |image|
29
+ li
30
+ a href=image.url
31
+ | #{image.name}
@@ -0,0 +1,19 @@
1
+ h1 Collection "My Photo Site"
2
+ h2 Albums
3
+ ul
4
+ - albums.each do |album|
5
+ li
6
+ a href=album.url
7
+ | #{album.name}
8
+ h2 Photos
9
+ ul
10
+ - all_photos.each do |photo|
11
+ li
12
+ a href=photo.url
13
+ | #{photo.name}
14
+ h2 Images
15
+ ul
16
+ - all_images.each do |image|
17
+ li
18
+ a href=image.url
19
+ | #{image.name}
@@ -0,0 +1,16 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Master Template
5
+ link href="/styles/basic.css" media="screen" rel="stylesheet" type="text/css"
6
+ body
7
+ == yield
8
+
9
+ h2 Asset Links
10
+ ul
11
+ li
12
+ a href="/custom.html"
13
+ | My Custom Page
14
+ li
15
+ a href="/styles/basic.css"
16
+ | CSS Download
@@ -0,0 +1,10 @@
1
+ h1 Photo "#{name}"
2
+ h2 Images
3
+ - if metadata.try(:description)
4
+ p #{metadata.try(:description)}
5
+ ul
6
+ - images.each do |image|
7
+ li
8
+ a href=image.url
9
+ | #{image.name}
10
+ img src=image.url
@@ -0,0 +1,8 @@
1
+ <html>
2
+ <head>
3
+ </head>
4
+ <body>
5
+ <h1>Custom Page</h1>
6
+ <p>Custom content</p>
7
+ </body>
8
+ </html>
@@ -0,0 +1,3 @@
1
+ body {
2
+ font-family:arial;
3
+ }
data/lib/photish/cli.rb CHANGED
@@ -1,38 +1,26 @@
1
1
  require 'thor'
2
2
  require 'photish/generation'
3
3
  require 'photish/host'
4
+ require 'photish/init'
4
5
 
5
6
  module Photish
6
7
  class CLI < Thor
7
8
  package_name "Photish"
8
9
 
9
10
  desc "generate", "Generates the gallery static site"
10
- method_option :photo_dir,
11
- aliases: "-p",
12
- desc: "The directory where the photos live"
13
- method_option :site_dir,
14
- aliases: "-s",
15
- desc: "The location of the site config and template files"
16
- method_option :output_dir,
17
- aliases: "-o",
18
- desc: "The output directory where the generated site should go"
19
11
  def generate
20
12
  Photish::Generation.new(options).execute
21
13
  end
22
14
 
23
- desc "host", "Generates the gallery static site"
24
- method_option :photo_dir,
25
- aliases: "-p",
26
- desc: "The directory where the photos live"
27
- method_option :site_dir,
28
- aliases: "-s",
29
- desc: "The location of the site config and template files"
30
- method_option :output_dir,
31
- aliases: "-o",
32
- desc: "The output directory where the generated site should go"
15
+ desc "host", "Serves the HTML on a HTTP server at http://localhost:9876/"
33
16
  def host
34
17
  Photish::Host.new(options).execute
35
18
  end
19
+
20
+ desc "init", "Creates a basic Photish site sctructure"
21
+ def init
22
+ Photish::Init.new(options).execute
23
+ end
36
24
  end
37
25
  end
38
26
 
@@ -0,0 +1,36 @@
1
+ module Photish
2
+ class Init
3
+ include Photish::Log
4
+
5
+ def initialize(runtime_config)
6
+ @runtime_config = runtime_config
7
+ end
8
+
9
+ def execute
10
+ FileUtils.cp_r(config_file, Dir.pwd)
11
+ FileUtils.cp_r(photos_dir, Dir.pwd)
12
+ FileUtils.cp_r(site_dir, Dir.pwd)
13
+ log "Photish site initiated successfully"
14
+ end
15
+
16
+ private
17
+
18
+ attr_reader :runtime_config
19
+
20
+ def config_file
21
+ asset_path('config.yml')
22
+ end
23
+
24
+ def photos_dir
25
+ asset_path('photos')
26
+ end
27
+
28
+ def site_dir
29
+ asset_path('site')
30
+ end
31
+
32
+ def asset_path(*path)
33
+ File.join(File.dirname(__FILE__), 'assets', path)
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module Photish
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/photish.gemspec CHANGED
@@ -10,7 +10,10 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["henry.lawson@foinq.com"]
11
11
 
12
12
  spec.summary = %q{A static photo site generator}
13
- spec.description = %q{Using a collection of photos grouped by folder, photish will generate a the website content using templates that you provide.}
13
+ spec.description = %q{Photish is a simple, convention based (but
14
+ configurable) static photo site generator. Photish allows you to group your
15
+ photo collections by folder. Metadata can be written alongside the photo in
16
+ a [YAML](http://yaml.org/) file with the same name as the photo.}
14
17
  spec.homepage = "https://github.com/henrylawson/photish"
15
18
  spec.license = "MIT"
16
19
 
@@ -19,15 +22,17 @@ Gem::Specification.new do |spec|
19
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
23
  spec.require_paths = ["lib"]
21
24
 
22
- spec.add_dependency "thor"
23
- spec.add_dependency "activesupport"
24
- spec.add_dependency "slim"
25
- spec.add_dependency "tilt"
26
- spec.add_dependency "mini_magick"
27
- spec.add_dependency "ruby-filemagic"
28
- spec.add_dependency "anemone"
29
- spec.add_dependency "mini_exiftool"
30
- spec.add_dependency "recursive-open-struct"
25
+ spec.required_ruby_version = '>= 1.8.6'
26
+
27
+ spec.add_dependency "thor", "~> 0.1"
28
+ spec.add_dependency "activesupport", "~> 4.2"
29
+ spec.add_dependency "slim", "~> 3.0"
30
+ spec.add_dependency "tilt", "~> 2.0"
31
+ spec.add_dependency "mini_magick", "~> 4.3"
32
+ spec.add_dependency "ruby-filemagic", "~> 0.7"
33
+ spec.add_dependency "anemone", "~> 0.7"
34
+ spec.add_dependency "mini_exiftool", "~> 2.5"
35
+ spec.add_dependency "recursive-open-struct", "~> 0.6"
31
36
 
32
37
  spec.add_development_dependency "bundler", "~> 1.10"
33
38
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,141 +1,141 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: photish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Lawson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-22 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '4.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '4.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: slim
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: tilt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mini_magick
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '4.3'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '4.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: ruby-filemagic
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '0.7'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '0.7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: anemone
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '0.7'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '0.7'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: mini_exiftool
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '2.5'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '2.5'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: recursive-open-struct
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: '0.6'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: '0.6'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: bundler
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -234,8 +234,11 @@ dependencies:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
- description: Using a collection of photos grouped by folder, photish will generate
238
- a the website content using templates that you provide.
237
+ description: |-
238
+ Photish is a simple, convention based (but
239
+ configurable) static photo site generator. Photish allows you to group your
240
+ photo collections by folder. Metadata can be written alongside the photo in
241
+ a [YAML](http://yaml.org/) file with the same name as the photo.
239
242
  email:
240
243
  - henry.lawson@foinq.com
241
244
  executables:
@@ -256,6 +259,22 @@ files:
256
259
  - bin/setup
257
260
  - exe/photish
258
261
  - lib/photish.rb
262
+ - lib/photish/assets/config.yml
263
+ - lib/photish/assets/photos/Big Dogs/Tired Dogs.jpg
264
+ - lib/photish/assets/photos/Big Dogs/Winking Dog.jpg
265
+ - lib/photish/assets/photos/Small Dogs/Fluffy Dogs/Exhausted Dogs.jpg
266
+ - lib/photish/assets/photos/Small Dogs/Fluffy Dogs/Exhausted Dogs.yml
267
+ - lib/photish/assets/photos/Small Dogs/Fluffy Dogs/Many Dogs.jpg
268
+ - lib/photish/assets/photos/Small Dogs/Fluffy Dogs/Many Dogs.yml
269
+ - lib/photish/assets/photos/Small Dogs/Sleepy Dog.jpg
270
+ - lib/photish/assets/photos/Small Dogs/Sleepy Dog.yml
271
+ - lib/photish/assets/photos/Small Dogs/Squishy Dogs/Big Ear Dog.jpg
272
+ - lib/photish/assets/site/_templates/album.slim
273
+ - lib/photish/assets/site/_templates/collection.slim
274
+ - lib/photish/assets/site/_templates/layout.slim
275
+ - lib/photish/assets/site/_templates/photo.slim
276
+ - lib/photish/assets/site/custom.html
277
+ - lib/photish/assets/site/styles/basic.css
259
278
  - lib/photish/cli.rb
260
279
  - lib/photish/config/app_settings.rb
261
280
  - lib/photish/config/default_config.rb
@@ -271,6 +290,7 @@ files:
271
290
  - lib/photish/gallery/traits/urlable.rb
272
291
  - lib/photish/generation.rb
273
292
  - lib/photish/host.rb
293
+ - lib/photish/init.rb
274
294
  - lib/photish/log.rb
275
295
  - lib/photish/render/image_conversion.rb
276
296
  - lib/photish/render/page.rb
@@ -289,7 +309,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
309
  requirements:
290
310
  - - ">="
291
311
  - !ruby/object:Gem::Version
292
- version: '0'
312
+ version: 1.8.6
293
313
  required_rubygems_version: !ruby/object:Gem::Requirement
294
314
  requirements:
295
315
  - - ">="