jekyll-feed 0.15.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8f1fde42e53f27b048363aa57f03f5d51a3f68fbe6af4e0ffb69209b373ffeb
4
- data.tar.gz: aaaa1c370f29527e3806c6753ae76a2fa8297337f0e667f25fd43d05779fcfef
3
+ metadata.gz: 218e5f581b3f29f0f04eb49800c27b61cecb2ec769882ef2aa00008db2d6bd1a
4
+ data.tar.gz: b3f1ed32d77b488d45c5fcea9540224d2d340660b37db61958b4cd24d37e3bcc
5
5
  SHA512:
6
- metadata.gz: 6800a223adf7b8c6ae236d6b9d3e355d4ca31c7d2e67752cfd2cb5b3fe599ddda2d9c6f28a38a7c6d5e648ac67ca585fe6fe2a2e08f38c158a1b6a95ded11fd7
7
- data.tar.gz: a17bf5e936302721494bba9028ccda96ca88a4e229e0b1c88e6abe63f1ee2c60e3992296da05721d30400952fcc0ccafe4a2bd179038553ee57d3c940a1d04e9
6
+ metadata.gz: 2b6f1f23ae300ac0caad7a2123e73fb0ea403a9481a1bf71c90b07a166e91c4f64576d48606c960452e431fc1d26cb1531a6649dd622ad0d9c80722edc2a8d3c
7
+ data.tar.gz: de139bea2ba933414be45fcc6a4fe9e8e7431e8b7ea0bccc2df365121748e4bf07cd9020968670889c84688cc080ce22dc576b1d3936b8c34c07f7eabac727c5
data/History.markdown CHANGED
@@ -1,4 +1,38 @@
1
- ## HEAD
1
+ ## 0.17.0 / 2022-10-14
2
+
3
+ ### Documentation
4
+
5
+ * Update CI status badge (#363)
6
+
7
+ ### Development Fixes
8
+
9
+ * Add Ruby 3.1 to the CI matrix (#365)
10
+
11
+ ### Minor Enhancements
12
+
13
+ * Allow disabling of jekyll-feed while in development (#370)
14
+
15
+ ## 0.16.0 / 2022-01-03
16
+
17
+ ### Minor Enhancements
18
+
19
+ * Add support for `page.description` in front matter to become entry `<summary>` (#297)
20
+
21
+ ### Bug Fixes
22
+
23
+ * Fold private methods into the `:render` method as local variables (#327)
24
+ * Check `post.categories` instead of `post.category` (#357)
25
+ * Switched xml_escape for `<![CDATA[]]>` for post content (#332)
26
+
27
+ ### Development Fixes
28
+
29
+ * Add Ruby 3.0 to CI (#337)
30
+ * Lock RuboCop to v1.18.x (#348)
31
+ * Add workflow to release gem via GH Action (#355)
32
+
33
+ ### Documentation
34
+
35
+ * Use `.atom` extension in documented examples since we write an Atom feed (#359)
2
36
 
3
37
  ## 0.15.1 / 2020-10-04
4
38
 
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts
4
4
 
5
- [![Build Status](https://travis-ci.org/jekyll/jekyll-feed.svg)](https://travis-ci.org/jekyll/jekyll-feed) [![Gem Version](https://badge.fury.io/rb/jekyll-feed.svg)](https://badge.fury.io/rb/jekyll-feed)
5
+ [![Continuous Integration](https://github.com/jekyll/jekyll-feed/actions/workflows/ruby.yml/badge.svg)](https://github.com/jekyll/jekyll-feed/actions/workflows/ruby.yml) [![Gem Version](https://badge.fury.io/rb/jekyll-feed.svg)](https://badge.fury.io/rb/jekyll-feed)
6
6
 
7
7
  ## Installation
8
8
 
@@ -40,7 +40,7 @@ Do you already have an existing feed someplace other than `/feed.xml`, but are o
40
40
 
41
41
  ```yml
42
42
  feed:
43
- path: atom.xml
43
+ path: /blog/feed.atom
44
44
  ```
45
45
 
46
46
  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.
@@ -62,6 +62,8 @@ Additionally, the plugin will use the following values, if present in a post's Y
62
62
 
63
63
  * `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 or a reference to an author in `_data/authors.yml` (see below).
64
64
 
65
+ * `description` - A short description of the post.
66
+
65
67
  ### Author information
66
68
 
67
69
  *TL;DR: In most cases, put `author: [your name]` in the document's front matter, for sites with multiple authors. If you need something more complicated, read on.*
@@ -176,7 +178,7 @@ By default, collection feeds will be outputted to `/feed/<COLLECTION>.xml`. If y
176
178
  feed:
177
179
  collections:
178
180
  changes:
179
- path: "/changes.xml"
181
+ path: "/changes.atom"
180
182
  ```
181
183
 
182
184
  Finally, collections can also have category feeds which are outputted as `/feed/<COLLECTION>/<CATEGORY>.xml`. Specify categories like so:
@@ -185,7 +187,7 @@ Finally, collections can also have category feeds which are outputted as `/feed/
185
187
  feed:
186
188
  collections:
187
189
  changes:
188
- path: "/changes.xml"
190
+ path: "/changes.atom"
189
191
  categories:
190
192
  - news
191
193
  - updates
@@ -244,6 +246,16 @@ feed:
244
246
 
245
247
  Note that if you include a tag that is excluded a feed will not be generated for it.
246
248
 
249
+ ## Skip development
250
+
251
+ Use `disable_in_development: true` if you want to turn off feed generation when `jekyll.environment == "development"`,
252
+ but don't want to remove the plugin (so you don't accidentally commit the removal). Default value is `false`.
253
+
254
+ ```yml
255
+ feed:
256
+ disable_in_development: true
257
+ ```
258
+
247
259
  ## Contributing
248
260
 
249
261
  1. Fork it (https://github.com/jekyll/jekyll-feed/fork)
@@ -45,7 +45,7 @@
45
45
  {% assign posts = site[page.collection] %}
46
46
  {% endif %}
47
47
  {% if page.category %}
48
- {% assign posts = posts | where: "category", page.category %}
48
+ {% assign posts = posts | where: "categories", page.category %}
49
49
  {% endif %}
50
50
  {% unless site.show_drafts %}
51
51
  {% assign posts = posts | where_exp: "post", "post.draft != true" %}
@@ -63,7 +63,7 @@
63
63
  <id>{{ post.id | absolute_url | xml_escape }}</id>
64
64
  {% assign excerpt_only = post.feed.excerpt_only | default: site.feed.excerpt_only %}
65
65
  {% unless excerpt_only %}
66
- <content type="html" xml:base="{{ post.url | absolute_url | xml_escape }}">{{ post.content | strip | xml_escape }}</content>
66
+ <content type="html" xml:base="{{ post.url | absolute_url | xml_escape }}"><![CDATA[{{ post.content | strip }}]]></content>
67
67
  {% endunless %}
68
68
 
69
69
  {% assign post_author = post.author | default: post.authors[0] | default: site.author %}
@@ -94,8 +94,9 @@
94
94
  <category term="{{ tag | xml_escape }}" />
95
95
  {% endfor %}
96
96
 
97
- {% if post.excerpt and post.excerpt != empty %}
98
- <summary type="html">{{ post.excerpt | strip_html | normalize_whitespace | xml_escape }}</summary>
97
+ {% assign post_summary = post.description | default: post.excerpt %}
98
+ {% if post_summary and post_summary != empty %}
99
+ <summary type="html"><![CDATA[{{ post_summary | strip_html | normalize_whitespace }}]]></summary>
99
100
  {% endif %}
100
101
 
101
102
  {% assign post_image = post.image.path | default: post.image %}
@@ -8,6 +8,10 @@ module JekyllFeed
8
8
  # Main plugin action, called by Jekyll-core
9
9
  def generate(site)
10
10
  @site = site
11
+ if disabled_in_development?
12
+ Jekyll.logger.info "Jekyll Feed:", "Skipping feed generation in development"
13
+ return
14
+ end
11
15
  collections.each do |name, meta|
12
16
  Jekyll.logger.info "Jekyll Feed:", "Generating feed for #{name}"
13
17
  (meta["categories"] + [nil]).each do |category|
@@ -54,9 +58,10 @@ module JekyllFeed
54
58
  def collections
55
59
  return @collections if defined?(@collections)
56
60
 
57
- @collections = if config["collections"].is_a?(Array)
61
+ @collections = case config["collections"]
62
+ when Array
58
63
  config["collections"].map { |c| [c, {}] }.to_h
59
- elsif config["collections"].is_a?(Hash)
64
+ when Hash
60
65
  config["collections"]
61
66
  else
62
67
  {}
@@ -136,5 +141,9 @@ module JekyllFeed
136
141
  config["path"] ||= hash["posts"]["path"]
137
142
  hash
138
143
  end
144
+
145
+ def disabled_in_development?
146
+ config && config["disable_in_development"] && Jekyll.env == "development"
147
+ end
139
148
  end
140
149
  end
@@ -6,35 +6,22 @@ module JekyllFeed
6
6
  include Jekyll::Filters::URLFilters
7
7
 
8
8
  def render(context)
9
+ # Jekyll::Filters::URLFilters requires `@context` to be set in the environment.
9
10
  @context = context
10
- attrs = attributes.map do |k, v|
11
- v = v.to_s unless v.respond_to?(:encode)
12
- %(#{k}=#{v.encode(:xml => :attr)})
13
- end
14
- "<link #{attrs.join(" ")} />"
15
- end
16
-
17
- private
18
-
19
- def config
20
- @config ||= @context.registers[:site].config
21
- end
22
11
 
23
- def attributes
24
- {
25
- :type => "application/atom+xml",
26
- :rel => "alternate",
27
- :href => absolute_url(path),
28
- :title => title,
29
- }.keep_if { |_, v| v }
30
- end
12
+ config = context.registers[:site].config
13
+ path = config.dig("feed", "path") || "feed.xml"
14
+ title = config["title"] || config["name"]
31
15
 
32
- def path
33
- config.dig("feed", "path") || "feed.xml"
34
- end
16
+ attributes = {
17
+ :type => "application/atom+xml",
18
+ :rel => "alternate",
19
+ :href => absolute_url(path),
20
+ }
21
+ attributes[:title] = title if title
35
22
 
36
- def title
37
- config["title"] || config["name"]
23
+ attrs = attributes.map { |k, v| "#{k}=#{v.to_s.encode(:xml => :attr)}" }.join(" ")
24
+ "<link #{attrs} />"
38
25
  end
39
26
  end
40
27
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Feed
5
- VERSION = "0.15.1"
5
+ VERSION = "0.17.0"
6
6
  end
7
7
  end
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.15.1
4
+ version: 0.17.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: 2020-10-04 00:00:00.000000000 Z
11
+ date: 2022-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '0.5'
95
+ version: 0.12.0
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.5'
102
+ version: 0.12.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: typhoeus
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -151,14 +151,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="
153
153
  - !ruby/object:Gem::Version
154
- version: 2.4.0
154
+ version: 2.5.0
155
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  requirements: []
161
- rubygems_version: 3.0.3
161
+ rubygems_version: 3.3.7
162
162
  signing_key:
163
163
  specification_version: 4
164
164
  summary: A Jekyll plugin to generate an Atom feed of your Jekyll posts