jekyll-feed 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +20 -4
- data/Gemfile +4 -1
- data/README.md +10 -0
- data/jekyll-feed.gemspec +2 -3
- data/lib/jekyll-feed.rb +25 -8
- data/spec/jekyll-feed_spec.rb +18 -1
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58166be831e447c07a57150717670f140681c3c7
|
4
|
+
data.tar.gz: 8ab3a70938b5752de7bb755891228fcfe9e997c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 793aed59df2ec15981b5a20c378957ecd756ade0d76725243bf06f8071f4c870c6c432c87e02a226b78bf3a5be185cbab26f3c61ec937e398fb87d7b10e01d7c
|
7
|
+
data.tar.gz: fed263171fb20cc8f7015bb00d15778de921556e1c5e38ed4155aa0579d86b5f5789e3d33a84350e193e7915760c6978c6f97dc342c2d9a70acc2a7cf9dfe18b
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,9 +1,25 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
3
|
- 2.1
|
4
|
-
- 2.
|
5
|
-
-
|
6
|
-
|
4
|
+
- 2.2
|
5
|
+
- 2.0
|
6
|
+
- 1.9
|
7
7
|
script: "script/cibuild"
|
8
|
-
|
8
|
+
before_script: bundle update
|
9
9
|
cache: bundler
|
10
|
+
sudo: false
|
11
|
+
|
12
|
+
matrix:
|
13
|
+
exclude:
|
14
|
+
- rvm: 1.9
|
15
|
+
env: JEKYLL_VERSION=3.0.0.beta5
|
16
|
+
- env: JEKYLL_VERSION=2.4
|
17
|
+
rvm: 2.1
|
18
|
+
- rvm: 2.2
|
19
|
+
env: JEKYLL_VERSION=2.4
|
20
|
+
|
21
|
+
env:
|
22
|
+
matrix:
|
23
|
+
- ""
|
24
|
+
- JEKYLL_VERSION=2.4
|
25
|
+
- JEKYLL_VERSION=3.0.0.beta5
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -35,6 +35,16 @@ The plugin will automatically use any of the following configuration variables,
|
|
35
35
|
- `email` - Email address of the author
|
36
36
|
- `uri` - Webpage where more information about the author can be found
|
37
37
|
|
38
|
+
### Already have a feed path?
|
39
|
+
|
40
|
+
Do you already have an existing feed someplace other than `/feed.xml`, but are on a host like GitHub Pages that doesn't support machine-friendly redirects? If you simply swap out `jekyll-feed` for your existing template, your existing subscribers won't continue to get updates. Instead, you can specify a non-default path via your site's config.
|
41
|
+
|
42
|
+
```yml
|
43
|
+
feed:
|
44
|
+
path: atom.xml
|
45
|
+
```
|
46
|
+
|
47
|
+
To note, you shouldn't have to do this unless you already have a feed you're using, and you can't or wish not to redirect existing subscribers.
|
38
48
|
|
39
49
|
### Optional front matter
|
40
50
|
|
data/jekyll-feed.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "jekyll-feed"
|
5
|
-
spec.version = "0.
|
5
|
+
spec.version = "0.3.0"
|
6
6
|
spec.authors = ["Ben Balter"]
|
7
7
|
spec.email = ["ben.balter@github.com"]
|
8
8
|
spec.summary = "A Jekyll plugin to generate an Atom feed of your Jekyll posts"
|
@@ -14,12 +14,11 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
15
|
spec.require_paths = ["lib"]
|
16
16
|
|
17
|
-
spec.add_development_dependency "jekyll", "
|
17
|
+
spec.add_development_dependency "jekyll", ">= 2.4.0", "< 3.1.0"
|
18
18
|
spec.add_development_dependency "bundler", "~> 1.6"
|
19
19
|
spec.add_development_dependency "rake", "~> 10.0"
|
20
20
|
spec.add_development_dependency "rspec", "~> 3.0"
|
21
21
|
spec.add_development_dependency "typhoeus", "~> 0.7"
|
22
22
|
spec.add_development_dependency "nokogiri", "~> 1.6"
|
23
23
|
spec.add_development_dependency "jekyll-last-modified-at", "0.3.4"
|
24
|
-
|
25
24
|
end
|
data/lib/jekyll-feed.rb
CHANGED
@@ -12,6 +12,14 @@ module Jekyll
|
|
12
12
|
@context.registers[:site].config
|
13
13
|
end
|
14
14
|
|
15
|
+
def path
|
16
|
+
if config["feed"] && config["feed"]["path"]
|
17
|
+
config["feed"]["path"]
|
18
|
+
else
|
19
|
+
"feed.xml"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
15
23
|
def url
|
16
24
|
if config["url"]
|
17
25
|
config["url"]
|
@@ -22,7 +30,7 @@ module Jekyll
|
|
22
30
|
|
23
31
|
def render(context)
|
24
32
|
@context = context
|
25
|
-
"<link type=\"application/atom+xml\" rel=\"alternate\" href=\"#{url}
|
33
|
+
"<link type=\"application/atom+xml\" rel=\"alternate\" href=\"#{url}/#{path}\" title=\"#{config["name"]}\" />"
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
@@ -30,14 +38,23 @@ module Jekyll
|
|
30
38
|
safe true
|
31
39
|
priority :lowest
|
32
40
|
|
41
|
+
# Path to feed from config, or feed.xml for default
|
42
|
+
def path
|
43
|
+
if @site.config["feed"] && @site.config["feed"]["path"]
|
44
|
+
@site.config["feed"]["path"]
|
45
|
+
else
|
46
|
+
"feed.xml"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
33
50
|
# Main plugin action, called by Jekyll-core
|
34
51
|
def generate(site)
|
35
52
|
@site = site
|
36
|
-
@site.config["time"]
|
53
|
+
@site.config["time"] = Time.new
|
37
54
|
unless feed_exists?
|
38
55
|
write
|
39
56
|
@site.keep_files ||= []
|
40
|
-
@site.keep_files <<
|
57
|
+
@site.keep_files << path
|
41
58
|
end
|
42
59
|
end
|
43
60
|
|
@@ -49,9 +66,9 @@ module Jekyll
|
|
49
66
|
# Destination for feed.xml file within the site source directory
|
50
67
|
def destination_path
|
51
68
|
if @site.respond_to?(:in_dest_dir)
|
52
|
-
@site.in_dest_dir(
|
69
|
+
@site.in_dest_dir(path)
|
53
70
|
else
|
54
|
-
Jekyll.sanitized_path(@site.dest,
|
71
|
+
Jekyll.sanitized_path(@site.dest, path)
|
55
72
|
end
|
56
73
|
end
|
57
74
|
|
@@ -62,7 +79,7 @@ module Jekyll
|
|
62
79
|
end
|
63
80
|
|
64
81
|
def feed_content
|
65
|
-
site_map = PageWithoutAFile.new(@site, File.dirname(__FILE__), "",
|
82
|
+
site_map = PageWithoutAFile.new(@site, File.dirname(__FILE__), "", path)
|
66
83
|
site_map.content = File.read(source_path).gsub(/\s*\n\s*/, "\n").gsub(/\n{%/, "{%")
|
67
84
|
site_map.data["layout"] = nil
|
68
85
|
site_map.render(Hash.new, @site.site_payload)
|
@@ -72,9 +89,9 @@ module Jekyll
|
|
72
89
|
# Checks if a feed already exists in the site source
|
73
90
|
def feed_exists?
|
74
91
|
if @site.respond_to?(:in_source_dir)
|
75
|
-
File.exists? @site.in_source_dir(
|
92
|
+
File.exists? @site.in_source_dir(path)
|
76
93
|
else
|
77
|
-
File.exists? Jekyll.sanitized_path(@site.source,
|
94
|
+
File.exists? Jekyll.sanitized_path(@site.source, path)
|
78
95
|
end
|
79
96
|
end
|
80
97
|
end
|
data/spec/jekyll-feed_spec.rb
CHANGED
@@ -3,6 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe(Jekyll::JekyllFeed) do
|
4
4
|
let(:overrides) do
|
5
5
|
{
|
6
|
+
"full_rebuild" => true,
|
6
7
|
"source" => source_dir,
|
7
8
|
"destination" => dest_dir,
|
8
9
|
"url" => "http://example.org",
|
@@ -30,7 +31,7 @@ describe(Jekyll::JekyllFeed) do
|
|
30
31
|
end
|
31
32
|
|
32
33
|
it "creates a feed.xml file" do
|
33
|
-
expect(
|
34
|
+
expect(Pathname.new(dest_dir("feed.xml"))).to exist
|
34
35
|
end
|
35
36
|
|
36
37
|
it "doesn't have multiple new lines or trailing whitespace" do
|
@@ -145,4 +146,20 @@ describe(Jekyll::JekyllFeed) do
|
|
145
146
|
expect(index).to include(expected)
|
146
147
|
end
|
147
148
|
end
|
149
|
+
|
150
|
+
context "changing the feed path" do
|
151
|
+
let(:config) do
|
152
|
+
Jekyll.configuration(Jekyll::Utils.deep_merge_hashes(overrides, {"feed" => {"path" => "atom.xml"}}))
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should write to atom.xml" do
|
156
|
+
expect(Pathname.new(dest_dir("atom.xml"))).to exist
|
157
|
+
end
|
158
|
+
|
159
|
+
it "renders the feed meta with custom feed path" do
|
160
|
+
index = File.read(dest_dir("index.html"))
|
161
|
+
expected = '<link type="application/atom+xml" rel="alternate" href="http://example.org/atom.xml" title="My awesome site" />'
|
162
|
+
expect(index).to include(expected)
|
163
|
+
end
|
164
|
+
end
|
148
165
|
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Balter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.4.0
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 3.1.0
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.4.0
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 3.1.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|