jekyll-feed 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -2
- data/jekyll-feed.gemspec +2 -1
- data/lib/feed.xml +30 -2
- data/spec/fixtures/_config.yml +3 -0
- data/spec/fixtures/_posts/2015-05-12-pre.html +1 -0
- data/spec/fixtures/_posts/2015-05-18-author-detail.md +8 -0
- data/spec/jekyll-feed_spec.rb +17 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14ee44b7a02f6709b95e9266a5e3b56d36ac065d
|
4
|
+
data.tar.gz: 25ea1ebdaf2ae8f7a5993726e9e73402b96a1136
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9a1af3d768c6d8c921c11d3eb71205119b8b01e9569ca2f3697ee2f2c8f38c3e73cf9f7857b52fec581da487bd022499deab2a0cbfa4ff212af15737e6d06f6
|
7
|
+
data.tar.gz: 59435b91142b86809fd70e33b9293125e2a3e9ac28c789e0f735436ed4355e0a2d0378acf3fbad0148ce38a6b537e0f27af8d36bd728f297cdec78042c820c2d
|
data/README.md
CHANGED
@@ -30,7 +30,11 @@ The plugin will automatically use any of the following configuration variables,
|
|
30
30
|
* `name` - The title of the site, e.g., "My awesome site"
|
31
31
|
* `description` - A longer description of what your site is about, e.g., "Where I blog about Jekyll and other awesome things"
|
32
32
|
* `url` - The URL to your site, e.g., `http://example.com`. If none is provided, the plugin will try to use `site.github.url`.
|
33
|
-
* `author` - Your name, e.g., "Dr. Jekyll"
|
33
|
+
* `author` - Your name, e.g., "Dr. Jekyll." This can be a string (with the author's name), or an object with the following properties:
|
34
|
+
- `name` - **Required** Display name of the author
|
35
|
+
- `email` - Email address of the author
|
36
|
+
- `uri` - Webpage where more information about the author can be found
|
37
|
+
|
34
38
|
|
35
39
|
### Optional front matter
|
36
40
|
|
@@ -45,7 +49,7 @@ The plugin will use the following post metadata, automatically generated by Jeky
|
|
45
49
|
|
46
50
|
Additionally, the plugin will use the following values, if present in a post's YAML front matter:
|
47
51
|
|
48
|
-
* `author` - The author of the post, e.g., "Dr. Jekyll". If none is given, feed readers will look to the feed author as defined in `_config.yml
|
52
|
+
* `author` - The author of the post, e.g., "Dr. Jekyll". If none is given, feed readers will look to the feed author as defined in `_config.yml`. Like the feed author, this can also be an object.
|
49
53
|
|
50
54
|
### Meta tags
|
51
55
|
|
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.2.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"
|
@@ -20,5 +20,6 @@ Gem::Specification.new do |spec|
|
|
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
|
+
spec.add_development_dependency "jekyll-last-modified-at", "0.3.4"
|
23
24
|
|
24
25
|
end
|
data/lib/feed.xml
CHANGED
@@ -21,7 +21,19 @@
|
|
21
21
|
|
22
22
|
{% if site.author %}
|
23
23
|
<author>
|
24
|
-
|
24
|
+
{% if site.author.name %}
|
25
|
+
<name>{{ site.author.name | xml_escape }}</name>
|
26
|
+
{% else %}
|
27
|
+
<name>{{ site.author | xml_escape }}</name>
|
28
|
+
{% endif %}
|
29
|
+
{% if site.author.email %}
|
30
|
+
<email>{{ site.author.email | xml_escape }}</email>
|
31
|
+
{% endif %}
|
32
|
+
{% if site.author.uri %}
|
33
|
+
</uri>{{ site.author.uri | xml_escape }}</uri>
|
34
|
+
{% elsif site.author.url %}
|
35
|
+
</uri>{{ site.author.url | xml_escape }}</uri>
|
36
|
+
{% endif %}
|
25
37
|
</author>
|
26
38
|
{% endif %}
|
27
39
|
|
@@ -30,14 +42,30 @@
|
|
30
42
|
<title>{{ post.title | markdownify | strip_html | strip_newlines | xml_escape }}</title>
|
31
43
|
<link href="{{ post.url | prepend: url_base }}" rel="alternate" type="text/html" title="{{ post.title | xml_escape }}" />
|
32
44
|
<published>{{ post.date | date_to_xmlschema }}</published>
|
33
|
-
|
45
|
+
{% if post.last_modified_at %}
|
46
|
+
<updated>{{ post.last_modified_at | date_to_xmlschema }}</updated>
|
47
|
+
{% else %}
|
48
|
+
<updated>{{ post.date | date_to_xmlschema }}</updated>
|
49
|
+
{% endif %}
|
34
50
|
|
35
51
|
<id>{{ post.id | prepend: url_base | xml_escape }}</id>
|
36
52
|
<content type="html" xml:base="{{ post.url | prepend: url_base | xml_escape }}">{{ post.content | markdownify | xml_escape }}</content>
|
37
53
|
|
38
54
|
{% if post.author %}
|
39
55
|
<author>
|
56
|
+
{% if post.author.name %}
|
57
|
+
<name>{{ post.author.name | xml_escape }}</name>
|
58
|
+
{% else %}
|
40
59
|
<name>{{ post.author | xml_escape }}</name>
|
60
|
+
{% endif %}
|
61
|
+
{% if post.author.email %}
|
62
|
+
<email>{{ post.author.email | xml_escape }}</email>
|
63
|
+
{% endif %}
|
64
|
+
{% if post.author.url %}
|
65
|
+
</uri>{{ post.author.url | xml_escape }}</uri>
|
66
|
+
{% elsif post.author.url %}
|
67
|
+
</uri>{{ post.author.url | xml_escape }}</uri>
|
68
|
+
{% endif %}
|
41
69
|
</author>
|
42
70
|
{% endif %}
|
43
71
|
|
data/spec/fixtures/_config.yml
CHANGED
data/spec/jekyll-feed_spec.rb
CHANGED
@@ -53,10 +53,26 @@ describe(Jekyll::JekyllFeed) do
|
|
53
53
|
expect(contents).to match /Line 1\nLine 2\nLine 3/
|
54
54
|
end
|
55
55
|
|
56
|
+
it "supports post author name as an object" do
|
57
|
+
expect(contents).to match /<author>\s*<name>Ben<\/name>\s*<email>ben@example.com<\/email>\s*<\/author>/
|
58
|
+
end
|
59
|
+
|
60
|
+
it "supports post author name as a string" do
|
61
|
+
expect(contents).to match /<author>\s*<name>Pat<\/name>\s*<\/author>/
|
62
|
+
end
|
63
|
+
|
64
|
+
it "does not output author tag no author is provided" do
|
65
|
+
expect(contents).not_to match /<author>\s*<name><\/name>\s*<\/author>/
|
66
|
+
end
|
67
|
+
|
56
68
|
it "converts markdown posts to HTML" do
|
57
69
|
expect(contents).to match /<p>March the second!<\/p>/
|
58
70
|
end
|
59
71
|
|
72
|
+
it "converts uses last_modified_at where available" do
|
73
|
+
expect(contents).to match /<updated>2015-05-12T13:27:59\+00:00<\/updated>/
|
74
|
+
end
|
75
|
+
|
60
76
|
context "parsing" do
|
61
77
|
let(:feed) { RSS::Parser.parse(contents) }
|
62
78
|
|
@@ -76,7 +92,7 @@ describe(Jekyll::JekyllFeed) do
|
|
76
92
|
end
|
77
93
|
|
78
94
|
it "includes the items" do
|
79
|
-
expect(feed.items.count).to eql(
|
95
|
+
expect(feed.items.count).to eql(7)
|
80
96
|
end
|
81
97
|
|
82
98
|
it "includes item contents" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.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-05-
|
11
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jekyll-last-modified-at
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.3.4
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.3.4
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- ben.balter@github.com
|
@@ -126,6 +140,7 @@ files:
|
|
126
140
|
- spec/fixtures/_posts/2014-05-11-exclude-this-post.md
|
127
141
|
- spec/fixtures/_posts/2015-01-18-jekyll-last-modified-at.md
|
128
142
|
- spec/fixtures/_posts/2015-05-12-pre.html
|
143
|
+
- spec/fixtures/_posts/2015-05-18-author-detail.md
|
129
144
|
- spec/fixtures/feeds/atom.xml
|
130
145
|
- spec/fixtures/images/hubot.png
|
131
146
|
- spec/fixtures/index.html
|
@@ -173,6 +188,7 @@ test_files:
|
|
173
188
|
- spec/fixtures/_posts/2014-05-11-exclude-this-post.md
|
174
189
|
- spec/fixtures/_posts/2015-01-18-jekyll-last-modified-at.md
|
175
190
|
- spec/fixtures/_posts/2015-05-12-pre.html
|
191
|
+
- spec/fixtures/_posts/2015-05-18-author-detail.md
|
176
192
|
- spec/fixtures/feeds/atom.xml
|
177
193
|
- spec/fixtures/images/hubot.png
|
178
194
|
- spec/fixtures/index.html
|