photish 0.3.10 → 0.3.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.simplecov +5 -1
- data/README.md +71 -11
- data/TODO.md +0 -6
- data/exe/photish +0 -3
- data/lib/photish/command/generate.rb +3 -1
- data/lib/photish/command/worker.rb +3 -1
- data/lib/photish/config/default_config.rb +6 -1
- data/lib/photish/config/image_extension.rb +8 -0
- data/lib/photish/gallery/album.rb +2 -10
- data/lib/photish/gallery/collection.rb +4 -2
- data/lib/photish/version.rb +1 -1
- data/lib/photish.rb +2 -1
- data/photish.gemspec +1 -1
- metadata +16 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd549e0b900be9de4fb137293813237d8e320aa4
|
4
|
+
data.tar.gz: 96dbedfaf551bbb1d3e70c8a6f6a383707578ac3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cee42768c288ffbd5a31011b0fdff42fd4ddf18b1127492b43a0da0275ee8a44cf17dc5c688aa2f43718854d6a592f7ac3aa42706a389dedab8cab6f2dd4366
|
7
|
+
data.tar.gz: aaf9bef8e114106b96e2c9e77960364deee7b8a4f83ffdfe75ab8dc9c573d50b4d8de0c4a25d7632d48a95603051fb4ecf4e4cd121d89abee7519a695f1144c7
|
data/.simplecov
CHANGED
@@ -3,15 +3,19 @@ require 'codeclimate-test-reporter'
|
|
3
3
|
SimpleCov.start(CodeClimate::TestReporter.configuration.profile) do
|
4
4
|
filters.clear
|
5
5
|
|
6
|
+
root(File.expand_path(File.dirname(__FILE__)))
|
7
|
+
|
6
8
|
add_filter do |src|
|
7
9
|
!(src.filename =~ /^#{SimpleCov.root}/) unless src.filename =~ /photish/
|
8
10
|
end
|
9
|
-
|
11
|
+
add_filter '/gems/photish'
|
10
12
|
add_filter '/bin/'
|
11
13
|
add_filter '/coverage/'
|
12
14
|
add_filter '/exe/'
|
13
15
|
add_filter '/log/'
|
14
16
|
add_filter '/pkg/'
|
17
|
+
add_filter 'vendor'
|
18
|
+
add_filter 'tmp'
|
15
19
|
|
16
20
|
add_group 'Library', 'lib'
|
17
21
|
add_group 'Specs', 'spec'
|
data/README.md
CHANGED
@@ -318,6 +318,7 @@ workers: 4
|
|
318
318
|
threads: 2
|
319
319
|
force: false
|
320
320
|
plugins: ['ssh_deploy', 'other_plugin']
|
321
|
+
image_extensions: ['jpg', 'gif']
|
321
322
|
```
|
322
323
|
|
323
324
|
The meanings and purpose of each field is defined below:
|
@@ -345,6 +346,7 @@ Field | Purpose
|
|
345
346
|
`threads` | the number of threads each worker should create to handle image magick transcoding
|
346
347
|
`force` | this should always be false, if true, all content will be regenerated and nothing cached
|
347
348
|
`plugins` | an array of plugin names that have been included in your Gemfile and that Photish should require into it's runtime
|
349
|
+
`image_extensions` | by default, Photish obtains a list of supported image format extensions from ImageMagick, however if you choose too, you can explicitly list the extensions that Photish should use to find images
|
348
350
|
|
349
351
|
#### Customizing Templates
|
350
352
|
|
@@ -685,7 +687,10 @@ Photish supports extension through the creation of plugins.
|
|
685
687
|
|
686
688
|
To create a template helper plugin you must:
|
687
689
|
|
688
|
-
1. Create a **Ruby
|
690
|
+
1. Create a **Ruby Module** in the `Photish::Plugin` module namespace, if
|
691
|
+
you are packaging the plugin as a Gem, you can implement your module one
|
692
|
+
level deeper in the namespace to allow for the Gem namespace, e.g.
|
693
|
+
`Photish::Plugin::MyGemPlugin::MyTemplateHelper`
|
689
694
|
1. Make the plugin available for [loading](#plugin-loading)
|
690
695
|
1. Implement the `self.is_for?(type)` method
|
691
696
|
1. Implement your custom helper method(s)
|
@@ -737,7 +742,10 @@ Some "core" Template Helper plugins available in Photish by default are:
|
|
737
742
|
|
738
743
|
To create a deployment engine plugin you must:
|
739
744
|
|
740
|
-
1. Create a **Ruby
|
745
|
+
1. Create a **Ruby Class** in the `Photish::Plugin` module namespace, if
|
746
|
+
you are packaging the plugin as a Gem, you can implement your module one
|
747
|
+
level deeper in the namespace to allow for the Gem namespace, e.g.
|
748
|
+
`Photish::Plugin::MyGemPlugin::MyDeployEngine`
|
741
749
|
1. Make the plugin available for [loading](#plugin-loading)
|
742
750
|
1. Implement a `self.is_for?(type)` method and respond true when it receives
|
743
751
|
the `Photish::Plugin::Type::Deploy` type
|
@@ -775,18 +783,70 @@ module Photish::Plugin::MyCustomDeploy
|
|
775
783
|
end
|
776
784
|
```
|
777
785
|
|
786
|
+
Some reference implementations of deploy plugins are:
|
787
|
+
|
788
|
+
1. [Photish SSH Deploy](https://github.com/henrylawson/photish-plugin-sshdeploy)
|
789
|
+
1. [Tmp Dir Deploy](https://github.com/henrylawson/photish/blob/master/lib/photish/assets/example/site/_plugins/tmpdir_deploy.rb)
|
790
|
+
|
778
791
|
### Plugin Loading
|
779
792
|
|
780
|
-
Photish supports the following methods of Plugin loading
|
793
|
+
Photish supports the following methods of Plugin loading.
|
794
|
+
|
795
|
+
#### Site Folder Loading
|
796
|
+
|
797
|
+
By default, Photish will automatically load all files in the `site/_plugins`
|
798
|
+
directory. This is the most simple way and is recommended if you just want to
|
799
|
+
write a simple helper specific to your site.
|
800
|
+
|
801
|
+
The example site created when running `photish generate --example` uses this
|
802
|
+
method to load plugins.
|
803
|
+
|
804
|
+
#### Explicit Gem Loading
|
805
|
+
|
806
|
+
This is recommended method if you want to utilize a plugin created by someone
|
807
|
+
else in the community - rather than simply copy pasting their code to your
|
808
|
+
`site/_plugins` directory. It is done by including a Gem in your Photish site's
|
809
|
+
`Gemfile` and listing the require path of the Gem in the `plugins` [Config File
|
810
|
+
Option](#config-file-options).
|
811
|
+
|
812
|
+
An example of Explicit Gem Loading is provided by the [Photish
|
813
|
+
Montage](https://github.com/henrylawson/photish-montage) demo that explicitly
|
814
|
+
loads the
|
815
|
+
[Photish::Plugin::Sshdeploy](https://github.com/henrylawson/photish-plugin-sshdeploy)
|
816
|
+
Gem.
|
817
|
+
|
818
|
+
To load a Gem as a plugin, first of all add the Gem to your Gemfile:
|
819
|
+
|
820
|
+
**Gemfile**
|
821
|
+
|
822
|
+
```Gemfile
|
823
|
+
gem 'photish-plugin-sshdeploy'
|
824
|
+
```
|
825
|
+
|
826
|
+
And in your Photish config, ensure it is listed in your `plugins` [Config File
|
827
|
+
Option](#config-file-options).
|
828
|
+
|
829
|
+
**config.yml**
|
830
|
+
|
831
|
+
```YAML
|
832
|
+
plugins: ['photish/plugin/sshdeploy']
|
833
|
+
```
|
834
|
+
|
835
|
+
Then run `bundle install`.
|
836
|
+
|
837
|
+
To confirm that it is installed correctly, when you run the `photish generate`
|
838
|
+
command, you should see the plugin load:
|
839
|
+
|
840
|
+
**log/photish.log or STDOUT**
|
841
|
+
|
842
|
+
```
|
843
|
+
...
|
844
|
+
... Photish::Plugin::Repository: Found plugin Photish::Plugin::Sshdeploy::Deploy
|
845
|
+
...
|
846
|
+
```
|
781
847
|
|
782
|
-
|
783
|
-
|
784
|
-
to your site.
|
785
|
-
1. Including a Gem in your Photish site's `Gemfile` and listing the name of the
|
786
|
-
Gem in the `plugins` [Config File Option](#config-file-options). This is
|
787
|
-
recommended if you want to utilize a plugin created by someone else in the
|
788
|
-
community - rather than simple copy pasting their code to your
|
789
|
-
`site/_plugins` directory.
|
848
|
+
Note the 'photish-plugin-sshdeploy' Gem has other install steps documented in
|
849
|
+
it's [README](https://github.com/henrylawson/photish-plugin-sshdeploy).
|
790
850
|
|
791
851
|
## Development
|
792
852
|
|
data/TODO.md
CHANGED
@@ -2,13 +2,8 @@
|
|
2
2
|
|
3
3
|
## In Progress
|
4
4
|
|
5
|
-
1. Extract the SSH deploy to gem
|
6
|
-
|
7
5
|
## Backlog
|
8
6
|
|
9
|
-
1. Dry up the SimpleCov config that is everywhere
|
10
|
-
1. Mime-types gem required 2.0 and above, lost 1.9.x, does this matter?
|
11
|
-
1. Need to have parameters to change on deploy
|
12
7
|
1. Worker can die when large folders moved mid generation
|
13
8
|
1. Changing convert items does not trigger regeneration but changing name does
|
14
9
|
1. Templates with exif data, super slow
|
@@ -21,4 +16,3 @@
|
|
21
16
|
1. Provide generic way to override config from arguments to allow for host name
|
22
17
|
override on deploy etc.
|
23
18
|
1. Video transcoding and template rendering
|
24
|
-
1. JRuby support, perhaps?
|
data/exe/photish
CHANGED
@@ -3,9 +3,6 @@
|
|
3
3
|
if ENV['COVERAGE']
|
4
4
|
require 'simplecov'
|
5
5
|
SimpleCov.command_name "photish-binary-#{Process.pid}"
|
6
|
-
SimpleCov.add_filter 'vendor'
|
7
|
-
SimpleCov.add_filter 'tmp'
|
8
|
-
SimpleCov.root(File.join(File.expand_path(File.dirname(__FILE__)), '..'))
|
9
6
|
end
|
10
7
|
|
11
8
|
if ENV['PROFILE']
|
@@ -25,6 +25,7 @@ module Photish
|
|
25
25
|
:workers,
|
26
26
|
:force,
|
27
27
|
:threads,
|
28
|
+
:image_extensions,
|
28
29
|
to: :config
|
29
30
|
|
30
31
|
delegate :concat_db_files,
|
@@ -69,7 +70,8 @@ module Photish
|
|
69
70
|
def collection
|
70
71
|
@collection ||= Gallery::Collection.new(photo_dir,
|
71
72
|
qualities_mapped,
|
72
|
-
url
|
73
|
+
url,
|
74
|
+
image_extensions)
|
73
75
|
end
|
74
76
|
|
75
77
|
def qualities_mapped
|
@@ -18,6 +18,7 @@ module Photish
|
|
18
18
|
:qualities,
|
19
19
|
:url,
|
20
20
|
:worker_index,
|
21
|
+
:image_extensions,
|
21
22
|
to: :config
|
22
23
|
|
23
24
|
def load_all_plugins
|
@@ -33,7 +34,8 @@ module Photish
|
|
33
34
|
def collection
|
34
35
|
@collection ||= Gallery::Collection.new(photo_dir,
|
35
36
|
qualities_mapped,
|
36
|
-
url
|
37
|
+
url,
|
38
|
+
image_extensions)
|
37
39
|
end
|
38
40
|
|
39
41
|
def qualities_mapped
|
@@ -16,12 +16,17 @@ module Photish
|
|
16
16
|
templates: templates,
|
17
17
|
logging: logging,
|
18
18
|
url: url,
|
19
|
-
plugins: []
|
19
|
+
plugins: [],
|
20
|
+
image_extensions: image_extensions
|
20
21
|
}
|
21
22
|
end
|
22
23
|
|
23
24
|
private
|
24
25
|
|
26
|
+
def image_extensions
|
27
|
+
ImageExtension::IMAGE_MAGICK
|
28
|
+
end
|
29
|
+
|
25
30
|
def url
|
26
31
|
{
|
27
32
|
host: '',
|
@@ -0,0 +1,8 @@
|
|
1
|
+
module Photish
|
2
|
+
module Config
|
3
|
+
module ImageExtension
|
4
|
+
# Taken from 'convert -list format'
|
5
|
+
IMAGE_MAGICK = ['aai', 'art', 'avs', 'bgr', 'bgra', 'bgro', 'bmp', 'bmp2', 'bmp3', 'brf', 'cal', 'cals', 'canvas', 'caption', 'cin', 'cip', 'clip', 'cmyk', 'cmyka', 'cur', 'cut', 'data', 'dcm', 'dcx', 'dds', 'dfont', 'dpx', 'dxt1', 'dxt5', 'eps2', 'eps3', 'fax', 'fits', 'fractal', 'fts', 'g3', 'gif', 'gif87', 'gradient', 'gray', 'group4', 'h', 'hald', 'hdr', 'histogram', 'hrz', 'htm', 'html', 'icb', 'ico', 'icon', 'inline', 'ipl', 'isobrl', 'isobrl6', 'jng', 'jnx', 'jpe', 'jpeg', 'jpg', 'jps', 'label', 'mac', 'magick', 'map', 'mask', 'matte', 'miff', 'mng', 'mono', 'mpc', 'msl', 'mtv', 'mvg', 'null', 'otb', 'otf', 'pal', 'palm', 'pam', 'pango', 'pattern', 'pbm', 'pcd', 'pcds', 'pct', 'pcx', 'pdb', 'pes', 'pfa', 'pfb', 'pfm', 'pgm', 'picon', 'pict', 'pix', 'pjpeg', 'plasma', 'png', 'png00', 'png24', 'png32', 'png48', 'png64', 'png8', 'pnm', 'ppm', 'preview', 'ps2', 'ps3', 'psb', 'psd', 'ptif', 'pwp', 'radial-gradient', 'ras', 'rgb', 'rgba', 'rgbo', 'rgf', 'rla', 'rle', 'scr', 'sct', 'sfw', 'sgi', 'shtml', 'six', 'sixel', 'sparse-color', 'stegano', 'sun', 'text', 'tga', 'thumbnail', 'tiff', 'tiff64', 'tile', 'tim', 'ttc', 'ttf', 'txt', 'ubrl', 'ubrl6', 'uil', 'uyvy', 'vda', 'vicar', 'vid', 'viff', 'vips', 'vst', 'wbmp', 'wpg', 'xbm', 'xc', 'xcf', 'xpm', 'xv', 'ycbcr', 'ycbcra', 'yuv']
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
@@ -7,6 +7,7 @@ module Photish
|
|
7
7
|
include Photish::Plugin::Pluginable
|
8
8
|
|
9
9
|
delegate :qualities,
|
10
|
+
:image_extensions,
|
10
11
|
:url_info,
|
11
12
|
to: :parent, allow_nil: true
|
12
13
|
|
@@ -42,10 +43,7 @@ module Photish
|
|
42
43
|
|
43
44
|
def image_format?(file)
|
44
45
|
extension = File.extname(file).split('.').last.try(:downcase)
|
45
|
-
|
46
|
-
MIME::Types.type_for(extension).any? do
|
47
|
-
|mime| mime.to_s.match(formats)
|
48
|
-
end
|
46
|
+
image_extensions.include?(extension)
|
49
47
|
end
|
50
48
|
|
51
49
|
def album_class
|
@@ -55,12 +53,6 @@ module Photish
|
|
55
53
|
def url_end
|
56
54
|
'index.html'
|
57
55
|
end
|
58
|
-
|
59
|
-
def formats
|
60
|
-
Regexp.union([
|
61
|
-
/image/i
|
62
|
-
])
|
63
|
-
end
|
64
56
|
end
|
65
57
|
end
|
66
58
|
end
|
@@ -7,13 +7,15 @@ module Photish
|
|
7
7
|
include Photish::Plugin::Pluginable
|
8
8
|
|
9
9
|
attr_reader :qualities,
|
10
|
-
:url_info
|
10
|
+
:url_info,
|
11
|
+
:image_extensions
|
11
12
|
|
12
|
-
def initialize(path, qualities, url_info)
|
13
|
+
def initialize(path, qualities, url_info, image_extensions)
|
13
14
|
super
|
14
15
|
@path = path
|
15
16
|
@qualities = qualities
|
16
17
|
@url_info = url_info
|
18
|
+
@image_extensions = Set.new(image_extensions)
|
17
19
|
end
|
18
20
|
|
19
21
|
def name
|
data/lib/photish/version.rb
CHANGED
data/lib/photish.rb
CHANGED
@@ -12,11 +12,11 @@ require 'thor'
|
|
12
12
|
require 'recursive_open_struct'
|
13
13
|
require 'cgi'
|
14
14
|
require 'facter'
|
15
|
-
require 'mime-types'
|
16
15
|
require 'thread'
|
17
16
|
require 'thwait'
|
18
17
|
require 'slim'
|
19
18
|
require 'colorize'
|
19
|
+
require 'open3'
|
20
20
|
|
21
21
|
# Photish
|
22
22
|
require 'photish/log/loggable'
|
@@ -34,6 +34,7 @@ require 'photish/command/host'
|
|
34
34
|
require 'photish/command/init'
|
35
35
|
require 'photish/command/deploy'
|
36
36
|
require 'photish/cli/interface'
|
37
|
+
require 'photish/config/image_extension'
|
37
38
|
require 'photish/config/default_config'
|
38
39
|
require 'photish/config/file_config'
|
39
40
|
require 'photish/config/file_config_location'
|
data/photish.gemspec
CHANGED
@@ -31,7 +31,6 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "recursive-open-struct", "~> 1.0"
|
32
32
|
spec.add_dependency "listen", "~> 3.0"
|
33
33
|
spec.add_dependency "facter", "~> 2.4"
|
34
|
-
spec.add_dependency "mime-types", "~> 3.0"
|
35
34
|
spec.add_dependency "colorize", "~> 0.7.7"
|
36
35
|
|
37
36
|
spec.add_development_dependency "anemone", "~> 0.7"
|
@@ -44,4 +43,5 @@ Gem::Specification.new do |spec|
|
|
44
43
|
spec.add_development_dependency "codeclimate-test-reporter"
|
45
44
|
spec.add_development_dependency "rspec-html-matchers"
|
46
45
|
spec.add_development_dependency "metric_fu"
|
46
|
+
spec.add_development_dependency "photish-plugin-sshdeploy"
|
47
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: photish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henry Lawson
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '2.4'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: mime-types
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '3.0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '3.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: colorize
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -304,6 +290,20 @@ dependencies:
|
|
304
290
|
- - ">="
|
305
291
|
- !ruby/object:Gem::Version
|
306
292
|
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: photish-plugin-sshdeploy
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
307
|
description: |-
|
308
308
|
Photish is a simple, convention based (but
|
309
309
|
configurable) static photo site generator.
|
@@ -369,6 +369,7 @@ files:
|
|
369
369
|
- lib/photish/config/default_config.rb
|
370
370
|
- lib/photish/config/file_config.rb
|
371
371
|
- lib/photish/config/file_config_location.rb
|
372
|
+
- lib/photish/config/image_extension.rb
|
372
373
|
- lib/photish/core_plugin/breadcrumb.rb
|
373
374
|
- lib/photish/core_plugin/build_url.rb
|
374
375
|
- lib/photish/gallery/album.rb
|