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.
- checksums.yaml +5 -5
- data/.devcontainer/Dockerfile +20 -0
- data/.devcontainer/devcontainer.json +42 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +10 -13
- data/.github/PULL_REQUEST_TEMPLATE.md +11 -9
- data/.github/workflows/gem-push.yml +40 -0
- data/.github/workflows/test.yml +38 -0
- data/.gitignore +4 -0
- 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 +42 -0
- data/Gemfile +3 -1
- data/README.md +80 -20
- data/Rakefile +9 -7
- data/bin/console +1 -0
- data/bin/debug +22 -0
- data/config/jekyll/favicon.yml +115 -0
- data/config/jekyll/favicon/static_file.yml +3 -0
- data/config/jekyll/favicon/static_file/convertible.yml +42 -0
- data/config/jekyll/favicon/static_file/mutable.yml +22 -0
- data/config/jekyll/favicon/static_file/referenceable.yml +15 -0
- data/config/jekyll/favicon/static_file/sourceable.yml +3 -0
- data/config/jekyll/favicon/static_file/taggable.yml +22 -0
- data/jekyll-favicon.gemspec +24 -24
- data/lib/jekyll-favicon.rb +7 -16
- data/lib/jekyll/favicon.rb +19 -16
- data/lib/jekyll/favicon/configuration.rb +73 -0
- data/lib/jekyll/favicon/configuration/defaults.rb +49 -0
- data/lib/jekyll/favicon/generator.rb +10 -74
- data/lib/jekyll/favicon/hooks.rb +12 -10
- data/lib/jekyll/favicon/static_data_file.rb +17 -0
- data/lib/jekyll/favicon/static_file.rb +97 -0
- data/lib/jekyll/favicon/static_file/convertible.rb +121 -0
- data/lib/jekyll/favicon/static_file/mutable.rb +81 -0
- data/lib/jekyll/favicon/static_file/referenceable.rb +22 -0
- data/lib/jekyll/favicon/static_file/sourceable.rb +73 -0
- data/lib/jekyll/favicon/static_file/taggable.rb +53 -0
- data/lib/jekyll/favicon/static_graphic_file.rb +21 -0
- data/lib/jekyll/favicon/tag.rb +14 -17
- data/lib/jekyll/favicon/utils.rb +43 -0
- data/lib/jekyll/favicon/utils/configuration/compact.rb +58 -0
- data/lib/jekyll/favicon/utils/configuration/merge.rb +70 -0
- data/lib/jekyll/favicon/utils/configuration/patch.rb +49 -0
- data/lib/jekyll/favicon/utils/convert.rb +39 -0
- data/lib/jekyll/favicon/utils/tag.rb +70 -0
- data/lib/jekyll/favicon/version.rb +3 -1
- metadata +69 -67
- data/.rubocop.yml +0 -5
- data/.ruby-version +0 -1
- data/.travis.yml +0 -21
- data/Gemfile.lock +0 -97
- data/lib/browserconfig.rb +0 -54
- data/lib/hash.rb +0 -12
- data/lib/image.rb +0 -33
- data/lib/jekyll/favicon/config/defaults.yml +0 -54
- data/lib/jekyll/favicon/icon.rb +0 -73
- data/lib/jekyll/favicon/metadata.rb +0 -12
- data/lib/jekyll/favicon/templates/chrome.html.erb +0 -5
- data/lib/jekyll/favicon/templates/classic.html.erb +0 -8
- data/lib/jekyll/favicon/templates/ie.html.erb +0 -4
- data/lib/jekyll/favicon/templates/safari.html.erb +0 -8
- data/lib/string.rb +0 -14
- data/lib/webmanifest.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
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
|
@@ -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.
|
14
|
-
3.
|
15
|
-
4.
|
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
|
-
**
|
24
|
-
- OS
|
25
|
-
-
|
26
|
-
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
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
|
-
|
3
|
+
- Tell us...
|
4
|
+
- what you wanted to achieve
|
5
|
+
- how you did it (use Markdown and screenshots if needed)
|
4
6
|
|
5
|
-
-
|
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
|
-
-
|
14
|
+
Don't forget to visit the [GitHub Action workflows](https://github.com/afaundez/jekyll-favicon/actions) after creating the PR.
|
8
15
|
|
9
|
-
|
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
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,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
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
|
-
-
|
7
|
-
-
|
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
|
-
|
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.
|
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
|
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
|
53
|
+
By installing the plugin, it will be automatically activated without further configurations.
|
50
54
|
|
51
|
-
You can override
|
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](
|
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 `{
|
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
|
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
|
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
|
|