jekyll-favicon 1.0.0.pre.1 → 1.0.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +1 -1
- data/.devcontainer/devcontainer.json +11 -4
- data/.github/workflows/test.yml +5 -5
- data/.gitignore +1 -2
- data/.reek.yml +25 -0
- data/.vscode/launch.json +16 -0
- data/.vscode/settings.json +7 -0
- data/.vscode/tasks.json +15 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +1 -1
- data/README.md +3 -3
- data/Rakefile +4 -4
- data/bin/debug +22 -0
- data/jekyll-favicon.gemspec +23 -23
- data/lib/jekyll-favicon.rb +5 -7
- data/lib/jekyll/favicon.rb +13 -16
- data/lib/jekyll/favicon/configuration.rb +11 -11
- data/lib/jekyll/favicon/configuration/defaults.rb +6 -6
- data/lib/jekyll/favicon/generator.rb +5 -6
- data/lib/jekyll/favicon/hooks.rb +4 -4
- data/lib/jekyll/favicon/static_data_file.rb +2 -2
- data/lib/jekyll/favicon/static_file.rb +18 -18
- data/lib/jekyll/favicon/static_file/convertible.rb +30 -27
- data/lib/jekyll/favicon/static_file/mutable.rb +16 -16
- data/lib/jekyll/favicon/static_file/referenceable.rb +2 -2
- data/lib/jekyll/favicon/static_file/sourceable.rb +7 -7
- data/lib/jekyll/favicon/static_file/taggable.rb +8 -14
- data/lib/jekyll/favicon/static_graphic_file.rb +2 -2
- data/lib/jekyll/favicon/tag.rb +9 -10
- data/lib/jekyll/favicon/utils.rb +24 -5
- data/lib/jekyll/favicon/utils/configuration/compact.rb +29 -32
- data/lib/jekyll/favicon/utils/configuration/merge.rb +41 -34
- data/lib/jekyll/favicon/utils/configuration/patch.rb +24 -23
- data/lib/jekyll/favicon/utils/convert.rb +15 -18
- data/lib/jekyll/favicon/utils/tag.rb +44 -28
- data/lib/jekyll/favicon/version.rb +1 -1
- metadata +7 -9
- data/gemfiles/jekyll36.gemfile +0 -6
- data/gemfiles/jekyll37.gemfile +0 -6
- data/gemfiles/jekyll38.gemfile +0 -6
- data/gemfiles/jekyll39.gemfile +0 -6
- data/gemfiles/jekyll40.gemfile +0 -6
- data/gemfiles/jekyll41.gemfile +0 -6
- data/gemfiles/jekyll42.gemfile +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19375fbd665cb27681d89f590ee75312136a775d623beec4303e42e974f60636
|
4
|
+
data.tar.gz: d72579b9e971436a3774bdcbf6d20bb1457f50f4e6e682648c85d6434efb3326
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efaf8c6a2e8e2a09ef3e52c7e3f128c5fa6cb3326dcc7a439b6aab4514e6e88d5581f218112e69dbe124a0d0434f49e12d9c92d25f892e4760193cbf5a77e30d
|
7
|
+
data.tar.gz: c21ad3577929122b8b83bd9befc63ed9abe58a6c48c949d6203acbe656fecb3303c15502982146bcb341d5a4bad4d14fc673ac1603d0ed723aaa21c792ccd77c
|
data/.devcontainer/Dockerfile
CHANGED
@@ -14,7 +14,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
|
14
14
|
&& apt-get -y install --no-install-recommends imagemagick librsvg2-bin
|
15
15
|
|
16
16
|
# [Optional] Uncomment this line to install additional gems.
|
17
|
-
RUN gem install
|
17
|
+
RUN gem install reek standard webrick
|
18
18
|
|
19
19
|
# [Optional] Uncomment this line to install global node packages.
|
20
20
|
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
@@ -14,8 +14,15 @@
|
|
14
14
|
},
|
15
15
|
|
16
16
|
// Set *default* container specific settings.json values on container create.
|
17
|
-
"settings": {
|
18
|
-
"terminal.integrated.
|
17
|
+
"settings": {
|
18
|
+
"terminal.integrated.profiles.linux": {
|
19
|
+
"zsh (login)": {
|
20
|
+
"path": "zsh",
|
21
|
+
"args": [
|
22
|
+
"-l"
|
23
|
+
]
|
24
|
+
}
|
25
|
+
}
|
19
26
|
},
|
20
27
|
|
21
28
|
// Add the IDs of extensions you want installed when the container is created.
|
@@ -27,9 +34,9 @@
|
|
27
34
|
// "forwardPorts": [],
|
28
35
|
|
29
36
|
// Use 'postCreateCommand' to run commands after the container is created.
|
30
|
-
|
37
|
+
"postCreateCommand": "bundle install",
|
31
38
|
|
32
39
|
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
33
40
|
"remoteUser": "vscode"
|
34
41
|
|
35
|
-
}
|
42
|
+
}
|
data/.github/workflows/test.yml
CHANGED
@@ -2,14 +2,14 @@ name: Test
|
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [
|
5
|
+
branches: [ main, next, update-ci ]
|
6
6
|
pull_request:
|
7
|
-
branches: [
|
7
|
+
branches: [ main ]
|
8
8
|
|
9
9
|
jobs:
|
10
10
|
test:
|
11
11
|
env:
|
12
|
-
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
12
|
+
BUNDLE_GEMFILE: test/gemfiles/${{ matrix.gemfile }}.gemfile
|
13
13
|
|
14
14
|
runs-on: ${{ matrix.os }}
|
15
15
|
|
@@ -33,6 +33,6 @@ jobs:
|
|
33
33
|
- ruby-version: '3.0'
|
34
34
|
gemfile: jekyll37
|
35
35
|
|
36
|
-
gemfile: [ jekyll36, jekyll37, jekyll38, jekyll39, jekyll40, jekyll41 ]
|
36
|
+
gemfile: [ jekyll36, jekyll37, jekyll38, jekyll39, jekyll40, jekyll41, jekyll42 ]
|
37
37
|
os: [ ubuntu-latest ]
|
38
|
-
ruby-version: [ 2.
|
38
|
+
ruby-version: [ 2.6, 2.7, '3.0' ]
|
data/.gitignore
CHANGED
data/.reek.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
detectors:
|
3
|
+
ControlParameter:
|
4
|
+
exclude:
|
5
|
+
- "Jekyll::Favicon::StaticFile::Convertible#write" # overrides Jekyll::StaticFile method
|
6
|
+
UtilityFunction:
|
7
|
+
exclude:
|
8
|
+
- "Jekyll::Favicon::Generator#generate" # overrides Jekyll::Generator method
|
9
|
+
- "Jekyll::Favicon::Tag#render" # overrides Liquid::Tag method
|
10
|
+
- "Jekyll::Favicon::Utils::Configuration::Compact::ClassMethods#compact" # TODO: refactor
|
11
|
+
- "Jekyll::Favicon::Utils::Configuration::Merge::ClassMethods#merge" # TODO: refactor
|
12
|
+
- "Jekyll::Favicon::Utils::Configuration::Patch::ClassMethods#patch" # TODO: refactor
|
13
|
+
- "Jekyll::Favicon::Utils::Convert::ClassMethods#convert" # TODO: refactor
|
14
|
+
- "Jekyll::Favicon::Utils::Tag::ClassMethods#build_element" # TODO: refactor
|
15
|
+
- "Jekyll::Favicon::Utils::Tag::ClassMethods#build_tag" # TODO: refactor
|
16
|
+
- "Jekyll::Favicon::Utils::Tag::ClassMethods#mutate_element" # TODO: refactor
|
17
|
+
NestedIterators:
|
18
|
+
exclude:
|
19
|
+
- "fixture"
|
20
|
+
directories:
|
21
|
+
"test/unit":
|
22
|
+
InstanceVariableAssumption:
|
23
|
+
enabled: false
|
24
|
+
TooManyMethods:
|
25
|
+
enabled: false
|
data/.vscode/launch.json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
3
|
+
// Hover to view descriptions of existing attributes.
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
+
"version": "0.2.0",
|
6
|
+
"configurations": [
|
7
|
+
|
8
|
+
{
|
9
|
+
"name": "jekyll serve",
|
10
|
+
"type": "Ruby",
|
11
|
+
"cwd": "${workspaceRoot}",
|
12
|
+
"request": "launch",
|
13
|
+
"program": "bin/debug"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
data/.vscode/tasks.json
ADDED
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [1.0.0.pre.2] - 2021-06-11
|
10
|
+
### Fixed
|
11
|
+
- mime time error when starting new project
|
12
|
+
|
9
13
|
## [1.0.0.pre.1] - 2021-05-26
|
10
14
|
### Removed
|
11
15
|
- Delete Gemfile.lock
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -34,7 +34,7 @@ Check the devcontainer's [Dockerfile](.devcontainer/Dockerfile) for more practic
|
|
34
34
|
Add this line to your application's Gemfile:
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
gem 'jekyll-favicon', '~> 1.0.0.pre.
|
37
|
+
gem 'jekyll-favicon', '~> 1.0.0.pre.2', group: :jekyll_plugins
|
38
38
|
```
|
39
39
|
|
40
40
|
## Usage
|
@@ -45,8 +45,8 @@ As [Github Pages](https://pages.github.com) build doesn't load custom plugins, t
|
|
45
45
|
|
46
46
|
Tested with:
|
47
47
|
|
48
|
-
- Jekyll 3.6 to 3.7, ruby 2.
|
49
|
-
- Jekyll 3.8 to 4.2, ruby 2.
|
48
|
+
- Jekyll 3.6 to 3.7, ruby 2.6 to 2.7
|
49
|
+
- Jekyll 3.8 to 4.2, ruby 2.6 to 3.0
|
50
50
|
|
51
51
|
### Generator
|
52
52
|
|
data/Rakefile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "rake/testtask"
|
4
4
|
|
5
|
-
desc
|
5
|
+
desc "run tests"
|
6
6
|
task default: :test
|
7
7
|
|
8
8
|
Rake::TestTask.new do |t|
|
9
|
-
t.libs << [
|
10
|
-
t.test_files = FileList[
|
9
|
+
t.libs << ["test", "test/spec", "test/unit"]
|
10
|
+
t.test_files = FileList["test/**/*_spec.rb", "test/**/test_*.rb"]
|
11
11
|
t.warning = false
|
12
12
|
end
|
data/bin/debug
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift(File.expand_path("../../lib", __FILE__))
|
4
|
+
|
5
|
+
require "pathname"
|
6
|
+
require "tmpdir"
|
7
|
+
require "jekyll"
|
8
|
+
require "jekyll-favicon"
|
9
|
+
|
10
|
+
GEM_ROOT = Pathname.new "/workspaces/jekyll-favicon"
|
11
|
+
|
12
|
+
Dir.mktmpdir do |source|
|
13
|
+
%w[index.html favicon.svg].each do |basename|
|
14
|
+
template = GEM_ROOT.join "test/fixtures", basename
|
15
|
+
target = File.join source, basename
|
16
|
+
FileUtils.cp template, target
|
17
|
+
end
|
18
|
+
destination = File.join source, "_site"
|
19
|
+
options = {source: source, destination: destination}
|
20
|
+
Jekyll::Commands::Build.process options
|
21
|
+
Jekyll::Commands::Serve.process options
|
22
|
+
end
|
data/jekyll-favicon.gemspec
CHANGED
@@ -1,36 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path(
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require
|
5
|
+
require "jekyll/favicon/version"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
8
|
+
spec.name = "jekyll-favicon"
|
9
|
+
spec.version = Jekyll::Favicon::VERSION
|
10
|
+
spec.authors = ["Alvaro Faundez"]
|
11
|
+
spec.email = ["alvaro@faundez.net"]
|
12
12
|
|
13
|
-
spec.summary
|
14
|
-
spec.description
|
15
|
-
|
16
|
-
spec.homepage
|
17
|
-
spec.license
|
13
|
+
spec.summary = "Jekyll plugin for favicon tag generation."
|
14
|
+
spec.description = "Jekyll-favicon is a jekyll plugin that adds the" \
|
15
|
+
" tag favicon, generating html tags for favicon."
|
16
|
+
spec.homepage = "https://github.com/afaundez/jekyll-favicon"
|
17
|
+
spec.license = "MIT"
|
18
18
|
|
19
|
-
spec.files
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
20
|
f.match(%r{^(test|spec|features)/})
|
21
21
|
end
|
22
|
-
spec.bindir
|
23
|
-
spec.executables
|
24
|
-
spec.require_paths = [
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ["lib"]
|
25
25
|
|
26
|
-
spec.required_ruby_version =
|
26
|
+
spec.required_ruby_version = ">= 2.5.0"
|
27
27
|
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
28
|
+
spec.add_development_dependency "minitest", "~> 5.8"
|
29
|
+
spec.add_development_dependency "minitest-hooks", "~> 1.5"
|
30
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.4.3"
|
31
|
+
spec.add_development_dependency "rake", "~> 12.3"
|
32
32
|
|
33
|
-
spec.add_runtime_dependency
|
34
|
-
spec.add_runtime_dependency
|
35
|
-
spec.add_runtime_dependency
|
33
|
+
spec.add_runtime_dependency "jekyll", ">= 3.0", "< 5.0"
|
34
|
+
spec.add_runtime_dependency "mini_magick", "~> 4.11"
|
35
|
+
spec.add_runtime_dependency "rexml", "~> 3.2", ">= 3.2.5"
|
36
36
|
end
|
data/lib/jekyll-favicon.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
# rubocop:disable Naming/FileName
|
2
|
-
# rubocop:enable Naming/FileName
|
3
1
|
# frozen_string_literal: true
|
4
2
|
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
3
|
+
require "jekyll/favicon"
|
4
|
+
require "jekyll/favicon/generator"
|
5
|
+
require "jekyll/favicon/tag"
|
6
|
+
require "jekyll/favicon/hooks"
|
7
|
+
require "jekyll/favicon/version"
|
data/lib/jekyll/favicon.rb
CHANGED
@@ -1,31 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
3
|
+
require "yaml"
|
4
|
+
require "jekyll/favicon/configuration/defaults"
|
5
|
+
require "jekyll/favicon/configuration"
|
6
|
+
require "jekyll/favicon/static_data_file"
|
7
|
+
require "jekyll/favicon/static_graphic_file"
|
8
8
|
|
9
9
|
module Jekyll
|
10
10
|
# Module for custom configurations and defaults
|
11
11
|
module Favicon
|
12
12
|
include Configuration::Defaults
|
13
13
|
|
14
|
-
def self.configuration(site)
|
15
|
-
Configuration.merged site
|
16
|
-
end
|
17
|
-
|
18
14
|
def self.assets(site)
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
Configuration.merged(site)
|
16
|
+
.fetch("assets", [])
|
17
|
+
.collect { |attributes| build_asset site, attributes }
|
18
|
+
.compact
|
22
19
|
end
|
23
20
|
|
24
21
|
def self.build_asset(site, attributes)
|
25
|
-
asset_class = case File.extname attributes[
|
26
|
-
when
|
27
|
-
when
|
28
|
-
|
22
|
+
asset_class = case File.extname attributes["name"]
|
23
|
+
when ".ico", ".png", ".svg" then StaticGraphicFile
|
24
|
+
when ".webmanifest", ".json", ".xml" then StaticDataFile
|
25
|
+
end
|
29
26
|
asset_class&.new site, attributes
|
30
27
|
end
|
31
28
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "jekyll/utils"
|
4
4
|
|
5
5
|
module Jekyll
|
6
6
|
module Favicon
|
@@ -11,12 +11,12 @@ module Jekyll
|
|
11
11
|
|
12
12
|
user_overrides = unlegacify user_overrides
|
13
13
|
user_merged = Jekyll::Utils.deep_merge_hashes from_defaults,
|
14
|
-
|
14
|
+
user_overrides
|
15
15
|
standardize user_merged
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.from_user(site)
|
19
|
-
site&.config&.fetch
|
19
|
+
site&.config&.fetch "favicon", {}
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.from_defaults
|
@@ -26,7 +26,7 @@ module Jekyll
|
|
26
26
|
def self.standardize(config)
|
27
27
|
return unless config
|
28
28
|
|
29
|
-
config.merge
|
29
|
+
config.merge "source" => standardize_source(config["source"])
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.standardize_source(source)
|
@@ -40,16 +40,16 @@ module Jekyll
|
|
40
40
|
|
41
41
|
def self.standardize_source_string(source)
|
42
42
|
dir, name = File.split source
|
43
|
-
{
|
43
|
+
{"name" => name, "dir" => dir}
|
44
44
|
end
|
45
45
|
|
46
46
|
private_class_method :standardize_source_string
|
47
47
|
|
48
48
|
def self.standardize_source_hash(source)
|
49
|
-
name_dir, name = File.split source[
|
50
|
-
dir = source[
|
49
|
+
name_dir, name = File.split source["name"]
|
50
|
+
dir = source["dir"]
|
51
51
|
source_dir = dir && !dir.empty? ? dir : nil
|
52
|
-
{
|
52
|
+
{"name" => name, "dir" => standardize_pathname(source_dir, name_dir)}
|
53
53
|
end
|
54
54
|
|
55
55
|
private_class_method :standardize_source_hash
|
@@ -61,9 +61,9 @@ module Jekyll
|
|
61
61
|
private_class_method :standardize_source_string
|
62
62
|
|
63
63
|
def self.unlegacify(config)
|
64
|
-
options = config.slice
|
65
|
-
path = options[
|
66
|
-
options[
|
64
|
+
options = config.slice "source", "dir", "background", "assets"
|
65
|
+
path = options["path"]
|
66
|
+
options["dir"] ||= path if path
|
67
67
|
options
|
68
68
|
end
|
69
69
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "yaml"
|
4
4
|
|
5
5
|
module Jekyll
|
6
6
|
module Favicon
|
@@ -18,7 +18,7 @@ module Jekyll
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.load_defaults(*parts)
|
21
|
-
load_file
|
21
|
+
load_file "config", *parts
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.load_file(*parts)
|
@@ -28,20 +28,20 @@ module Jekyll
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.define_defaults(base, method_name, &block)
|
31
|
-
base.define_singleton_method(
|
31
|
+
base.define_singleton_method("defaults", &block)
|
32
32
|
define_method(method_name, &block)
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.base_name_to_parts(name)
|
36
|
-
name.split(
|
36
|
+
name.split("::").collect do |module_or_class|
|
37
37
|
camelcase_to_snakecase module_or_class
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.camelcase_to_snakecase(camelcase)
|
42
42
|
camelcase.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
43
|
-
|
44
|
-
|
43
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
44
|
+
.downcase
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|