jekyll-sitemap 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d48df23af4df6ba9fecfb131005e085b655b4482f7325fe69894c323d06fd15
4
- data.tar.gz: 870ba6091d3a84ae9ef7739e6bf37ba8a5de6b18168bc6f561b238de069b0223
3
+ metadata.gz: fcd7dced46edc1fe61d6b0ccfd9574a07c4ea10fcf171b57cda3dfc72b078de4
4
+ data.tar.gz: 27a727b6359318f89161b868810cee74637685d8af0f25c2d4211856ea3391b7
5
5
  SHA512:
6
- metadata.gz: ef3cffc55662703294defc8b91ce0ecd41339c261fa9dcc966a22b7ccb9925f8a378e6aaa0577ad9460f4107537474b9fbf129284858be0063a10bc7f9ed9f92
7
- data.tar.gz: 552379f5a42c4bb325552133d9cb72954158c798b56f4a3c008eaad4c57d85062f22c0e02a7741da9769e379b48a8727bbac3c61028d1960dacdad8248ddade6
6
+ metadata.gz: 368433ab557a4d3b20dee8fd99c2f59e25777ae8ad58510e2542486154caad8717af3584ba55da7b841b84414abaadb7b97998026a8e22bee4c42208ad6a0e73
7
+ data.tar.gz: 7f25e64a6d1f32e51e92e9a17c4c44f333dfdb79432bebd31b25d74281a9c95d42cb2691192759e040c81b62ba5b867b2fce320599fb851b1c30acdb1e25110f
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
+ .bundle
1
2
  *.gem
2
3
  Gemfile.lock
3
4
  spec/dest
4
- .bundle
5
5
  spec/fixtures/.jekyll-cache
6
+ vendor/bundle
@@ -3,3 +3,7 @@ inherit_from: .rubocop_todo.yml
3
3
  require: rubocop-jekyll
4
4
  inherit_gem:
5
5
  rubocop-jekyll: .rubocop.yml
6
+
7
+ AllCops:
8
+ Exclude:
9
+ - vendor/**/*
@@ -3,16 +3,15 @@ cache: bundler
3
3
  rvm:
4
4
  - &latest_ruby 2.6
5
5
  - 2.4
6
- - 2.3
7
6
  matrix:
8
7
  include:
9
8
  # GitHub Pages
10
9
  - rvm: 2.5.3
11
10
  env:
12
- - JEKYLL_VERSION="~> 3.7.4"
11
+ - JEKYLL_VERSION="~> 3.8.5"
13
12
  - GITHUB_PAGES=1 # Only set on one build in matrix
14
13
  - rvm: *latest_ruby
15
- env: JEKYLL_VERSION=">= 4.0.0.pre.alpha1"
14
+ env: JEKYLL_VERSION=">= 4.0.0"
16
15
  env:
17
16
  matrix:
18
17
  - JEKYLL_VERSION="~> 3.8"
@@ -1,3 +1,13 @@
1
+ ## 1.4.0 / 2019-11-21
2
+
3
+ ### Minor Enhancements
4
+
5
+ * Avoid overwriting an existing robots.txt (#246)
6
+
7
+ ### Bug Fixes
8
+
9
+ * Simulate `last_modified_at` injection by plugin (#256)
10
+
1
11
  ## 1.3.1 / 2019-03-25
2
12
 
3
13
  ### Bug Fixes
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "jekyll", ">= 3.7", "< 5.0"
24
24
 
25
25
  spec.add_development_dependency "bundler"
26
- spec.add_development_dependency "jekyll-last-modified-at", "~> 1.0"
27
26
  spec.add_development_dependency "rake"
28
27
  spec.add_development_dependency "rspec", "~> 3.0"
29
28
  spec.add_development_dependency "rubocop-jekyll", "~> 0.4"
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Sitemap
5
- VERSION = "1.3.1"
5
+ VERSION = "1.4.0"
6
6
  end
7
7
  end
@@ -62,11 +62,11 @@ module Jekyll
62
62
 
63
63
  # Checks if a file already exists in the site source
64
64
  def file_exists?(file_path)
65
- if @site.respond_to?(:in_source_dir)
66
- File.exist? @site.in_source_dir(file_path)
67
- else
68
- File.exist? Jekyll.sanitized_path(@site.source, file_path)
69
- end
65
+ pages_and_files.any? { |p| p.url == "/#{file_path}" }
66
+ end
67
+
68
+ def pages_and_files
69
+ @pages_and_files ||= @site.pages + @site.static_files
70
70
  end
71
71
  end
72
72
  end
@@ -195,7 +195,7 @@ describe(Jekyll::JekyllSitemap) do
195
195
  expect(contents).not_to match(%r!\ATHIS IS MY LAYOUT!)
196
196
  end
197
197
 
198
- it "creates a sitemap.xml file" do
198
+ it "creates a robots.txt file" do
199
199
  expect(File.exist?(dest_dir("robots.txt"))).to be_truthy
200
200
  end
201
201
 
@@ -204,4 +204,53 @@ describe(Jekyll::JekyllSitemap) do
204
204
  end
205
205
  end
206
206
  end
207
+
208
+ context "with user-defined robots.txt" do
209
+ let(:fixture) { "/" }
210
+ let(:fixture_source) { robot_fixtures(fixture) }
211
+ let(:fixture_dest) { robot_fixtures(fixture, "_site") }
212
+ let(:robot_contents) { File.read(robot_fixtures(fixture, "_site", "robots.txt")).strip }
213
+ let(:overrides) do
214
+ {
215
+ "source" => fixture_source,
216
+ "destination" => fixture_dest,
217
+ "url" => "http://example.org",
218
+ }
219
+ end
220
+
221
+ before(:each) { setup_fixture(fixture) }
222
+ after(:each) { cleanup_fixture(fixture) }
223
+
224
+ context "as a static-file at source-root" do
225
+ let(:fixture) { "static-at-source-root" }
226
+
227
+ it "doesn't override the robots file" do
228
+ expect(robot_contents).to eql("Allow: /")
229
+ end
230
+ end
231
+
232
+ context "as a static-file in a subdir" do
233
+ let(:fixture) { "static-in-subdir" }
234
+
235
+ it "generates a valid robot.txt" do
236
+ expect(robot_contents).to eql("Sitemap: http://example.org/sitemap.xml")
237
+ end
238
+ end
239
+
240
+ context "as a page at root" do
241
+ let(:fixture) { "page-at-root" }
242
+
243
+ it "doesn't override the robots file" do
244
+ expect(robot_contents).to eql("Allow: http://example.org")
245
+ end
246
+ end
247
+
248
+ context "as a page with permalink in a subdir" do
249
+ let(:fixture) { "permalinked-page-in-subdir" }
250
+
251
+ it "doesn't override the robots file" do
252
+ expect(robot_contents).to eql("Allow: http://example.org")
253
+ end
254
+ end
255
+ end
207
256
  end
@@ -0,0 +1,4 @@
1
+ ---
2
+ ---
3
+
4
+ Allow: {{ site.url }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ permalink: '/robots.txt'
3
+ ---
4
+
5
+ Allow: {{ site.url }}
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "jekyll"
4
+ require "fileutils"
4
5
  require File.expand_path("../lib/jekyll-sitemap", __dir__)
5
6
 
6
7
  Jekyll.logger.log_level = :error
@@ -12,6 +13,8 @@ RSpec.configure do |config|
12
13
 
13
14
  SOURCE_DIR = File.expand_path("fixtures", __dir__)
14
15
  DEST_DIR = File.expand_path("dest", __dir__)
16
+ ROBOT_FIXTURES = File.expand_path("robot-fixtures", __dir__)
17
+ ROBOT_FIXTURE_ITEMS = %w(_posts _layouts _config.yml index.html).freeze
15
18
 
16
19
  def source_dir(*files)
17
20
  File.join(SOURCE_DIR, *files)
@@ -20,4 +23,18 @@ RSpec.configure do |config|
20
23
  def dest_dir(*files)
21
24
  File.join(DEST_DIR, *files)
22
25
  end
26
+
27
+ def robot_fixtures(*subdirs)
28
+ File.join(ROBOT_FIXTURES, *subdirs)
29
+ end
30
+
31
+ def setup_fixture(directory)
32
+ ROBOT_FIXTURE_ITEMS.each { |item| FileUtils.cp_r(source_dir(item), robot_fixtures(directory)) }
33
+ end
34
+
35
+ def cleanup_fixture(directory, dest_dirname = "_site")
36
+ (ROBOT_FIXTURE_ITEMS + [dest_dirname]).each do |item|
37
+ FileUtils.remove_entry(robot_fixtures(directory, item))
38
+ end
39
+ end
23
40
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require "jekyll-last-modified-at"
5
4
 
6
5
  describe(Jekyll::JekyllSitemap) do
7
6
  let(:overrides) do
@@ -21,16 +20,31 @@ describe(Jekyll::JekyllSitemap) do
21
20
  let(:site) { Jekyll::Site.new(config) }
22
21
  let(:contents) { File.read(dest_dir("sitemap.xml")) }
23
22
  before(:each) do
23
+ # simulate `last_modified_at` injection by `jekyll-last-modified-at` plugin
24
+ Jekyll::Hooks.register([:pages, :documents], :post_init) do |page|
25
+ page.data["last_modified_at"] = Time.parse("2015-01-18T00:00:00+00:00")
26
+ end
27
+
24
28
  site.process
25
29
  end
26
30
 
27
31
  context "with jekyll-last-modified-at" do
28
32
  it "correctly adds the modified time to the posts" do
29
- expect(contents).to match %r!<loc>http://example.org/2015/01/18/jekyll-last-modified-at.html</loc>\s+<lastmod>2015-01-19T07:03:38\+00:00</lastmod>!
33
+ expect(contents).to match(
34
+ %r!
35
+ <loc>http://example.org/2015/01/18/jekyll-last-modified-at.html</loc>\s+
36
+ <lastmod>2015-01-18T00:00:00\+00:00</lastmod>
37
+ !x
38
+ )
30
39
  end
31
40
 
32
41
  it "correctly adds the modified time to the pages" do
33
- expect(contents).to match %r!<loc>http://example.org/jekyll-last-modified-at/page.html</loc>\s+<lastmod>2015-01-19T07:03:38\+00:00</lastmod>!
42
+ expect(contents).to match(
43
+ %r!
44
+ <loc>http://example.org/jekyll-last-modified-at/page.html</loc>\s+
45
+ <lastmod>2015-01-18T00:00:00\+00:00</lastmod>
46
+ !x
47
+ )
34
48
  end
35
49
  end
36
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-sitemap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-25 00:00:00.000000000 Z
11
+ date: 2019-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
- - !ruby/object:Gem::Dependency
48
- name: jekyll-last-modified-at
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '1.0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '1.0'
61
47
  - !ruby/object:Gem::Dependency
62
48
  name: rake
63
49
  requirement: !ruby/object:Gem::Requirement
@@ -161,6 +147,10 @@ files:
161
147
  - spec/fixtures/static_files/html_file.html
162
148
  - spec/fixtures/static_files/test.pdf
163
149
  - spec/jekyll-sitemap_spec.rb
150
+ - spec/robot-fixtures/page-at-root/robots.txt
151
+ - spec/robot-fixtures/permalinked-page-in-subdir/assets/robots.txt
152
+ - spec/robot-fixtures/static-at-source-root/robots.txt
153
+ - spec/robot-fixtures/static-in-subdir/assets/robots.txt
164
154
  - spec/spec_helper.rb
165
155
  - spec/test_jekyll-last-modified-at.rb
166
156
  homepage: https://github.com/jekyll/jekyll-sitemap
@@ -182,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
172
  - !ruby/object:Gem::Version
183
173
  version: '0'
184
174
  requirements: []
185
- rubygems_version: 3.0.3
175
+ rubygems_version: 3.0.6
186
176
  signing_key:
187
177
  specification_version: 4
188
178
  summary: Automatically generate a sitemap.xml for your Jekyll site.
@@ -219,5 +209,9 @@ test_files:
219
209
  - spec/fixtures/static_files/html_file.html
220
210
  - spec/fixtures/static_files/test.pdf
221
211
  - spec/jekyll-sitemap_spec.rb
212
+ - spec/robot-fixtures/page-at-root/robots.txt
213
+ - spec/robot-fixtures/permalinked-page-in-subdir/assets/robots.txt
214
+ - spec/robot-fixtures/static-at-source-root/robots.txt
215
+ - spec/robot-fixtures/static-in-subdir/assets/robots.txt
222
216
  - spec/spec_helper.rb
223
217
  - spec/test_jekyll-last-modified-at.rb