bridgetown-builder 1.1.0.beta1 → 1.1.0

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: 60efa769d64aab272bb16517ea5d4411312943547b5031ea104930fbafd425d1
4
- data.tar.gz: f78876a42486103772f292a57689a2f32cfdb520c2d5900b098b3a04a967a990
3
+ metadata.gz: b844c16c3959200386b85e0c9b24e9ceda416546c1c5143c0ee4baafb66112b4
4
+ data.tar.gz: e07d64aad3700b3ee79e66692755d75a7a7cdb483febb58228d5025fbce428a2
5
5
  SHA512:
6
- metadata.gz: cd8890f49fc3132664fdf22392bed9ea43ae1756979e85922baee85dd455ded4bd9cb01ac6ecb0c0bfdcdca8ddd882db4acb0fb1b3d9415f1906453bf7f23466
7
- data.tar.gz: 78d07a7e500fe002a3299edb0da04d75a7ba55c42d2f26406d3144a3be18f1ac5223f21ef8b8e9abf5700b70f4d5b7bc5b4767a9ec486227a0dd259a9e3a2df7
6
+ metadata.gz: 034dccebc509b960c3c183e1d963cf4aff2ab37259e168d88d542b8ae05a4bc52c23c3c5b802eebabfc3baabdeb4f0c9cba2eff0af0df13f314117907283d779
7
+ data.tar.gz: ebcb28861dfa0f1eef34b966d729e0ab98a30e04b211e406f52951cfb0c14801644d8b5a3bea9241bbb9da96cdfb2a9b97356bb2b50774b65667f8c960fb7478
@@ -10,9 +10,7 @@ module Bridgetown
10
10
 
11
11
  class << self
12
12
  def register
13
- Bridgetown::Hooks.register_one :site, :pre_read, reloadable: false do |site|
14
- new(name, site).build_with_callbacks
15
- end
13
+ Bridgetown::Builders::PluginBuilder.plugin_registrations << self
16
14
  end
17
15
 
18
16
  def before_build(*args, **kwargs, &block)
@@ -20,7 +20,7 @@ module Bridgetown
20
20
  # Are there inspectors available? Is it an .htm* file?
21
21
  def self.can_run?(resource, inspectors)
22
22
  inspectors &&
23
- resource.destination&.output_ext&.starts_with?(".htm") &&
23
+ resource.output_ext&.starts_with?(".htm") &&
24
24
  !resource.data.bypass_inspectors
25
25
  end
26
26
 
@@ -42,7 +42,7 @@ module Bridgetown
42
42
  module XML
43
43
  # Strip the resource's initial extension dot. `.rss` => `rss`
44
44
  def self.resource_ext(resource)
45
- resource.destination&.output_ext&.delete_prefix(".")
45
+ resource.output_ext&.delete_prefix(".")
46
46
  end
47
47
 
48
48
  # Are there any inspectors available which match the resource extension?
@@ -103,6 +103,12 @@ module Bridgetown
103
103
 
104
104
  resource.output = Inspectors.process_html(resource, @_html_inspectors)
105
105
  end
106
+
107
+ hook :generated_pages, :post_render do |page|
108
+ next unless HTML.can_run?(page, @_html_inspectors)
109
+
110
+ page.output = Inspectors.process_html(page, @_html_inspectors)
111
+ end
106
112
  end
107
113
 
108
114
  @_html_inspectors << block
@@ -123,6 +129,12 @@ module Bridgetown
123
129
 
124
130
  resource.output = Inspectors.process_xml(resource, @_xml_inspectors)
125
131
  end
132
+
133
+ hook :generated_pages, :post_render do |page|
134
+ next unless Inspectors::XML.can_run?(page, @_xml_inspectors)
135
+
136
+ page.output = Inspectors.process_xml(page, @_xml_inspectors)
137
+ end
126
138
  end
127
139
 
128
140
  (@_xml_inspectors[extension.to_s] ||= []).tap do |arr|
@@ -31,6 +31,12 @@ module Bridgetown
31
31
 
32
32
  attr_accessor :functions, :name, :site, :config
33
33
 
34
+ class << self
35
+ def plugin_registrations
36
+ @plugin_registrations ||= Set.new
37
+ end
38
+ end
39
+
34
40
  def initialize(name = nil, current_site = nil)
35
41
  self.functions = Set.new
36
42
  self.name = name || self.class.name
@@ -12,12 +12,14 @@ module Bridgetown
12
12
  end
13
13
 
14
14
  Bridgetown::Hooks.register_one :site, :pre_read, priority: :low, reloadable: false do |site|
15
+ builders = Bridgetown::Builders::PluginBuilder.plugin_registrations.to_a
16
+
15
17
  # SiteBuilder is the superclass sites can subclass to create any number of
16
18
  # builders, but if the site hasn't defined it explicitly, this is a no-op
17
- if defined?(SiteBuilder)
18
- SiteBuilder.descendants.sort.map do |c|
19
- c.new(c.name, site).build_with_callbacks
20
- end
19
+ builders += SiteBuilder.descendants if defined?(SiteBuilder)
20
+
21
+ builders.sort.map do |c|
22
+ c.new(c.name, site).build_with_callbacks
21
23
  end
22
24
  end
23
25
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.beta1
4
+ version: 1.1.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: 2022-06-02 00:00:00.000000000 Z
11
+ date: 2022-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bridgetown-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0.beta1
19
+ version: 1.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0.beta1
26
+ version: 1.1.0
27
27
  description:
28
28
  email: maintainers@bridgetownrb.com
29
29
  executables: []
@@ -58,9 +58,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
58
58
  version: '0'
59
59
  required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ">"
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 1.3.1
63
+ version: '0'
64
64
  requirements: []
65
65
  rubygems_version: 3.1.4
66
66
  signing_key: