jekyll-favicon 1.0.0.pre.1 → 1.0.0.pre.2
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 +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
|