jekyll-favicon 0.2.6 → 1.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +5 -5
  2. data/.devcontainer/Dockerfile +20 -0
  3. data/.devcontainer/devcontainer.json +42 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +10 -13
  5. data/.github/PULL_REQUEST_TEMPLATE.md +11 -9
  6. data/.github/workflows/gem-push.yml +40 -0
  7. data/.github/workflows/test.yml +38 -0
  8. data/.gitignore +4 -0
  9. data/.reek.yml +25 -0
  10. data/.vscode/launch.json +16 -0
  11. data/.vscode/settings.json +7 -0
  12. data/.vscode/tasks.json +15 -0
  13. data/CHANGELOG.md +42 -0
  14. data/Gemfile +3 -1
  15. data/README.md +80 -20
  16. data/Rakefile +9 -7
  17. data/bin/console +1 -0
  18. data/bin/debug +22 -0
  19. data/config/jekyll/favicon.yml +115 -0
  20. data/config/jekyll/favicon/static_file.yml +3 -0
  21. data/config/jekyll/favicon/static_file/convertible.yml +42 -0
  22. data/config/jekyll/favicon/static_file/mutable.yml +22 -0
  23. data/config/jekyll/favicon/static_file/referenceable.yml +15 -0
  24. data/config/jekyll/favicon/static_file/sourceable.yml +3 -0
  25. data/config/jekyll/favicon/static_file/taggable.yml +22 -0
  26. data/jekyll-favicon.gemspec +24 -24
  27. data/lib/jekyll-favicon.rb +7 -16
  28. data/lib/jekyll/favicon.rb +19 -16
  29. data/lib/jekyll/favicon/configuration.rb +73 -0
  30. data/lib/jekyll/favicon/configuration/defaults.rb +49 -0
  31. data/lib/jekyll/favicon/generator.rb +10 -74
  32. data/lib/jekyll/favicon/hooks.rb +12 -10
  33. data/lib/jekyll/favicon/static_data_file.rb +17 -0
  34. data/lib/jekyll/favicon/static_file.rb +97 -0
  35. data/lib/jekyll/favicon/static_file/convertible.rb +121 -0
  36. data/lib/jekyll/favicon/static_file/mutable.rb +81 -0
  37. data/lib/jekyll/favicon/static_file/referenceable.rb +22 -0
  38. data/lib/jekyll/favicon/static_file/sourceable.rb +73 -0
  39. data/lib/jekyll/favicon/static_file/taggable.rb +53 -0
  40. data/lib/jekyll/favicon/static_graphic_file.rb +21 -0
  41. data/lib/jekyll/favicon/tag.rb +14 -17
  42. data/lib/jekyll/favicon/utils.rb +43 -0
  43. data/lib/jekyll/favicon/utils/configuration/compact.rb +58 -0
  44. data/lib/jekyll/favicon/utils/configuration/merge.rb +70 -0
  45. data/lib/jekyll/favicon/utils/configuration/patch.rb +49 -0
  46. data/lib/jekyll/favicon/utils/convert.rb +39 -0
  47. data/lib/jekyll/favicon/utils/tag.rb +70 -0
  48. data/lib/jekyll/favicon/version.rb +3 -1
  49. metadata +69 -67
  50. data/.rubocop.yml +0 -5
  51. data/.ruby-version +0 -1
  52. data/.travis.yml +0 -21
  53. data/Gemfile.lock +0 -97
  54. data/lib/browserconfig.rb +0 -54
  55. data/lib/hash.rb +0 -12
  56. data/lib/image.rb +0 -33
  57. data/lib/jekyll/favicon/config/defaults.yml +0 -54
  58. data/lib/jekyll/favicon/icon.rb +0 -73
  59. data/lib/jekyll/favicon/metadata.rb +0 -12
  60. data/lib/jekyll/favicon/templates/chrome.html.erb +0 -5
  61. data/lib/jekyll/favicon/templates/classic.html.erb +0 -8
  62. data/lib/jekyll/favicon/templates/ie.html.erb +0 -4
  63. data/lib/jekyll/favicon/templates/safari.html.erb +0 -8
  64. data/lib/string.rb +0 -14
  65. data/lib/webmanifest.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 829062a7c126927267b5f08fc5bdc9a7140ad0f9
4
- data.tar.gz: 97800978bf740232d4c60a7aa536b5e0e9b4ec5b
2
+ SHA256:
3
+ metadata.gz: 19375fbd665cb27681d89f590ee75312136a775d623beec4303e42e974f60636
4
+ data.tar.gz: d72579b9e971436a3774bdcbf6d20bb1457f50f4e6e682648c85d6434efb3326
5
5
  SHA512:
6
- metadata.gz: af184fd8af5f1652b5f377c42812f0e2423f1d1a5d27c2de2cf491a2cb6c1cb89f013a9980084ceecee155cbcacbd8ff8d4627fadf4aed259c24bdce17369c3d
7
- data.tar.gz: ba0f65a228219884b4fce639d4a4ffa02e26fa44575d3cede4efd961f1a052d83c4bbc2df48110c74b9330d36ec740d1e34473b656a75fa970dbdb89801e7b09
6
+ metadata.gz: efaf8c6a2e8e2a09ef3e52c7e3f128c5fa6cb3326dcc7a439b6aab4514e6e88d5581f218112e69dbe124a0d0434f49e12d9c92d25f892e4760193cbf5a77e30d
7
+ data.tar.gz: c21ad3577929122b8b83bd9befc63ed9abe58a6c48c949d6203acbe656fecb3303c15502982146bcb341d5a4bad4d14fc673ac1603d0ed723aaa21c792ccd77c
@@ -0,0 +1,20 @@
1
+ # See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/ruby/.devcontainer/base.Dockerfile
2
+
3
+ # [Choice] Ruby version: 3, 3.0, 2, 2.7, 2.6, 2.5
4
+ ARG VARIANT="3"
5
+ FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
6
+
7
+ # [Option] Install Node.js
8
+ ARG INSTALL_NODE="true"
9
+ ARG NODE_VERSION="lts/*"
10
+ RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
11
+
12
+ # [Optional] Uncomment this section to install additional OS packages.
13
+ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
14
+ && apt-get -y install --no-install-recommends imagemagick librsvg2-bin
15
+
16
+ # [Optional] Uncomment this line to install additional gems.
17
+ RUN gem install reek standard webrick
18
+
19
+ # [Optional] Uncomment this line to install global node packages.
20
+ # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -0,0 +1,42 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2
+ // https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/ruby
3
+ {
4
+ "name": "Ruby",
5
+ "build": {
6
+ "dockerfile": "Dockerfile",
7
+ "args": {
8
+ // Update 'VARIANT' to pick a Ruby version: 3, 3.0, 2, 2.7, 2.6, 2.5
9
+ "VARIANT": "3",
10
+ // Options
11
+ "INSTALL_NODE": "false",
12
+ "NODE_VERSION": "lts/*"
13
+ }
14
+ },
15
+
16
+ // Set *default* container specific settings.json values on container create.
17
+ "settings": {
18
+ "terminal.integrated.profiles.linux": {
19
+ "zsh (login)": {
20
+ "path": "zsh",
21
+ "args": [
22
+ "-l"
23
+ ]
24
+ }
25
+ }
26
+ },
27
+
28
+ // Add the IDs of extensions you want installed when the container is created.
29
+ "extensions": [
30
+ "rebornix.Ruby"
31
+ ],
32
+
33
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
34
+ // "forwardPorts": [],
35
+
36
+ // Use 'postCreateCommand' to run commands after the container is created.
37
+ "postCreateCommand": "bundle install",
38
+
39
+ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
40
+ "remoteUser": "vscode"
41
+
42
+ }
@@ -10,9 +10,9 @@ A clear and concise description of what the bug is.
10
10
  **To Reproduce**
11
11
  Steps to reproduce the behavior:
12
12
  1. Go to '...'
13
- 2. Click on '....'
14
- 3. Scroll down to '....'
15
- 4. See error
13
+ 2. Create a new project or clone one from '...'
14
+ 3. Add gem
15
+ 4. Bundle/Run/Test/...
16
16
 
17
17
  **Expected behavior**
18
18
  A clear and concise description of what you expected to happen.
@@ -20,16 +20,13 @@ A clear and concise description of what you expected to happen.
20
20
  **Screenshots**
21
21
  If applicable, add screenshots to help explain your problem.
22
22
 
23
- **Desktop (please complete the following information):**
24
- - OS: [e.g. iOS]
25
- - Browser [e.g. chrome, safari]
26
- - Version [e.g. 22]
27
-
28
- **Smartphone (please complete the following information):**
29
- - Device: [e.g. iPhone6]
30
- - OS: [e.g. iOS8.1]
31
- - Browser [e.g. stock browser, safari]
32
- - Version [e.g. 22]
23
+ **Environment:**
24
+ - OS name and version
25
+ - Ruby manager name and version (if present)
26
+ - Ruby version
27
+ - Bundler version
28
+ - Jekyll version
29
+ - Jekyll Favicon version
33
30
 
34
31
  **Additional context**
35
32
  Add any other context about the problem here.
@@ -1,14 +1,16 @@
1
1
  # PR Template
2
2
 
3
- Include at least this concepts:
3
+ - Tell us...
4
+ - what you wanted to achieve
5
+ - how you did it (use Markdown and screenshots if needed)
4
6
 
5
- - Explain what you wanted to achieve
7
+ - Did you...
8
+ - [ ] update the README? (if needed)
9
+ - [ ] update the CHANGELOG? (if needed)
10
+ - [ ] update the tests?
11
+ - [ ] run the tests?
12
+ - [ ] check with Rubocop?
6
13
 
7
- - Explain what you did
14
+ Don't forget to visit the [GitHub Action workflows](https://github.com/afaundez/jekyll-favicon/actions) after creating the PR.
8
15
 
9
- - use markdown
10
- - include screenshots if helps to explain
11
-
12
- - Explain how to test it
13
-
14
- Thanks for contrubuting!
16
+ Thanks for contributing!
@@ -0,0 +1,40 @@
1
+ name: Gem Push
2
+
3
+ on:
4
+ release:
5
+ types: [ published ]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby 2.5
15
+ uses: actions/setup-ruby@v1
16
+ with:
17
+ ruby-version: 2.5.x
18
+
19
+ - name: Publish to GPR
20
+ run: |
21
+ mkdir -p $HOME/.gem
22
+ touch $HOME/.gem/credentials
23
+ chmod 0600 $HOME/.gem/credentials
24
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
25
+ gem build *.gemspec
26
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
27
+ env:
28
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
29
+ OWNER: ${{ github.repository_owner }}
30
+
31
+ - name: Publish to RubyGems
32
+ run: |
33
+ mkdir -p $HOME/.gem
34
+ touch $HOME/.gem/credentials
35
+ chmod 0600 $HOME/.gem/credentials
36
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
37
+ gem build *.gemspec
38
+ gem push *.gem
39
+ env:
40
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,38 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, next, update-ci ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ env:
12
+ BUNDLE_GEMFILE: test/gemfiles/${{ matrix.gemfile }}.gemfile
13
+
14
+ runs-on: ${{ matrix.os }}
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+
19
+ - name: Set up Ruby ${{ matrix.ruby-version }}
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ bundler-cache: true
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+
25
+ - name: Run tests with ${{ matrix.gemfile }}
26
+ run: bundle exec rake
27
+
28
+ strategy:
29
+ matrix:
30
+ exclude:
31
+ - ruby-version: '3.0'
32
+ gemfile: jekyll36
33
+ - ruby-version: '3.0'
34
+ gemfile: jekyll37
35
+
36
+ gemfile: [ jekyll36, jekyll37, jekyll38, jekyll39, jekyll40, jekyll41, jekyll42 ]
37
+ os: [ ubuntu-latest ]
38
+ ruby-version: [ 2.6, 2.7, '3.0' ]
data/.gitignore CHANGED
@@ -6,4 +6,8 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ .jekyll-cache
10
+ .ruby-version
9
11
  *.gem
12
+ Gemfile.lock
13
+ *.gemfile.lock
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
@@ -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
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ruby.lint": {
3
+ "reek": true,
4
+ "standard": true
5
+ },
6
+ "ruby.useLanguageServer": true
7
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "type": "rake",
6
+ "task": "test",
7
+ "group": {
8
+ "kind": "build",
9
+ "isDefault": true
10
+ },
11
+ "problemMatcher": [],
12
+ "label": "rake: test"
13
+ }
14
+ ]
15
+ }
data/CHANGELOG.md CHANGED
@@ -6,6 +6,48 @@ 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
+
13
+ ## [1.0.0.pre.1] - 2021-05-26
14
+ ### Removed
15
+ - Delete Gemfile.lock
16
+ - Delete .ruby-version
17
+ - Remove unsupported versions from travis config
18
+ - Remove bundler and rubocop gemspec's development dependencies
19
+ - Remove graphicmagick from travis config
20
+ - Remove travis-ci config
21
+ - Remove nokogiri gemspec development dependency
22
+ ### Changed
23
+ - Move supported ruby versions to 2.5
24
+ - Update nokogiri, minitest, and minitest-hooks gemspec's development dependencies
25
+ - Update mini_magick gemspec's runtime dependencies
26
+ - Update travis rvm versions
27
+ - Rename Gem Push github action workflow
28
+ ### Added
29
+ - gitignore Gemfile.lock
30
+ - gitignore .jekyll-cache
31
+ - Add Test github action workflow
32
+ - Regenration
33
+
34
+ ## [0.2.9] - 2021-02-10
35
+ ### Added
36
+ - Optional `crossorigin` attribute for Chrome manifest
37
+
38
+ ## [0.2.8] - 2019-09-11
39
+ ### Changed
40
+ - Upgrade mini_magick 4.9.4 in gemspec for security fix
41
+ - Update gemspec to support Jekyll 4.0
42
+
43
+ ## [0.2.7] - 2019-05-27
44
+ ### Fixed
45
+ - Set default background back to none
46
+ - Restore safari-pinned-tab
47
+ ### Changed
48
+ - Update README outdated stuff
49
+ - Correct typos on README
50
+
9
51
  ## [0.2.6] - 2019-03-23
10
52
  ### Added
11
53
  - Readme troubleshooting for librsvg2-bin package missing
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
data/README.md CHANGED
@@ -3,25 +3,22 @@
3
3
  This [Jekyll](https://jekyllrb.com) plugin adds:
4
4
 
5
5
  - a generator for
6
- - a `favicon.ico`
7
- - multiple `favicon-[width]x[height].png`
6
+ - an ICO favicon
7
+ - PNG favicons
8
+ - SVG favicons
8
9
  - a [webmanifest](https://developer.mozilla.org/en-US/docs/Web/Manifest)
9
10
  - a [browser configuration schema](https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/dn320426%28v=vs.85%29)
10
11
  - a tag to generate all the corresponding links and metadata needed in the head tag
11
12
 
12
13
  ## Prerequisites
13
14
 
14
- Before using this plugin your system must have installed [ImageMagick](http://www.imagemagick.org) ~~(or [GraphicsMagick](http://www.graphicsmagick.org/))~~.
15
+ This plugin assumes you have [ImageMagick](http://www.imagemagick.org) installed.
15
16
 
16
17
  Check if it is already installed by running:
17
18
 
18
19
  ```sh
19
- $ convert --version
20
- Version: ImageMagick 7.0.7-27 Q16 x86_64 2018-03-18 http://www.imagemagick.org
21
- Copyright: © 1999-2018 ImageMagick Studio LLC
22
- License: http://www.imagemagick.org/script/license.php
23
- Features: Cipher DPC HDRI Modules
24
- Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib
20
+ $ convert --version | grep Version
21
+ Version: ImageMagick 7.0.8-46 Q16 x86_64 2019-05-19 https://imagemagick.org
25
22
  ```
26
23
 
27
24
  If you have a [problem converting SVG files](https://github.com/afaundez/jekyll-favicon/issues/9#issuecomment-473862194), you may need to install the package `librsvg2-bin`. For example, in Ubuntu/Debian systems:
@@ -30,37 +27,43 @@ If you have a [problem converting SVG files](https://github.com/afaundez/jekyll-
30
27
  sudo apt install librsvg2-bin
31
28
  ```
32
29
 
30
+ Check the devcontainer's [Dockerfile](.devcontainer/Dockerfile) for more practical details.
31
+
33
32
  ## Installation
34
33
 
35
34
  Add this line to your application's Gemfile:
36
35
 
37
36
  ```ruby
38
- gem 'jekyll-favicon', '~> 0.2.6', group: :jekyll_plugins
37
+ gem 'jekyll-favicon', '~> 1.0.0.pre.2', group: :jekyll_plugins
39
38
  ```
40
39
 
41
40
  ## Usage
42
41
 
43
- If you are going to use this plugin in a hosted build/service, be sure that they include your plugins as part of the process. You can check [running example](https://afaundez.gitlab.io/jekyll-favicon-example/) hosted by [GitLab](https://about.gitlab.com/features/pages/).
42
+ If you are going to use this plugin in a hosted build/service, be sure that they include your plugins as part of the process. You can check [this running example](https://afaundez.gitlab.io/jekyll-favicon-example/) hosted by [GitLab](https://about.gitlab.com/features/pages/).
44
43
 
45
44
  As [Github Pages](https://pages.github.com) build doesn't load custom plugins, this plugin won't work. As an alternative, you can build your site and push all files (for example, build to `docs`, version it and push it, although this works only for project pages).
46
45
 
46
+ Tested with:
47
+
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
+
47
51
  ### Generator
48
52
 
49
- By installing the plugin, it will be automatically active. It will search for the file `/favicon.svg` and generate set of files in `/assets/images` and few more items at the site's root. It also will exclude the original sources from being copied as a regular static file.
53
+ By installing the plugin, it will be automatically activated without further configurations.
50
54
 
51
- You can override whit your sites's `_config.yml`:
55
+ You can override these settings in your sites's `_config.yml`. The simplest configuration would be this:
52
56
 
53
57
  ```yaml
54
58
  favicon:
55
59
  source: custom-favicon-png-or.svg
56
- path: /assets/img
57
60
  ```
58
61
 
59
- This plugin works best if you use an SVG with a square viewbox as the source, but you can also use a PNG instead (at least 558x588). Check [favicon.svg](/test/fixtures/sites/minimal/favicon.svg) as an example.
62
+ This plugin works best if you use an SVG with a square viewbox as the source, but you can also use a PNG instead (at least 558x588). Check the fixtures [favicon.svg](test/fixtures/favicon.svg) or [favicon.png](test/fixtures/favicon.png) as examples.
60
63
 
61
64
  ### Favicon tag
62
65
 
63
- To get the links and meta, just add the favicon tag `{{ favicon }}`. For example, on your `index.html`
66
+ To get the links and meta, just add the favicon tag `{% favicon %}`. For example, on your `index.html`
64
67
 
65
68
  ```html
66
69
  ---
@@ -71,17 +74,74 @@ To get the links and meta, just add the favicon tag `{{ favicon }}`. For example
71
74
  {% favicon %}
72
75
  </head>
73
76
  <body>
74
- <h1>Jekyll Favicon</h1>
75
77
  </body>
76
78
  </html>
77
79
  ```
78
80
 
81
+ ## Configuration
82
+
83
+ The plugin customization goes in the `favicon` key in the `_config.yml` file. There are four key parameters:
84
+
85
+ | attribute name | type | default | description |
86
+ |----------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
87
+ | source | hash/string | <div class="highlight highlight-source-yaml position-relative"><pre><span class="pl-ent">name</span>: <span class="pl-s">favicon.svg</span><br><span class="pl-ent">dir</span>: <span class="pl-s">.</span></pre></div> | SVG or PNG file relative to site's source. Any favicon without explicit source will use this attribute as default. |
88
+ | background | string | `transparent` | Color keyword or Hex representation. Any favicon without explicit convert background will use this attribute as default. |
89
+ | dir | string | `.` | Path relative to site's source. Any favicon without explicit source dir will use this attribute as default. |
90
+ | assets | array | see [defaults](config/jekyll/favicon.yml) | Array of asset configuration. Any asset define here will be controlled with this plugin. |
91
+
92
+ ### Assets
93
+
94
+ The assets is an array of file spec:
95
+
96
+ | attribute name | type | default | description |
97
+ |----------------|---------------|-------------|--------------------------------------------|
98
+ | name | string | | file's basename. Required. |
99
+ | dir | string/symbol | `:site_dir` | file's dir, relative to site's destination |
100
+ | source | hash | | file's source. Required. |
101
+ | convert | hash | `{}` | see [convert defaults](#convert) |
102
+ | tags | array | `[]` | see [tags defaults](#tags) |
103
+ | refer | hash | `[]` | see [refer defaults](#refer) |
104
+
105
+ Symbol values:
106
+
107
+ - `:background`: favicon's global background
108
+ - `:site_dir`: favicon's global dir
109
+ - `:href`: favicons absolute URL path
110
+
111
+ #### Convert
112
+
113
+ The convert configuration is specific for each type of convertion: SVG to ICO/PNG/SVG and PNG to ICO/PNG.
114
+
115
+ | attribute name | type | default | description |
116
+ |----------------|---------------|-------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
117
+ | alpha | string | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick alpha docs](https://imagemagick.org/script/command-line-options.php#alpha) |
118
+ | background | string/symbol | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick background docs](https://imagemagick.org/script/command-line-options.php#background) |
119
+ | define | string/symbol | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick define docs](https://imagemagick.org/script/command-line-options.php#define) |
120
+ | density | string/symbol | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick density docs](https://imagemagick.org/script/command-line-options.php#density) |
121
+ | extent | string/symbol | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick extent docs](https://imagemagick.org/script/command-line-options.php#extent) |
122
+ | gravity | string | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick gravity docs](https://imagemagick.org/script/command-line-options.php#gravity) |
123
+ | resize | string | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick resize docs](https://imagemagick.org/script/command-line-options.php#resize) |
124
+ | scale | string | see [convert config](config/jekyll/favicon/static_file/convertible.yml) | see [imagemagick scale docs](https://imagemagick.org/script/command-line-options.php#scale) |
125
+
126
+ Symbol values:
127
+
128
+ - `:auto`: if sizes is not a square, then sizes
129
+ - `:max`: 3 times the largest dimension
130
+
131
+ #### Tags
132
+
133
+ The tags configuration is a list of hashes with only one key, `link` or `meta`, and only one value, a hash with the HTML attributes associated to the key. See [tags defaults](config/jekyll/favicon/static_file/taggable.yml) for more details.
134
+
135
+ #### Refer
136
+
137
+ The refer configuration is a list of hashes with only one key, `webmanifest` or `browserconfig`, and only one value, a hash that will override the associated file. See [refer defaults](config/jekyll/favicon/static_file/referenceable.yml) for more details.
138
+
79
139
  ## Development
80
140
 
81
141
  If you want to add something, just make a PR. There is a lot to do:
82
142
 
83
143
  - Define and check SVG/PNG attributes before execute
84
- - Review SVG to PNG conversion, it working as it is, but some parameters are hard coded and may only work with the samples
144
+ - Review SVG to PNG conversion, it working as it is, but some parameters are hardcoded and may only work with the samples
85
145
  - Encapsulate image conversion
86
146
  - Tests everywhere
87
147
 
@@ -91,11 +151,11 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/afaund
91
151
 
92
152
  ## License
93
153
 
94
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
154
+ The gem is available as open-source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
95
155
 
96
156
  ## Code of Conduct
97
157
 
98
- Everyone interacting in the Jekyll Favicon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/afaundez/jekyll-favicon/blob/master/CODE_OF_CONDUCT.md).
158
+ Everyone interacting in the Jekyll Favicon project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [code of conduct](https://github.com/afaundez/jekyll-favicon/blob/master/CODE_OF_CONDUCT.md).
99
159
 
100
160
  ## Acknowledgments
101
161