hyde_admin 0.0.7 → 0.0.10

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
  SHA256:
3
- metadata.gz: 8ef51602655e92300fd16efb61fc625738e962b8708146c702666fefe759d582
4
- data.tar.gz: 695738c9eb64ff85aaa643fb2b06ac8219d9ed1abec97cd9fc2ca7a4b99014f8
3
+ metadata.gz: 4c2a24943a838bb470b6375c0658626798f0f1beb456f65d792995a4fe7bf0bd
4
+ data.tar.gz: a367a451d9b2e2aa05aa79cc2812702624472e59a776bf9fdc842260fa1cf099
5
5
  SHA512:
6
- metadata.gz: 1076b6a7a5cd25e24715a5bfc27f5cc7ddb2f2a88c3406d6ca2affeb45e391cab4e74f734ef0036a6c33ae1f2fa61e977b63e8446cd26139aacafabcacbbde7e
7
- data.tar.gz: 29719bfc0e10609a22b45590031c5e4fea57d9e190ba158a186d2fa523953d0c37df8e204ff8d846296b915fb108d9a0a7d61b0bb2ae8b9991dccc2175d0c519
6
+ metadata.gz: 712d1960647c69074f878d94d4bc1db2193f3f170835f7c7ad98d4652df95ad96ef25d9d6dd238d19517ff0a87d5256a2875dafba89b534d69a8d632de576596
7
+ data.tar.gz: f3773cbc9b770c60ee5c237f1ac657d4ed9cbe25973f8a3cfffbf86938ac6b9ab8573820a3e72710dcf32e96738d3d4c0e7954c7efde347ad122a79a4bff3a6b
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/.idea/hyde_admin.iml CHANGED
@@ -12,7 +12,11 @@
12
12
  <orderEntry type="inheritedJdk" />
13
13
  <orderEntry type="sourceFolder" forTests="false" />
14
14
  <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.9, RVM: ruby-2.7.0) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.4, RVM: ruby-2.7.0) [gem]" level="application" />
15
16
  <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.10, RVM: ruby-2.7.0) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="image_processing (v1.12.1, RVM: ruby-2.7.0) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="mini_magick (v4.11.0, RVM: ruby-2.7.0) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="ruby-vips (v2.0.17, RVM: ruby-2.7.0) [gem]" level="application" />
16
20
  </component>
17
21
  <component name="RModuleSettingsStorage">
18
22
  <LOAD_PATH number="0" />
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 0.0.9
2
+
3
+ Hide deploy button if 'deploy_dest_address' is empty.
4
+ hyde_admin_config allow you to install the latest default config file.
5
+
6
+ # 0.0.8
7
+
8
+ Resize image at upload with ImageProcessing (MiniMagick)
9
+
1
10
  # 0.0.7
2
11
 
3
12
  Post edit : bugfix, keep layout & format when we don't show input.
data/README.md CHANGED
@@ -1,8 +1,15 @@
1
+ ## Hyde admin
2
+
3
+ Hyde_admin is a administration frontend for Jekyll (static site generator in Ruby).
4
+
1
5
  ## Getting Started with Hyde Admin
2
6
 
3
7
  Add
4
8
 
5
- `gem 'hyde_admin'`
9
+ ```
10
+ gem 'hyde_admin'
11
+ gem 'puma'
12
+ ```
6
13
 
7
14
  In the Gemfile of your jekyll site.
8
15
 
@@ -20,4 +27,14 @@ You can visit localhost:9292 !
20
27
  hyde_admin.yml is automatically generated in your jekyll directory.
21
28
  (you can change settings with hyde_admin ou directly)
22
29
 
23
- Hyde_admin allow ssh deployment.
30
+ Hyde_admin allow ssh deployment.
31
+
32
+ ## New version of hyde_admin ?
33
+
34
+ Just install the lastest config file (your config file will be renamed, and latest config file will be installed), run :
35
+
36
+ `hyde_admin_config`
37
+
38
+ ## Error when bundle install
39
+
40
+ Try this [https://stackoverflow.com/questions/30818391/gem-eventmachine-fatal-error-openssl-ssl-h-file-not-found](https://stackoverflow.com/questions/30818391/gem-eventmachine-fatal-error-openssl-ssl-h-file-not-found)
@@ -84,12 +84,14 @@
84
84
  <%= EscapeUtils.escape_html t.overview.capitalize %>
85
85
  </a>
86
86
  </li>
87
- <li class="nav-item">
88
- <a class="nav-link active" aria-current="page" href="/deploy" id="btn-deploy">
89
- <span data-feather="home" class="fas fa-cloud-upload-alt"></span>
90
- <%= EscapeUtils.escape_html t.deploy.capitalize %>
91
- </a>
92
- </li>
87
+ <% if !@hyde_parameters['deploy_dest_address'].to_s.empty? %>
88
+ <li class="nav-item">
89
+ <a class="nav-link active" aria-current="page" href="/deploy" id="btn-deploy">
90
+ <span data-feather="home" class="fas fa-cloud-upload-alt"></span>
91
+ <%= EscapeUtils.escape_html t.deploy.capitalize %>
92
+ </a>
93
+ </li>
94
+ <% end %>
93
95
  </ul>
94
96
  <p class="text-center text-muted"><br><br><em>Hyde Admin V.<%= HydeAdmin::VERSION %></em>&nbsp;&nbsp;&nbsp;<a href="https://github.com/rivsc/hyde_admin" class="link-secondary"><i class="fab fa-github"></i></a></p>
95
97
  </div>
@@ -3,9 +3,9 @@
3
3
  <form action="/configuration" method="post">
4
4
  <% @hyde_parameters.each_pair do |setting, value| %>
5
5
  <div class="mb-3">
6
- <label for="i-<%= setting %>" class="form-label"><%= EscapeUtils.escape_html t.send(setting).capitalize %></label>
6
+ <label for="i-<%= setting %>" class="form-label"><%= (EscapeUtils.escape_html t.send(setting).capitalize rescue setting) %></label>
7
7
  <input type="text" class="form-control" value="<%= value %>" name="<%= setting %>" id="i-<%= setting %>">
8
- <div id="i-<%= setting %>-help" class="form-text"><%= EscapeUtils.escape_html t.send("help_#{setting}").capitalize %></div>
8
+ <div id="i-<%= setting %>-help" class="form-text"><%= (EscapeUtils.escape_html t.send("help_#{setting}").capitalize rescue '') %></div>
9
9
  </div>
10
10
  <% end %>
11
11
  <button type="submit" class="btn btn-primary"><%= EscapeUtils.escape_html t.submit.capitalize %></button>
@@ -25,21 +25,25 @@
25
25
  </script>
26
26
  </head>
27
27
  <body style="width:800px;" class="p-4">
28
- <h1><%= t.upload_image_form.capitalize %></h1>
28
+ <div class="container-fluid">
29
+ <div class="row">
30
+ <h1><%= t.upload_image_form.capitalize %></h1>
29
31
 
30
- <% if @filenames %>
31
- <%= t.pictures_has_been_uploaded.capitalize %> : <%= @filenames.join(', ') %>
32
- <% end %>
32
+ <% if @filenames %>
33
+ <%= t.pictures_has_been_uploaded.capitalize %> : <%= @filenames.join(', ') %>
34
+ <% end %>
33
35
 
34
- <form enctype="multipart/form-data" method="post" action="/upload_image" class="row g-3">
35
- <div class="col-10">
36
- <input type="file" name="files[]" multiple class="form-control">
37
- </div>
38
- <div class="col-2">
39
- <button class="btn btn-primary"><%= t.upload.capitalize %></button>
40
- </div>
41
- </form>
36
+ <form enctype="multipart/form-data" method="post" action="/upload_image" class="row g-3">
37
+ <div class="col-10">
38
+ <input type="file" name="files[]" multiple class="form-control">
39
+ </div>
40
+ <div class="col-2">
41
+ <button class="btn btn-primary"><%= t.upload.capitalize %></button>
42
+ </div>
43
+ </form>
42
44
 
43
- <button class="btn btn-secondary btn-return-to-editor fixed-bottom mb-4 ms-4"><%= t.quit.capitalize %></button>
45
+ <button class="btn btn-secondary btn-return-to-editor fixed-bottom mb-4 ms-4"><%= t.quit.capitalize %></button>
46
+ </div>
47
+ </div>
44
48
  </body>
45
49
  </html>
data/bin/hyde_admin.ru CHANGED
@@ -6,6 +6,7 @@ require 'fileutils'
6
6
  require 'i18n'
7
7
  require 'date'
8
8
  require 'escape_utils'
9
+ require 'image_processing/mini_magick'
9
10
  require_relative '../lib/hyde_admin/version'
10
11
 
11
12
  # TODO détecter format nouveau post (pour codemirror)
@@ -82,6 +83,26 @@ class Mid < Roda
82
83
  str.to_s.scan(/^\[?(.*?)\]?$/).flatten.first.split(',')
83
84
  end
84
85
 
86
+ def self.resize_image(image_path,params)
87
+ dir = File.dirname(image_path)
88
+ basename = File.basename(image_path, File.extname(image_path))
89
+ while File.exist?("#{File.join(dir, "#{basename}_#{params['resize_size']}")}.#{params['resize_format']}")
90
+ basename += '_'
91
+ end
92
+ output_path = "#{File.join(dir, "#{basename}_#{params['resize_size']}")}.#{params['resize_format']}"
93
+
94
+ width,height = params['resize_size'].split("x")
95
+ ip = ImageProcessing::MiniMagick
96
+ .source(image_path)
97
+ .convert(params['resize_format'])
98
+ .resize_to_limit(width.to_i, height.to_i)
99
+ if params['resize_format'] == 'jpg'
100
+ ip = ip.saver(quality: 80, interlace: "Line")
101
+ end
102
+
103
+ ip.call(destination: output_path)
104
+ end
105
+
85
106
  FORMAT_DATE_FILENAME = '%Y-%m-%d'
86
107
  FORMAT_DATE_INPUT_FILENAME = '%Y-%m-%d %H:%M:%S %z'
87
108
 
@@ -156,6 +177,9 @@ class Mid < Roda
156
177
  File.open(File.join(@hyde_parameters['images_path'], filename), 'wb') do |f|
157
178
  f.write(file[:tempfile].read)
158
179
  end
180
+ if @hyde_parameters['resize_enable'] == 'true'
181
+ Mid.resize_image(File.join(@hyde_parameters['images_path'], filename), @hyde_parameters)
182
+ end
159
183
  end
160
184
  render("upload_image_form")
161
185
  end
data/bin/hyde_admin.yml CHANGED
@@ -6,10 +6,13 @@ deploy_dest_path: "/absolute/remote/path/mysite"
6
6
  rsync_fullpath: rsync
7
7
  site_index: index.html
8
8
  hyde_admin_language: en
9
- hyde_admin_auth: false
9
+ hyde_admin_auth: 'false'
10
10
  hyde_admin_user: admin
11
11
  hyde_admin_password: admin
12
12
  default_format: html
13
- display_layout: true
14
- display_format: true
15
- images_path: assets/images/
13
+ display_layout: 'true'
14
+ display_format: 'true'
15
+ images_path: assets/images/
16
+ resize_format: jpg
17
+ resize_size: 1500x1000
18
+ resize_enable: 'true'
@@ -0,0 +1,16 @@
1
+ #!/bin/env ruby
2
+
3
+ require 'fileutils'
4
+
5
+ local_config_file = File.join(Dir.pwd, 'hyde_admin.yml')
6
+ old_filename = "hyde_admin_old_#{Time.now.strftime('%Y_%m_%d')}.yml"
7
+
8
+ # Backup actual config file
9
+ if File.exist?(local_config_file)
10
+ FileUtils.mv(local_config_file, old_filename)
11
+ end
12
+
13
+ # Copy the default config file
14
+ FileUtils.copy(File.join(File.expand_path(File.dirname(__FILE__)), 'hyde_admin.yml'), local_config_file)
15
+
16
+ puts "#{local_config_file} copied, you can find your old config file here : #{old_filename} !"
data/bin/i18n/en.yml CHANGED
@@ -100,4 +100,10 @@ quit: quit
100
100
  header_name: header name
101
101
  header_value: header value
102
102
  images: images
103
- load_images: load images
103
+ load_images: load images
104
+ resize_format: jpg
105
+ help_resize_format: jpg or png
106
+ resize_size: "size to fit, example : 1500x1000"
107
+ help_resize_size: Downsize to fit to the specified size (resize preserve ratio), example 1500x1000
108
+ resize_enable: Enable resizing for images
109
+ help_resize_enable: enable feature resize image at upload
data/bin/i18n/fr.yml CHANGED
@@ -100,4 +100,10 @@ quit: quitter
100
100
  header_name: nom d'entête
101
101
  header_value: valeur d'entête
102
102
  images: images
103
- load_images: charger images
103
+ load_images: charger images
104
+ resize_format: jpg
105
+ help_resize_format: jpg ou png
106
+ resize_size: "Recadrer en (example : 1500x1000)"
107
+ help_resize_size: Réduit les image pour coller à la taille spécifiée (le redimensionnement préserve le ratio), exemple 1500x1000
108
+ resize_enable: activer redimensionnement
109
+ help_resize_enable: active la fonctionnalité de redimensionnement d'image à l'upload
data/hyde_admin.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  all_files = `git ls-files`.split("\n").reject{ |filepath| filepath.start_with? 'test/' }
12
12
  s.files = all_files
13
13
 
14
- s.executables = ['hyde_admin']
14
+ s.executables = ['hyde_admin','hyde_admin_config']
15
15
  s.bindir = "bin"
16
16
  s.require_paths = ["lib"]
17
17
 
@@ -31,4 +31,5 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency("escape_utils") # escape_javascript / escape_html
32
32
  #s.add_runtime_dependency("i18n", "~> 0.4.0") # I18n.transliterate (already required by jekyll)
33
33
  s.add_runtime_dependency('jekyll') # Because we call jekyll binary
34
+ s.add_runtime_dependency('image_processing') # JPEG quality
34
35
  end
@@ -1,3 +1,3 @@
1
1
  module HydeAdmin
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.10"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyde_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Claudel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-25 00:00:00.000000000 Z
11
+ date: 2022-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: roda
@@ -80,14 +80,30 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: image_processing
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: A Jekyll admin interface
84
98
  email: claudel.sylvain@gmail.com
85
99
  executables:
86
100
  - hyde_admin
101
+ - hyde_admin_config
87
102
  extensions: []
88
103
  extra_rdoc_files: []
89
104
  files:
90
105
  - ".gitattributes"
106
+ - ".gitignore"
91
107
  - ".idea/.gitignore"
92
108
  - ".idea/hyde_admin.iml"
93
109
  - ".idea/misc.xml"
@@ -112,6 +128,7 @@ files:
112
128
  - bin/hyde_admin
113
129
  - bin/hyde_admin.ru
114
130
  - bin/hyde_admin.yml
131
+ - bin/hyde_admin_config
115
132
  - bin/hyde_assets/hyde_admin.css
116
133
  - bin/hyde_assets/hyde_admin.js
117
134
  - bin/i18n/en.yml
@@ -179,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
196
  - !ruby/object:Gem::Version
180
197
  version: '0'
181
198
  requirements: []
182
- rubygems_version: 3.1.4
199
+ rubygems_version: 3.3.7
183
200
  signing_key:
184
201
  specification_version: 4
185
202
  summary: Hyde for Jekyll site