jekyll-redirect-from 0.15.0 → 0.17.0
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/History.markdown +42 -0
- data/README.md +25 -11
- data/lib/jekyll-redirect-from/generator.rb +17 -3
- data/lib/jekyll-redirect-from/redirect.html +4 -4
- data/lib/jekyll-redirect-from/redirect_page.rb +47 -2
- data/lib/jekyll-redirect-from/redirectable.rb +4 -10
- data/lib/jekyll-redirect-from/version.rb +1 -1
- metadata +9 -64
- data/.gitignore +0 -19
- data/.rspec +0 -4
- data/.rubocop.yml +0 -11
- data/.rubocop_todo.yml +0 -40
- data/.travis.yml +0 -20
- data/Gemfile +0 -7
- data/Rakefile +0 -8
- data/jekyll-redirect-from.gemspec +0 -34
- data/script/bootstrap +0 -4
- data/script/cibuild +0 -6
- data/script/fmt +0 -10
- data/script/release +0 -4
- data/script/test +0 -2
- data/spec/fixtures/_articles/redirect-me-plz.md +0 -6
- data/spec/fixtures/_articles/redirect-somewhere-else-im-a-permalink.html +0 -7
- data/spec/fixtures/_articles/redirect-somewhere-else-plz.html +0 -6
- data/spec/fixtures/_authors/kansaichris.md +0 -5
- data/spec/fixtures/_layouts/layout.html +0 -6
- data/spec/fixtures/_posts/2014-01-03-redirect-me-plz.md +0 -6
- data/spec/fixtures/multiple_redirect_froms.md +0 -10
- data/spec/fixtures/multiple_redirect_tos.md +0 -9
- data/spec/fixtures/one_redirect_from.md +0 -6
- data/spec/fixtures/one_redirect_to_path.md +0 -6
- data/spec/fixtures/one_redirect_to_url.md +0 -6
- data/spec/fixtures/tags/how we work.md +0 -4
- data/spec/integrations_spec.rb +0 -88
- data/spec/jekyll_redirect_from/context_spec.rb +0 -14
- data/spec/jekyll_redirect_from/generator_spec.rb +0 -149
- data/spec/jekyll_redirect_from/layout_spec.rb +0 -34
- data/spec/jekyll_redirect_from/redirect_page_spec.rb +0 -211
- data/spec/jekyll_redirect_from/redirectable_spec.rb +0 -63
- data/spec/spec_helper.rb +0 -59
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af230f353ff0028f5807c5102758c88555cf7b59c5470945735c08f028095bf9
|
|
4
|
+
data.tar.gz: 9f952f13442476655497f5157092e0d486fb40dce5f3f7fe5e8b55444cc8a97f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0eea2e2e0693456d3f0daef22c5e5e570cb835b29c56065d0dfce7be795fdac054e4773015ab9aeeb861ea1189e0b37a6f0bc9abfc6013dc70891b7eeba0c84
|
|
7
|
+
data.tar.gz: 042e3e684eff1c467f825915f5c4d4c055367fc8e22e2e250243089aec1643c09d0160ecfc699a41b37893497c3d0ebb9e6b78f2adbd02f2194a2df861b49cfa
|
data/History.markdown
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
## 0.17.0 / 2026-09-29
|
|
2
|
+
|
|
3
|
+
### Security
|
|
4
|
+
|
|
5
|
+
* Only allow http(s) and relative `redirect_to` targets, percent-encode unsafe characters in them, and escape them in the redirect page (GHSA-xfg6-hjrc-hpvx)
|
|
6
|
+
|
|
7
|
+
### styles
|
|
8
|
+
|
|
9
|
+
* style: Style/SpecialGlobalVars (#216)
|
|
10
|
+
|
|
11
|
+
### Development Fixes
|
|
12
|
+
|
|
13
|
+
* fix Gemfile to correctly install jekyll 3.9 (#224)
|
|
14
|
+
* Refactor specs for RedirectPage (#222)
|
|
15
|
+
* Lock to RuboCop v1.18.x (#242)
|
|
16
|
+
* Clean up gemspec (#243)
|
|
17
|
+
* Bump versions in CI workflow (#273)
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* Refactor Redirectable mixin to reduce allocations (#241)
|
|
22
|
+
|
|
23
|
+
## 0.16.0 / 2020-01-26
|
|
24
|
+
|
|
25
|
+
### Minor Enhancements
|
|
26
|
+
|
|
27
|
+
* Allows generation of `redirects.json` to be disabled (#207)
|
|
28
|
+
* Allow redirects from and for subclasses of page and document (#204)
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* Use `Hash#key?` instead of `Hash#keys.any?` (#201)
|
|
33
|
+
|
|
34
|
+
### Development Fixes
|
|
35
|
+
|
|
36
|
+
* Target Ruby 2.4
|
|
37
|
+
* Stop testing with backwards-compatible site config (#211)
|
|
38
|
+
|
|
39
|
+
### Documentation
|
|
40
|
+
|
|
41
|
+
* Simplifies YAML for `redirect_to` (#185)
|
|
42
|
+
|
|
1
43
|
## 0.15.0 / 2019-03-23
|
|
2
44
|
|
|
3
45
|
### Development Fixes
|
data/README.md
CHANGED
|
@@ -9,7 +9,7 @@ impractical to create new pages in the proper subdirectories so they, e.g.
|
|
|
9
9
|
Instead of dealing with maintaining those pages for redirection, let
|
|
10
10
|
`jekyll-redirect-from` handle it for you.
|
|
11
11
|
|
|
12
|
-
[](https://github.com/jekyll/jekyll-redirect-from/actions/workflows/ci.yml)
|
|
13
13
|
|
|
14
14
|
## How it Works
|
|
15
15
|
|
|
@@ -31,7 +31,7 @@ Or install it yourself as:
|
|
|
31
31
|
|
|
32
32
|
$ gem install jekyll-redirect-from
|
|
33
33
|
|
|
34
|
-
Once it's installed into your
|
|
34
|
+
Once it's installed into your environment, add it to your `_config.yml`:
|
|
35
35
|
|
|
36
36
|
```yaml
|
|
37
37
|
plugins:
|
|
@@ -52,7 +52,7 @@ Then run `jekyll <cmd> --safe` like normal.
|
|
|
52
52
|
|
|
53
53
|
## Usage
|
|
54
54
|
|
|
55
|
-
The
|
|
55
|
+
The objective of this gem is to allow an author to specify multiple URLs for a
|
|
56
56
|
page, such that the alternative URLs redirect to the new Jekyll URL.
|
|
57
57
|
|
|
58
58
|
To use it, simply add the array to the YAML front-matter of your page or post:
|
|
@@ -68,7 +68,7 @@ Redirects including a trailing slash will generate a corresponding subdirectory
|
|
|
68
68
|
|
|
69
69
|
For example...
|
|
70
70
|
|
|
71
|
-
```
|
|
71
|
+
```yaml
|
|
72
72
|
redirect_from:
|
|
73
73
|
- /post/123456789/my-amazing-post
|
|
74
74
|
```
|
|
@@ -81,7 +81,7 @@ redirect_from:
|
|
|
81
81
|
|
|
82
82
|
While...
|
|
83
83
|
|
|
84
|
-
```
|
|
84
|
+
```yaml
|
|
85
85
|
redirect_from:
|
|
86
86
|
- /post/123456789/my-amazing-post/
|
|
87
87
|
```
|
|
@@ -96,7 +96,7 @@ These pages will contain an HTTP-REFRESH meta tag which redirect to your URL.
|
|
|
96
96
|
|
|
97
97
|
You can also specify just **one url** like this:
|
|
98
98
|
|
|
99
|
-
```
|
|
99
|
+
```yaml
|
|
100
100
|
title: My other awesome post
|
|
101
101
|
redirect_from: /post/123456798/
|
|
102
102
|
```
|
|
@@ -113,13 +113,9 @@ Sometimes, you may want to redirect a site page to a totally different website.
|
|
|
113
113
|
|
|
114
114
|
```yaml
|
|
115
115
|
title: My amazing post
|
|
116
|
-
redirect_to:
|
|
117
|
-
- http://www.github.com
|
|
116
|
+
redirect_to: http://www.github.com
|
|
118
117
|
```
|
|
119
118
|
|
|
120
|
-
If you have multiple `redirect_to`s set, only the first one will be respected.
|
|
121
|
-
|
|
122
|
-
|
|
123
119
|
**Note**: Using `redirect_to` or `redirect_from` with collections will only work with files which are output to HTML, such as `.md`, `.textile`, `.html` etc.
|
|
124
120
|
|
|
125
121
|
## Customizing the redirect template
|
|
@@ -130,6 +126,24 @@ Your layout will get the following variables:
|
|
|
130
126
|
|
|
131
127
|
* `page.redirect.from` - the relative path to the redirect page
|
|
132
128
|
* `page.redirect.to` - the absolute URL (where available) to the target page
|
|
129
|
+
* `page.redirect.to_js` - `page.redirect.to` as a quoted JavaScript string literal, safe to use inside a `<script>` element
|
|
130
|
+
|
|
131
|
+
Characters that could break out of HTML or JavaScript (quotes, angle brackets, backslashes, backticks, curly braces, whitespace and control characters) are percent-encoded in `page.redirect.to`, so a custom layout that outputs it without escaping is still safe. Using the `escape` filter in HTML attributes (e.g. `{{ page.redirect.to | escape }}`) and `page.redirect.to_js` in scripts is still recommended.
|
|
132
|
+
|
|
133
|
+
`redirect_to` must be a relative path or an `http://` or `https://` URL. Other schemes, such as `javascript:`, are ignored and a warning is logged.
|
|
134
|
+
|
|
135
|
+
## Configuration
|
|
136
|
+
|
|
137
|
+
You can configure this plugin in `_config.yml` by adding to the `redirect_from` key.
|
|
138
|
+
|
|
139
|
+
### Disabling `redirects.json`
|
|
140
|
+
|
|
141
|
+
By default, a file called `redirects.json`, which can be used for automated testing or to implement server-side redirects, will be included in the output. To exclude it from the output, set the `json` key to `false`:
|
|
142
|
+
|
|
143
|
+
```yml
|
|
144
|
+
redirect_from:
|
|
145
|
+
json: false
|
|
146
|
+
```
|
|
133
147
|
|
|
134
148
|
## Contributing
|
|
135
149
|
|
|
@@ -10,19 +10,19 @@ module JekyllRedirectFrom
|
|
|
10
10
|
@redirects = {}
|
|
11
11
|
|
|
12
12
|
# Inject our layout, unless the user has already specified a redirect layout'
|
|
13
|
-
unless site.layouts.
|
|
13
|
+
unless site.layouts.key?("redirect")
|
|
14
14
|
site.layouts["redirect"] = JekyllRedirectFrom::Layout.new(site)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
# Must duplicate pages to modify while in loop
|
|
18
18
|
(site.docs_to_write + site.pages.dup).each do |doc|
|
|
19
|
-
next unless
|
|
19
|
+
next unless redirectable_document?(doc)
|
|
20
20
|
|
|
21
21
|
generate_redirect_from(doc)
|
|
22
22
|
generate_redirect_to(doc)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
generate_redirects_json
|
|
25
|
+
generate_redirects_json if generate_redirects_json?
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
private
|
|
@@ -39,6 +39,12 @@ module JekyllRedirectFrom
|
|
|
39
39
|
def generate_redirect_to(doc)
|
|
40
40
|
return unless doc.redirect_to
|
|
41
41
|
|
|
42
|
+
unless RedirectPage.valid_target?(doc.redirect_to)
|
|
43
|
+
Jekyll.logger.warn "Redirect from:", "Ignoring disallowed redirect_to " \
|
|
44
|
+
"#{doc.redirect_to.inspect} in #{doc.relative_path}"
|
|
45
|
+
return
|
|
46
|
+
end
|
|
47
|
+
|
|
42
48
|
page = RedirectPage.redirect_to(doc, doc.redirect_to)
|
|
43
49
|
doc.data.merge!(page.data)
|
|
44
50
|
doc.content = doc.output = page.output
|
|
@@ -53,5 +59,13 @@ module JekyllRedirectFrom
|
|
|
53
59
|
page.data["layout"] = nil
|
|
54
60
|
site.pages << page
|
|
55
61
|
end
|
|
62
|
+
|
|
63
|
+
def redirectable_document?(doc)
|
|
64
|
+
doc.is_a?(Jekyll::Document) || doc.is_a?(Jekyll::Page)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def generate_redirects_json?
|
|
68
|
+
site.config.dig("redirect_from", "json") != false
|
|
69
|
+
end
|
|
56
70
|
end
|
|
57
71
|
end
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
<html lang="en-US">
|
|
3
3
|
<meta charset="utf-8">
|
|
4
4
|
<title>Redirecting…</title>
|
|
5
|
-
<link rel="canonical" href="{{ page.redirect.to }}">
|
|
6
|
-
<script>location=
|
|
7
|
-
<meta http-equiv="refresh" content="0; url={{ page.redirect.to }}">
|
|
5
|
+
<link rel="canonical" href="{{ page.redirect.to | escape }}">
|
|
6
|
+
<script>location={{ page.redirect.to_js }}</script>
|
|
7
|
+
<meta http-equiv="refresh" content="0; url={{ page.redirect.to | escape }}">
|
|
8
8
|
<meta name="robots" content="noindex">
|
|
9
9
|
<h1>Redirecting…</h1>
|
|
10
|
-
<a href="{{ page.redirect.to }}">Click here if you are not redirected.</a>
|
|
10
|
+
<a href="{{ page.redirect.to | escape }}">Click here if you are not redirected.</a>
|
|
11
11
|
</html>
|
|
@@ -11,6 +11,34 @@ module JekyllRedirectFrom
|
|
|
11
11
|
"layout" => "redirect",
|
|
12
12
|
}.freeze
|
|
13
13
|
|
|
14
|
+
# Schemes which may be used for an absolute redirect target. Anything else
|
|
15
|
+
# (e.g. `javascript:` or `data:`) could execute script on the redirect page.
|
|
16
|
+
ALLOWED_SCHEMES = %w(http https).freeze
|
|
17
|
+
|
|
18
|
+
# Browsers ignore leading and trailing C0 control characters and spaces, and
|
|
19
|
+
# tabs and newlines anywhere in a URL, when determining its scheme.
|
|
20
|
+
URL_STRIP_REGEX = %r![\t\n\r]!.freeze
|
|
21
|
+
URL_TRIM_REGEX = %r!\A[\u0000-\u0020]+|[\u0000-\u0020]+\z!.freeze
|
|
22
|
+
SCHEME_REGEX = %r!\A([a-z][a-z0-9+\-.]*):!i.freeze
|
|
23
|
+
|
|
24
|
+
# Characters which are never valid unencoded in a URL and could break out
|
|
25
|
+
# of an HTML attribute or a JavaScript string if the target is output raw
|
|
26
|
+
# (e.g. by a custom redirect layout): quotes, angle brackets, backslash,
|
|
27
|
+
# backtick, curly braces (JavaScript template literal interpolation),
|
|
28
|
+
# whitespace, C0 control characters and DEL.
|
|
29
|
+
UNSAFE_URL_CHARS_REGEX = %r![\s"'<>\\`{}\x00-\x1F\x7F]!.freeze
|
|
30
|
+
|
|
31
|
+
# Characters which must be escaped for a JSON string to be safely embedded
|
|
32
|
+
# in an HTML <script> element.
|
|
33
|
+
JS_ESCAPE_REGEX = %r![<>&\u2028\u2029]!.freeze
|
|
34
|
+
|
|
35
|
+
# Returns true if the given target is a relative path or an http(s) URL
|
|
36
|
+
def self.valid_target?(to)
|
|
37
|
+
normalized = to.to_s.gsub(URL_STRIP_REGEX, "").gsub(URL_TRIM_REGEX, "")
|
|
38
|
+
scheme = normalized[SCHEME_REGEX, 1]
|
|
39
|
+
scheme.nil? || ALLOWED_SCHEMES.include?(scheme.downcase)
|
|
40
|
+
end
|
|
41
|
+
|
|
14
42
|
# Creates a new RedirectPage instance from a source path and redirect path
|
|
15
43
|
#
|
|
16
44
|
# site - The Site object
|
|
@@ -43,13 +71,20 @@ module JekyllRedirectFrom
|
|
|
43
71
|
# from - the relative path to the redirect page
|
|
44
72
|
# to - the relative path or absolute URL to the redirect target
|
|
45
73
|
def set_paths(from, to)
|
|
74
|
+
unless self.class.valid_target?(to)
|
|
75
|
+
raise ArgumentError, "Disallowed redirect target: #{to.inspect}"
|
|
76
|
+
end
|
|
77
|
+
|
|
46
78
|
@context ||= context
|
|
47
79
|
from = ensure_leading_slash(from)
|
|
80
|
+
to = %r!^https?://!.match?(to) ? to : absolute_url(to)
|
|
81
|
+
to = encode_unsafe_chars(to)
|
|
48
82
|
data.merge!(
|
|
49
83
|
"permalink" => from,
|
|
50
84
|
"redirect" => {
|
|
51
|
-
"from"
|
|
52
|
-
"to"
|
|
85
|
+
"from" => from,
|
|
86
|
+
"to" => to,
|
|
87
|
+
"to_js" => js_escape(to.to_json),
|
|
53
88
|
}
|
|
54
89
|
)
|
|
55
90
|
end
|
|
@@ -64,6 +99,16 @@ module JekyllRedirectFrom
|
|
|
64
99
|
|
|
65
100
|
private
|
|
66
101
|
|
|
102
|
+
def encode_unsafe_chars(url)
|
|
103
|
+
url.to_s.gsub(UNSAFE_URL_CHARS_REGEX) do |char|
|
|
104
|
+
char.bytes.map { |byte| format("%%%02X", byte) }.join
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def js_escape(json)
|
|
109
|
+
json.gsub(JS_ESCAPE_REGEX) { |char| format("\\u%04x", char.ord) }
|
|
110
|
+
end
|
|
111
|
+
|
|
67
112
|
def context
|
|
68
113
|
JekyllRedirectFrom::Context.new(site)
|
|
69
114
|
end
|
|
@@ -7,21 +7,15 @@ module JekyllRedirectFrom
|
|
|
7
7
|
# Returns a string representing the relative path or URL
|
|
8
8
|
# to which the document should be redirected
|
|
9
9
|
def redirect_to
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
else
|
|
13
|
-
to_liquid["redirect_to"]
|
|
14
|
-
end
|
|
10
|
+
meta_data = to_liquid["redirect_to"]
|
|
11
|
+
meta_data.is_a?(Array) ? meta_data.compact.first : meta_data
|
|
15
12
|
end
|
|
16
13
|
|
|
17
14
|
# Returns an array representing the relative paths to other
|
|
18
15
|
# documents which should be redirected to this document
|
|
19
16
|
def redirect_from
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
else
|
|
23
|
-
[to_liquid["redirect_from"]].compact
|
|
24
|
-
end
|
|
17
|
+
meta_data = to_liquid["redirect_from"]
|
|
18
|
+
meta_data.is_a?(Array) ? meta_data.compact : [meta_data].compact
|
|
25
19
|
end
|
|
26
20
|
end
|
|
27
21
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-redirect-from
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Parker Moore
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: jekyll
|
|
@@ -64,14 +63,14 @@ dependencies:
|
|
|
64
63
|
requirements:
|
|
65
64
|
- - "~>"
|
|
66
65
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '
|
|
66
|
+
version: '13.0'
|
|
68
67
|
type: :development
|
|
69
68
|
prerelease: false
|
|
70
69
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
70
|
requirements:
|
|
72
71
|
- - "~>"
|
|
73
72
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '
|
|
73
|
+
version: '13.0'
|
|
75
74
|
- !ruby/object:Gem::Dependency
|
|
76
75
|
name: rspec
|
|
77
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,32 +91,23 @@ dependencies:
|
|
|
92
91
|
requirements:
|
|
93
92
|
- - "~>"
|
|
94
93
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
94
|
+
version: 0.13.0
|
|
96
95
|
type: :development
|
|
97
96
|
prerelease: false
|
|
98
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
98
|
requirements:
|
|
100
99
|
- - "~>"
|
|
101
100
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
103
|
-
description:
|
|
101
|
+
version: 0.13.0
|
|
104
102
|
email:
|
|
105
103
|
- parkrmoore@gmail.com
|
|
106
104
|
executables: []
|
|
107
105
|
extensions: []
|
|
108
106
|
extra_rdoc_files: []
|
|
109
107
|
files:
|
|
110
|
-
- ".gitignore"
|
|
111
|
-
- ".rspec"
|
|
112
|
-
- ".rubocop.yml"
|
|
113
|
-
- ".rubocop_todo.yml"
|
|
114
|
-
- ".travis.yml"
|
|
115
|
-
- Gemfile
|
|
116
108
|
- History.markdown
|
|
117
109
|
- LICENSE.txt
|
|
118
110
|
- README.md
|
|
119
|
-
- Rakefile
|
|
120
|
-
- jekyll-redirect-from.gemspec
|
|
121
111
|
- lib/jekyll-redirect-from.rb
|
|
122
112
|
- lib/jekyll-redirect-from/context.rb
|
|
123
113
|
- lib/jekyll-redirect-from/generator.rb
|
|
@@ -127,35 +117,10 @@ files:
|
|
|
127
117
|
- lib/jekyll-redirect-from/redirect_page.rb
|
|
128
118
|
- lib/jekyll-redirect-from/redirectable.rb
|
|
129
119
|
- lib/jekyll-redirect-from/version.rb
|
|
130
|
-
- script/bootstrap
|
|
131
|
-
- script/cibuild
|
|
132
|
-
- script/fmt
|
|
133
|
-
- script/release
|
|
134
|
-
- script/test
|
|
135
|
-
- spec/fixtures/_articles/redirect-me-plz.md
|
|
136
|
-
- spec/fixtures/_articles/redirect-somewhere-else-im-a-permalink.html
|
|
137
|
-
- spec/fixtures/_articles/redirect-somewhere-else-plz.html
|
|
138
|
-
- spec/fixtures/_authors/kansaichris.md
|
|
139
|
-
- spec/fixtures/_layouts/layout.html
|
|
140
|
-
- spec/fixtures/_posts/2014-01-03-redirect-me-plz.md
|
|
141
|
-
- spec/fixtures/multiple_redirect_froms.md
|
|
142
|
-
- spec/fixtures/multiple_redirect_tos.md
|
|
143
|
-
- spec/fixtures/one_redirect_from.md
|
|
144
|
-
- spec/fixtures/one_redirect_to_path.md
|
|
145
|
-
- spec/fixtures/one_redirect_to_url.md
|
|
146
|
-
- spec/fixtures/tags/how we work.md
|
|
147
|
-
- spec/integrations_spec.rb
|
|
148
|
-
- spec/jekyll_redirect_from/context_spec.rb
|
|
149
|
-
- spec/jekyll_redirect_from/generator_spec.rb
|
|
150
|
-
- spec/jekyll_redirect_from/layout_spec.rb
|
|
151
|
-
- spec/jekyll_redirect_from/redirect_page_spec.rb
|
|
152
|
-
- spec/jekyll_redirect_from/redirectable_spec.rb
|
|
153
|
-
- spec/spec_helper.rb
|
|
154
120
|
homepage: https://github.com/jekyll/jekyll-redirect-from
|
|
155
121
|
licenses:
|
|
156
122
|
- MIT
|
|
157
123
|
metadata: {}
|
|
158
|
-
post_install_message:
|
|
159
124
|
rdoc_options: []
|
|
160
125
|
require_paths:
|
|
161
126
|
- lib
|
|
@@ -163,34 +128,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
163
128
|
requirements:
|
|
164
129
|
- - ">="
|
|
165
130
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: 2.
|
|
131
|
+
version: 2.5.0
|
|
167
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
133
|
requirements:
|
|
169
134
|
- - ">="
|
|
170
135
|
- !ruby/object:Gem::Version
|
|
171
136
|
version: '0'
|
|
172
137
|
requirements: []
|
|
173
|
-
rubygems_version: 3.
|
|
174
|
-
signing_key:
|
|
138
|
+
rubygems_version: 3.6.9
|
|
175
139
|
specification_version: 4
|
|
176
140
|
summary: Seamlessly specify multiple redirection URLs for your pages and posts
|
|
177
|
-
test_files:
|
|
178
|
-
- spec/fixtures/_articles/redirect-me-plz.md
|
|
179
|
-
- spec/fixtures/_articles/redirect-somewhere-else-im-a-permalink.html
|
|
180
|
-
- spec/fixtures/_articles/redirect-somewhere-else-plz.html
|
|
181
|
-
- spec/fixtures/_authors/kansaichris.md
|
|
182
|
-
- spec/fixtures/_layouts/layout.html
|
|
183
|
-
- spec/fixtures/_posts/2014-01-03-redirect-me-plz.md
|
|
184
|
-
- spec/fixtures/multiple_redirect_froms.md
|
|
185
|
-
- spec/fixtures/multiple_redirect_tos.md
|
|
186
|
-
- spec/fixtures/one_redirect_from.md
|
|
187
|
-
- spec/fixtures/one_redirect_to_path.md
|
|
188
|
-
- spec/fixtures/one_redirect_to_url.md
|
|
189
|
-
- spec/fixtures/tags/how we work.md
|
|
190
|
-
- spec/integrations_spec.rb
|
|
191
|
-
- spec/jekyll_redirect_from/context_spec.rb
|
|
192
|
-
- spec/jekyll_redirect_from/generator_spec.rb
|
|
193
|
-
- spec/jekyll_redirect_from/layout_spec.rb
|
|
194
|
-
- spec/jekyll_redirect_from/redirect_page_spec.rb
|
|
195
|
-
- spec/jekyll_redirect_from/redirectable_spec.rb
|
|
196
|
-
- spec/spec_helper.rb
|
|
141
|
+
test_files: []
|
data/.gitignore
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
*.gem
|
|
2
|
-
*.rbc
|
|
3
|
-
.bundle
|
|
4
|
-
.config
|
|
5
|
-
.yardoc
|
|
6
|
-
Gemfile.lock
|
|
7
|
-
InstalledFiles
|
|
8
|
-
_yardoc
|
|
9
|
-
coverage
|
|
10
|
-
doc/
|
|
11
|
-
lib/bundler/man
|
|
12
|
-
pkg
|
|
13
|
-
rdoc
|
|
14
|
-
spec/reports
|
|
15
|
-
spec/fixtures/.jekyll-metadata
|
|
16
|
-
spec/fixtures/.jekyll-cache
|
|
17
|
-
test/tmp
|
|
18
|
-
test/version_tmp
|
|
19
|
-
tmp
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
data/.rubocop_todo.yml
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# This configuration was generated by
|
|
2
|
-
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2018-12-06 11:51:19 +0100 using RuboCop version 0.61.1.
|
|
4
|
-
# The point is for the user to remove these configuration records
|
|
5
|
-
# one by one as the offenses are removed from the code base.
|
|
6
|
-
# Note that changes in the inspected code, or installation of new
|
|
7
|
-
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
-
|
|
9
|
-
# Offense count: 12
|
|
10
|
-
# Configuration parameters: CountComments, Max, ExcludedMethods.
|
|
11
|
-
# ExcludedMethods: refine
|
|
12
|
-
Metrics/BlockLength:
|
|
13
|
-
Exclude:
|
|
14
|
-
- 'spec/integrations_spec.rb'
|
|
15
|
-
- 'spec/jekyll_redirect_from/generator_spec.rb'
|
|
16
|
-
- 'spec/jekyll_redirect_from/redirect_page_spec.rb'
|
|
17
|
-
- 'spec/jekyll_redirect_from/redirectable_spec.rb'
|
|
18
|
-
- 'spec/spec_helper.rb'
|
|
19
|
-
|
|
20
|
-
# Offense count: 3
|
|
21
|
-
# Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
22
|
-
# URISchemes: http, https
|
|
23
|
-
Metrics/LineLength:
|
|
24
|
-
Exclude:
|
|
25
|
-
- 'spec/jekyll_redirect_from/generator_spec.rb'
|
|
26
|
-
- 'spec/jekyll_redirect_from/redirect_page_spec.rb'
|
|
27
|
-
|
|
28
|
-
# Offense count: 1
|
|
29
|
-
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
|
|
30
|
-
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
|
|
31
|
-
Naming/MemoizedInstanceVariableName:
|
|
32
|
-
Exclude:
|
|
33
|
-
- 'lib/jekyll-redirect-from/page_without_a_file.rb'
|
|
34
|
-
|
|
35
|
-
# Offense count: 2
|
|
36
|
-
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
|
37
|
-
# AllowedNames: io, id, to, by, on, in, at, ip, db
|
|
38
|
-
Naming/UncommunicativeMethodParamName:
|
|
39
|
-
Exclude:
|
|
40
|
-
- 'lib/jekyll-redirect-from/redirect_page.rb'
|
data/.travis.yml
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
cache: bundler
|
|
3
|
-
rvm:
|
|
4
|
-
- &latest_ruby 2.6
|
|
5
|
-
- 2.4
|
|
6
|
-
- 2.3
|
|
7
|
-
env:
|
|
8
|
-
- JEKYLL_VERSION="~> 3.8"
|
|
9
|
-
matrix:
|
|
10
|
-
include:
|
|
11
|
-
- # GitHub Pages
|
|
12
|
-
rvm: 2.5.3
|
|
13
|
-
env: GH_PAGES=true
|
|
14
|
-
- rvm: *latest_ruby
|
|
15
|
-
env: JEKYLL_VERSION=">= 4.0.0.pre.alpha1"
|
|
16
|
-
|
|
17
|
-
before_install:
|
|
18
|
-
- gem update --system
|
|
19
|
-
before_script: bundle update
|
|
20
|
-
script: script/cibuild
|
data/Gemfile
DELETED
data/Rakefile
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
lib = File.expand_path("lib", __dir__)
|
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
-
require "jekyll-redirect-from/version"
|
|
6
|
-
|
|
7
|
-
Gem::Specification.new do |spec|
|
|
8
|
-
spec.name = "jekyll-redirect-from"
|
|
9
|
-
spec.version = JekyllRedirectFrom::VERSION
|
|
10
|
-
spec.authors = ["Parker Moore"]
|
|
11
|
-
spec.email = ["parkrmoore@gmail.com"]
|
|
12
|
-
spec.summary = "Seamlessly specify multiple redirection URLs " \
|
|
13
|
-
"for your pages and posts"
|
|
14
|
-
spec.homepage = "https://github.com/jekyll/jekyll-redirect-from"
|
|
15
|
-
spec.license = "MIT"
|
|
16
|
-
|
|
17
|
-
# rubocop:disable Style/SpecialGlobalVars
|
|
18
|
-
spec.files = `git ls-files`.split($/)
|
|
19
|
-
# rubocop:enable Style/SpecialGlobalVars
|
|
20
|
-
|
|
21
|
-
spec.executables = spec.files.grep(%r!^bin/!) { |f| File.basename(f) }
|
|
22
|
-
spec.test_files = spec.files.grep(%r!^(test|spec|features)/!)
|
|
23
|
-
spec.require_paths = ["lib"]
|
|
24
|
-
|
|
25
|
-
spec.required_ruby_version = ">= 2.3.0"
|
|
26
|
-
|
|
27
|
-
spec.add_runtime_dependency "jekyll", ">= 3.3", "< 5.0"
|
|
28
|
-
|
|
29
|
-
spec.add_development_dependency "bundler"
|
|
30
|
-
spec.add_development_dependency "jekyll-sitemap", "~> 1.0"
|
|
31
|
-
spec.add_development_dependency "rake", "~> 12.0"
|
|
32
|
-
spec.add_development_dependency "rspec", "~> 3.5"
|
|
33
|
-
spec.add_development_dependency "rubocop-jekyll", "~> 0.4"
|
|
34
|
-
end
|
data/script/bootstrap
DELETED
data/script/cibuild
DELETED
data/script/fmt
DELETED
data/script/release
DELETED
data/script/test
DELETED