bridgetown-feed 1.1.3 → 2.0.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/CHANGELOG.md +4 -0
- data/README.md +11 -1
- data/bridgetown-feed.gemspec +1 -1
- data/lib/bridgetown-feed.rb +1 -7
- data/lib/bridgetown-feed/builder.rb +49 -0
- data/lib/bridgetown-feed/feed.xml +6 -1
- data/lib/bridgetown-feed/generator.rb +1 -1
- data/lib/bridgetown-feed/version.rb +1 -1
- metadata +5 -6
- data/lib/bridgetown-feed/meta-tag.rb +0 -41
- data/lib/bridgetown-feed/page-without-a-file.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a054cdb820ee742185d8cdebee2be24f370d700bcae60a1f7ebcc6876d4fb17
|
4
|
+
data.tar.gz: 6751bba99b04610e7bf54d82cd9945da7edce9c7a981a80947433cdda6216744
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 545c964c4927c414c9fe11e9f38e1e5f86930c5dc93a0cc2ea09f78dc008aa8eedb0df6d0c37014132988506984c74b7fc7193226a5a0265a548f6799752066d
|
7
|
+
data.tar.gz: b41d66e8c0dcbd6e9adc14ad4a4db0785ab21980a61f8ac42c595c3faf81142361dd41dd7291e73524286b864c391759e62354791fdbfc1370dbc551bae68768
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -18,7 +18,17 @@ gem 'bridgetown-feed', group: "bridgetown_plugins"
|
|
18
18
|
|
19
19
|
The plugin exposes a helper tag to expose the appropriate meta tags to support automated discovery of your feed.
|
20
20
|
|
21
|
-
Simply place `
|
21
|
+
Simply place `feed_meta` someplace in your layout's `<head>` section to output the necessary metadata.
|
22
|
+
|
23
|
+
```liquid
|
24
|
+
<!-- layout.liquid -->
|
25
|
+
{% feed_meta %}
|
26
|
+
```
|
27
|
+
|
28
|
+
```erb
|
29
|
+
<!-- layout.erb -->
|
30
|
+
<%= feed_meta %>
|
31
|
+
```
|
22
32
|
|
23
33
|
### Atom is nice and all, but what about JSON Feed?
|
24
34
|
|
data/bridgetown-feed.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
|
18
18
|
spec.required_ruby_version = ">= 2.5.0"
|
19
19
|
|
20
|
-
spec.add_dependency "bridgetown", ">= 0.
|
20
|
+
spec.add_dependency "bridgetown", ">= 0.20", "< 2.0"
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler"
|
23
23
|
spec.add_development_dependency "nokogiri", "~> 1.6"
|
data/lib/bridgetown-feed.rb
CHANGED
@@ -2,11 +2,5 @@
|
|
2
2
|
|
3
3
|
require "bridgetown"
|
4
4
|
require "fileutils"
|
5
|
+
require "bridgetown-feed/builder"
|
5
6
|
require "bridgetown-feed/generator"
|
6
|
-
|
7
|
-
module BridgetownFeed
|
8
|
-
autoload :MetaTag, "bridgetown-feed/meta-tag"
|
9
|
-
autoload :PageWithoutAFile, "bridgetown-feed/page-without-a-file.rb"
|
10
|
-
end
|
11
|
-
|
12
|
-
Liquid::Template.register_tag "feed_meta", BridgetownFeed::MetaTag
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BridgetownFeed
|
4
|
+
class Builder < Bridgetown::Builder
|
5
|
+
include Bridgetown::Filters::URLFilters
|
6
|
+
Context = Struct.new(:registers)
|
7
|
+
|
8
|
+
def build
|
9
|
+
@context = Context.new({ site: site })
|
10
|
+
helper "feed_meta", :generate_link_tag
|
11
|
+
liquid_tag "feed_meta", :generate_link_tag
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_link_tag(*)
|
15
|
+
attrs = attributes.map { |k, v| %(#{k}="#{v}") }.join(" ")
|
16
|
+
tag_output = "<link #{attrs} />"
|
17
|
+
tag_output.respond_to?(:html_safe) ? tag_output.html_safe : tag_output
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def config
|
23
|
+
@config ||= site.config
|
24
|
+
end
|
25
|
+
|
26
|
+
def metadata
|
27
|
+
@metadata ||= site.data["site_metadata"]
|
28
|
+
end
|
29
|
+
|
30
|
+
def attributes
|
31
|
+
{
|
32
|
+
type: "application/atom+xml",
|
33
|
+
rel: "alternate",
|
34
|
+
href: absolute_url(path),
|
35
|
+
title: title,
|
36
|
+
}.keep_if { |_, v| v }
|
37
|
+
end
|
38
|
+
|
39
|
+
def path
|
40
|
+
config.dig("feed", "path") || "feed.xml"
|
41
|
+
end
|
42
|
+
|
43
|
+
def title
|
44
|
+
metadata["title"] || metadata["name"]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
BridgetownFeed::Builder.register
|
@@ -39,7 +39,12 @@
|
|
39
39
|
</author>
|
40
40
|
{% endif %}
|
41
41
|
|
42
|
-
{% assign
|
42
|
+
{% assign feed_collection = collections[page.collection] %}
|
43
|
+
{% if site.uses_resource %}
|
44
|
+
{% find posts where feed_collection.resources, draft != true %}
|
45
|
+
{% else %}
|
46
|
+
{% assign posts = feed_collection.docs | where_exp: "post", "post.draft != true" | sort: "date" | reverse %}
|
47
|
+
{% endif %}
|
43
48
|
{% if page.category %}
|
44
49
|
{% assign posts = posts | where: "category",page.category %}
|
45
50
|
{% endif %}
|
@@ -85,7 +85,7 @@ module BridgetownFeed
|
|
85
85
|
# Generates contents for a file
|
86
86
|
|
87
87
|
def make_page(file_path, collection: "posts", category: nil)
|
88
|
-
|
88
|
+
Bridgetown::GeneratedPage.new(@site, __dir__, "", file_path, from_plugin: true).tap do |file|
|
89
89
|
file.content = feed_template
|
90
90
|
file.data.merge!(
|
91
91
|
"layout" => "none",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bridgetown-feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bridgetown
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.20'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2.0'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0.
|
29
|
+
version: '0.20'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2.0'
|
@@ -136,10 +136,9 @@ files:
|
|
136
136
|
- Rakefile
|
137
137
|
- bridgetown-feed.gemspec
|
138
138
|
- lib/bridgetown-feed.rb
|
139
|
+
- lib/bridgetown-feed/builder.rb
|
139
140
|
- lib/bridgetown-feed/feed.xml
|
140
141
|
- lib/bridgetown-feed/generator.rb
|
141
|
-
- lib/bridgetown-feed/meta-tag.rb
|
142
|
-
- lib/bridgetown-feed/page-without-a-file.rb
|
143
142
|
- lib/bridgetown-feed/version.rb
|
144
143
|
homepage: https://github.com/bridgetownrb/bridgetown-feed
|
145
144
|
licenses:
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module BridgetownFeed
|
4
|
-
class MetaTag < Liquid::Tag
|
5
|
-
# Use Bridgetown's native relative_url filter
|
6
|
-
include Bridgetown::Filters::URLFilters
|
7
|
-
|
8
|
-
def render(context)
|
9
|
-
@context = context
|
10
|
-
attrs = attributes.map { |k, v| %(#{k}="#{v}") }.join(" ")
|
11
|
-
"<link #{attrs} />"
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def config
|
17
|
-
@config ||= @context.registers[:site].config
|
18
|
-
end
|
19
|
-
|
20
|
-
def metadata
|
21
|
-
@metadata ||= @context.registers[:site].data["site_metadata"]
|
22
|
-
end
|
23
|
-
|
24
|
-
def attributes
|
25
|
-
{
|
26
|
-
type: "application/atom+xml",
|
27
|
-
rel: "alternate",
|
28
|
-
href: absolute_url(path),
|
29
|
-
title: title,
|
30
|
-
}.keep_if { |_, v| v }
|
31
|
-
end
|
32
|
-
|
33
|
-
def path
|
34
|
-
config.dig("feed", "path") || "feed.xml"
|
35
|
-
end
|
36
|
-
|
37
|
-
def title
|
38
|
-
metadata["title"] || metadata["name"]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|