jekyll-git-hash 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '0853535b5875d9f98666e3bf9a245318f8654c56f32f5519fc4199ff7dc97bcd'
4
+ data.tar.gz: 94f23b7d966ef780a41396acb25744c918fe0eadd0747b955b1d42b1c58ddc57
5
+ SHA512:
6
+ metadata.gz: 61ec5946a9cb7c7b6765f8d4be58be3dc8539d9cdd1e45707ae88b3140e81c0d28d6c1440167dcdbffabbe9f5fdffdad8267c4f479411c7c8bddcf80898b81fb
7
+ data.tar.gz: 64f15f3d2b727e16f5605d3c1baf68d0cc3fd1b52487e51bc81f2406a127a08f384ca315c2078c10f7b28708983f2f630246f57796363a3a6877cc91dcaf602b
data/.0pdd.yml ADDED
@@ -0,0 +1,9 @@
1
+ errors:
2
+ - yegor256@gmail.com
3
+ # alerts:
4
+ # github:
5
+ # - yegor256
6
+
7
+ tags:
8
+ - pdd
9
+ - bug
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: rake
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+ jobs:
11
+ test:
12
+ name: test
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-20.04, macos-12, windows-2022]
16
+ ruby: [2.7, 3.1]
17
+ runs-on: ${{ matrix.os }}
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - run: bundle update
24
+ - run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ Gemfile.lock
2
+ *.gem
3
+ .bundle/
4
+ .DS_Store
data/.pdd ADDED
@@ -0,0 +1,7 @@
1
+ --source=.
2
+ --verbose
3
+ --exclude target/**/*
4
+ --exclude src/main/resources/images/**/*
5
+ --rule min-words:20
6
+ --rule min-estimate:15
7
+ --rule max-estimate:90
data/.rubocop.yml ADDED
@@ -0,0 +1,23 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'bin/**/*'
4
+ - 'assets/**/*'
5
+ DisplayCopNames: true
6
+ TargetRubyVersion: '2.6'
7
+ NewCops: enable
8
+ SuggestExtensions: false
9
+
10
+ Lint/RescueException:
11
+ Enabled: false
12
+ Metrics/MethodLength:
13
+ Max: 50
14
+ Metrics/ClassLength:
15
+ Max: 150
16
+ Metrics/AbcSize:
17
+ Max: 60
18
+ Metrics/BlockLength:
19
+ Max: 50
20
+ Layout/MultilineMethodCallIndentation:
21
+ Enabled: false
22
+ Naming/FileName:
23
+ Enabled: false
data/.rultor.yml ADDED
@@ -0,0 +1,20 @@
1
+ docker:
2
+ image: yegor256/rultor-image:1.21.0
3
+ assets:
4
+ rubygems.yml: yegor256/home#assets/rubygems.yml
5
+ install: |
6
+ pdd -f /dev/null
7
+ sudo bundle install --no-color "--gemfile=$(pwd)/Gemfile"
8
+ release:
9
+ script: |-
10
+ bundle exec rake
11
+ rm -rf *.gem
12
+ sed -i "s/0\.0\.0/${tag}/g" jekyll-git-hash.gemspec
13
+ git add jekyll-git-hash.gemspec
14
+ git commit -m "version set to ${tag}"
15
+ gem build jekyll-git-hash.gemspec
16
+ chmod 0600 ../rubygems.yml
17
+ gem push *.gem --config-file ../rubygems.yml
18
+ merge:
19
+ script: |-
20
+ bundle exec rake
data/Gemfile ADDED
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (The MIT License)
4
+ #
5
+ # Copyright (c) 2014-2023 Yegor Bugayenko
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the 'Software'), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ source 'https://rubygems.org'
26
+ gemspec
27
+
28
+ gem 'rake', '13.0.6', require: false
29
+ gem 'rubocop', '1.51.0', require: false
30
+ gem 'rubocop-rspec', '2.22.0', require: false
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2014-2023 Yegor Bugayenko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the 'Software'), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,54 @@
1
+ [![rake](https://github.com/yegor256/jekyll-git-hash/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/jekyll-git-hash/actions/workflows/rake.yml)
2
+ [![Gem Version](https://badge.fury.io/rb/jekyll-git-hash.svg)](http://badge.fury.io/rb/jekyll-git-hash)
3
+
4
+ Install it first:
5
+
6
+ ```
7
+ gem install jekyll-git-hash
8
+ ```
9
+
10
+ With Jekyll 2, simply add the gem to your `_config.yml` gems list:
11
+
12
+ ```yaml
13
+ gems: ['jekyll-git-hash', ... your other plugins]
14
+ ```
15
+
16
+ Or for previous versions,
17
+ create a plugin file within your Jekyll project's `_plugins` directory:
18
+
19
+ ```ruby
20
+ # _plugins/jekyll-git-hash.rb
21
+ require 'jekyll-git-hash'
22
+ ```
23
+
24
+ Highly recommend to use Bundler. If you're using it, add this line
25
+ to your `Gemfile`:
26
+
27
+ ```
28
+ gem "jekyll-git-hash"
29
+ ```
30
+
31
+ The plugin is compatible with
32
+ [Jekyll 3.9.3](https://jekyllrb.com/news/2023/01/29/jekyll-3-9-3-released/) and
33
+ [Jekyll 4.3.2](https://jekyllrb.com/news/2023/01/20/jekyll-4-3-2-released/).
34
+
35
+ Use `{{ site.data['hash']}}` inside your liquid template.
36
+
37
+ When the site is being generated by Jekyll, the
38
+ plugin retrieves Git hash of the source code and
39
+ exposes it as a item in `site.data`. This feature
40
+ is very helpful when you want your static resources (CSS, JS, etc.)
41
+ be reloaded by end users every time you deploy a new
42
+ version of the site.
43
+
44
+ For example, in your `default.html`:
45
+
46
+ ```html
47
+ <link rel="stylesheet" href="/css/layout.css?{{ site.data['hash'] }}"/>
48
+ ```
49
+
50
+ The URL will be generated with a suffix at the end. This
51
+ suffix doesn't change the URL (`layout.css` will still
52
+ be accesible by the browser), but it makes the URL unique
53
+ for the browser when you deploy a new Git revision. All browsers
54
+ will reload this CSS.
data/Rakefile ADDED
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (The MIT License)
4
+ #
5
+ # Copyright (c) 2014-2023 Yegor Bugayenko
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the 'Software'), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ require 'rubygems'
26
+ require 'rake'
27
+ require 'rdoc'
28
+ require 'rake/clean'
29
+
30
+ def name
31
+ @name ||= File.basename(Dir['*.gemspec'].first, '.*')
32
+ end
33
+
34
+ def version
35
+ Gem::Specification.load(Dir['*.gemspec'].first).version
36
+ end
37
+
38
+ task default: %i[clean rubocop copyright]
39
+
40
+ require 'rdoc/task'
41
+ desc 'Build RDoc documentation'
42
+ Rake::RDocTask.new do |rdoc|
43
+ rdoc.rdoc_dir = 'rdoc'
44
+ rdoc.title = "#{name} #{version}"
45
+ rdoc.rdoc_files.include('README*')
46
+ rdoc.rdoc_files.include('lib/**/*.rb')
47
+ end
48
+
49
+ require 'rubocop/rake_task'
50
+ desc 'Run RuboCop on all directories'
51
+ RuboCop::RakeTask.new(:rubocop) do |task|
52
+ task.fail_on_error = true
53
+ task.requires << 'rubocop-rspec'
54
+ end
55
+
56
+ task :copyright do
57
+ sh "grep -q -r '2014-#{Date.today.strftime('%Y')}' \
58
+ --include '*.rb' \
59
+ --include '*.txt' \
60
+ --include 'Rakefile' \
61
+ ."
62
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (The MIT License)
4
+ #
5
+ # Copyright (c) 2014-2023 Yegor Bugayenko
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the 'Software'), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ require 'English'
26
+
27
+ Gem::Specification.new do |s|
28
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
29
+ s.required_ruby_version = '>= 2.6'
30
+ s.name = 'jekyll-git-hash'
31
+ s.version = '0.1.0'
32
+ s.license = 'MIT'
33
+ s.summary = 'Jekyll Git Hash'
34
+ s.description = 'Adds Git hash to the properties of the Jekyll site'
35
+ s.authors = ['Yegor Bugayenko']
36
+ s.email = 'yegor256@gmail.com'
37
+ s.homepage = 'https://github.com/yegor256/jekyll-git-hash'
38
+ s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
39
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
40
+ s.rdoc_options = ['--charset=UTF-8']
41
+ s.extra_rdoc_files = %w[README.md LICENSE.txt]
42
+ s.add_runtime_dependency 'jekyll', '>=3.9.2'
43
+ s.metadata['rubygems_mfa_required'] = 'true'
44
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (The MIT License)
4
+ #
5
+ # Copyright (c) 2014-2023 Yegor Bugayenko
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the 'Software'), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ # Jekyll plugin for generating Git hash
26
+ #
27
+ # Place this file in the _plugins directory and
28
+ # use {{ site.data['hash'] }} in your Liquid templates
29
+ #
30
+ # Author: Yegor Bugayenko <yegor@tpc2.com>
31
+ # Source: http://github.com/yegor256/jekyll-git-hash
32
+ #
33
+ # Distributed under the MIT license
34
+ # Copyright Yegor Bugayenko, 2014
35
+
36
+ # Main Jekyll module
37
+ module Jekyll
38
+ # Our class generator
39
+ class GitHashGenerator < Generator
40
+ priority :high
41
+ safe true
42
+ def generate(site)
43
+ hash = `git rev-parse --short HEAD`.strip
44
+ site.data['hash'] = hash
45
+ end
46
+ end
47
+ end
data/renovate.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base"
5
+ ],
6
+ "ignorePaths": [
7
+ "jekyll-tests/jekyll-3/Gemfile",
8
+ "jekyll-tests/jekyll-4/Gemfile"
9
+ ]
10
+ }
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-git-hash
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yegor Bugayenko
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-07-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.9.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.9.2
27
+ description: Adds Git hash to the properties of the Jekyll site
28
+ email: yegor256@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files:
32
+ - README.md
33
+ - LICENSE.txt
34
+ files:
35
+ - ".0pdd.yml"
36
+ - ".github/workflows/rake.yml"
37
+ - ".gitignore"
38
+ - ".pdd"
39
+ - ".rubocop.yml"
40
+ - ".rultor.yml"
41
+ - Gemfile
42
+ - LICENSE.txt
43
+ - README.md
44
+ - Rakefile
45
+ - jekyll-git-hash.gemspec
46
+ - lib/jekyll-git-hash.rb
47
+ - renovate.json
48
+ homepage: https://github.com/yegor256/jekyll-git-hash
49
+ licenses:
50
+ - MIT
51
+ metadata:
52
+ rubygems_mfa_required: 'true'
53
+ post_install_message:
54
+ rdoc_options:
55
+ - "--charset=UTF-8"
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '2.6'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubygems_version: 3.2.15
70
+ signing_key:
71
+ specification_version: 4
72
+ summary: Jekyll Git Hash
73
+ test_files: []