jekyll-activity-pub 0.1.0rc6 → 0.1.0rc8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0432f12fa7b080bf6e5f77478fabe7c01a6919c77d1eeab8cf372bc6b1f1d417
4
- data.tar.gz: 1c3f751d9a0697390c080b32a7442bea666358f263587984917bb4cd63152ec2
3
+ metadata.gz: c3f40efde2e6c8e1756d287e7eba3dbc53ac5010024ca07334658080b245b8e8
4
+ data.tar.gz: 3cb0fb8eff21b13fdc2c56fb0ec62cc75d169927f0a946c090a53f748f3f13d3
5
5
  SHA512:
6
- metadata.gz: 0c281f24d8c8a64cf66cf73603f875d7559c33e8a1f25d194dc109aa413b2a2fb71418ee551ec7b2cb54df7a5e39631c23d3143ebe75bcb37ed586346195672e
7
- data.tar.gz: 26e16bf662476a96f34ec496a41de3d0bea267bd2b6016713608d055574487d274101d220ab9169d0da9031f5a3adad5919bcefaac86a6f9525d1fa4a2d21701
6
+ metadata.gz: 746d7a0037cf21fa1e3d0fb3e9c3e9a6494f80b74e4f4aee2e2fdbd771f11d9feb70fd3af04fa804142bdb38486a27f61adc04c2de169ee056f9e9143fd9c00c
7
+ data.tar.gz: 72a6457cbdfa9b2fb81a70c41b061e286a220f4d00d100d398a952dc52a269b15c5c47b77ce9ad13a7aea8506d87d35b4ee79b25c027db5e139483617bb12847
@@ -30,6 +30,16 @@ module Jekyll
30
30
  false
31
31
  end
32
32
 
33
+ # Avoid
34
+ def render_with_liquid?
35
+ false
36
+ end
37
+
38
+ # Avoid
39
+ def place_in_layout?
40
+ false
41
+ end
42
+
33
43
  # Trigger hooks
34
44
  #
35
45
  # @param :hook_name [Symbol]
@@ -16,8 +16,12 @@ module Jekyll
16
16
  # Needs to be a singleton so we can use the same data across all of
17
17
  # Jekyll's build process.
18
18
  class Notifier
19
- # An struct that responds to a #url method
20
- PseudoObject = Struct.new(:url, :data, keyword_init: true)
19
+ # An struct that behaves like a page
20
+ PseudoObject = Struct.new(:url, :data, :site, :relative_path, keyword_init: true) do
21
+ def destination(_)
22
+ site.in_dest_dir(relative_path)
23
+ end
24
+ end
21
25
 
22
26
  class << self
23
27
  # Set the site and initialize data
@@ -118,7 +122,7 @@ module Jekyll
118
122
  end.each do |object_url, status|
119
123
  path = site.in_dest_dir(object_url)
120
124
  data = JSON.parse(File.read(path)) if File.exist? path
121
- object = PseudoObject.new(url: object_url, data: data || {})
125
+ object = PseudoObject.new(url: object_url, site: site, relative_path: object_url, data: data || {})
122
126
  process_object(outbox_endpoint, actor_object, object, status)
123
127
  end
124
128
 
@@ -34,33 +34,44 @@ module Jekyll
34
34
  }
35
35
  end
36
36
 
37
- alias original_content content
37
+ # Sort items
38
+ #
39
+ # @return [nil]
40
+ def order_items!
41
+ data['orderedItems'].sort! do |a, b|
42
+ b.data['published'] <=> a.data['published']
43
+ end
44
+
45
+ nil
46
+ end
47
+
48
+ # Turn items to URLs
49
+ #
50
+ # @return [nil]
51
+ def items_to_links!
52
+ data['orderedItems'] = data['orderedItems'].map do |item|
53
+ item.data['id']
54
+ end
55
+
56
+ nil
57
+ end
38
58
 
39
59
  # Paginates the collection if it has too many activities
40
60
  #
41
- # @return [String]
42
- def content
43
- @content ||=
44
- begin
45
- order_items!
46
- items_to_links!
61
+ # @return [nil]
62
+ def paginate!
63
+ return if always_paginate? || paginable?
64
+ return if data['orderedItems'].empty?
47
65
 
48
- if !always_paginate? || !paginable?
49
- original_content
50
- elsif data['orderedItems'].empty?
51
- original_content
52
- else
53
- paged_data = data.dup
54
- pages = paginate(paged_data.delete('orderedItems'))
66
+ paged_data = data.dup
67
+ pages = paginate(paged_data.delete('orderedItems'))
55
68
 
56
- assign_links! pages
69
+ assign_links! pages
57
70
 
58
- paged_data['first'] = absolute_url(pages.first.url)
59
- paged_data['last'] = absolute_url(pages.last.url)
71
+ paged_data['first'] = absolute_url(pages.first.url)
72
+ paged_data['last'] = absolute_url(pages.last.url)
60
73
 
61
- paged_data.to_json
62
- end
63
- end
74
+ nil
64
75
  end
65
76
 
66
77
  private
@@ -127,21 +138,6 @@ module Jekyll
127
138
 
128
139
  nil
129
140
  end
130
-
131
- # Sort items
132
- #
133
- # @return [nil]
134
- def order_items!
135
- data['orderedItems'].sort! do |a, b|
136
- b.data['published'] <=> a.data['published']
137
- end
138
- end
139
-
140
- def items_to_links!
141
- data['orderedItems'] = data['orderedItems'].map do |item|
142
- item.data['id']
143
- end
144
- end
145
141
  end
146
142
  end
147
143
  end
@@ -104,3 +104,12 @@ Jekyll::Hooks.register(:site, :post_write, priority: :low) do |site|
104
104
 
105
105
  Jekyll::ActivityPub::Notifier.save
106
106
  end
107
+
108
+ # Paginate the outbox if needed
109
+ Jekyll::Hooks.register(:outbox, :pre_render) do |outbox|
110
+ next if site.config['activity_pub_disable']
111
+
112
+ outbox.order_items!
113
+ outbox.items_to_links!
114
+ outbox.paginate!
115
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-activity-pub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0rc6
4
+ version: 0.1.0rc8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sutty