bridgetown-core 0.12.0 → 0.15.0.beta1

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -1
  3. data/bin/bridgetown +9 -48
  4. data/bridgetown-core.gemspec +10 -5
  5. data/lib/bridgetown-core.rb +20 -4
  6. data/lib/bridgetown-core/cleaner.rb +1 -0
  7. data/lib/bridgetown-core/commands/apply.rb +73 -0
  8. data/lib/bridgetown-core/commands/base.rb +45 -0
  9. data/lib/bridgetown-core/commands/build.rb +91 -86
  10. data/lib/bridgetown-core/commands/clean.rb +30 -29
  11. data/lib/bridgetown-core/commands/concerns/actions.rb +95 -0
  12. data/lib/bridgetown-core/commands/concerns/build_options.rb +76 -0
  13. data/lib/bridgetown-core/commands/concerns/configuration_overridable.rb +18 -0
  14. data/lib/bridgetown-core/commands/concerns/summarizable.rb +13 -0
  15. data/lib/bridgetown-core/commands/console.rb +46 -38
  16. data/lib/bridgetown-core/commands/doctor.rb +125 -135
  17. data/lib/bridgetown-core/commands/new.rb +120 -158
  18. data/lib/bridgetown-core/commands/plugins.rb +206 -0
  19. data/lib/bridgetown-core/commands/registrations.rb +16 -0
  20. data/lib/bridgetown-core/commands/serve.rb +214 -217
  21. data/lib/bridgetown-core/{convertible.rb → concerns/convertible.rb} +2 -2
  22. data/lib/bridgetown-core/concerns/site/configurable.rb +153 -0
  23. data/lib/bridgetown-core/concerns/site/content.rb +111 -0
  24. data/lib/bridgetown-core/concerns/site/extensible.rb +56 -0
  25. data/lib/bridgetown-core/concerns/site/processable.rb +74 -0
  26. data/lib/bridgetown-core/concerns/site/renderable.rb +50 -0
  27. data/lib/bridgetown-core/concerns/site/writable.rb +31 -0
  28. data/lib/bridgetown-core/configuration.rb +98 -108
  29. data/lib/bridgetown-core/converters/markdown/kramdown_parser.rb +0 -3
  30. data/lib/bridgetown-core/document.rb +1 -1
  31. data/lib/bridgetown-core/drops/bridgetown_drop.rb +6 -1
  32. data/lib/bridgetown-core/drops/site_drop.rb +1 -2
  33. data/lib/bridgetown-core/external.rb +17 -21
  34. data/lib/bridgetown-core/filters.rb +10 -0
  35. data/lib/bridgetown-core/generators/prototype_generator.rb +3 -1
  36. data/lib/bridgetown-core/hooks.rb +62 -62
  37. data/lib/bridgetown-core/layout.rb +10 -4
  38. data/lib/bridgetown-core/liquid_renderer.rb +2 -0
  39. data/lib/bridgetown-core/liquid_renderer/file_system.rb +5 -1
  40. data/lib/bridgetown-core/page.rb +9 -2
  41. data/lib/bridgetown-core/plugin.rb +2 -0
  42. data/lib/bridgetown-core/plugin_manager.rb +68 -14
  43. data/lib/bridgetown-core/reader.rb +5 -0
  44. data/lib/bridgetown-core/readers/data_reader.rb +15 -2
  45. data/lib/bridgetown-core/readers/layout_reader.rb +9 -2
  46. data/lib/bridgetown-core/readers/plugin_content_reader.rb +48 -0
  47. data/lib/bridgetown-core/renderer.rb +51 -32
  48. data/lib/bridgetown-core/site.rb +20 -449
  49. data/lib/bridgetown-core/static_file.rb +1 -5
  50. data/lib/bridgetown-core/tags/include.rb +12 -0
  51. data/lib/bridgetown-core/tags/render_content.rb +27 -16
  52. data/lib/bridgetown-core/tags/with.rb +15 -0
  53. data/lib/bridgetown-core/utils.rb +2 -27
  54. data/lib/bridgetown-core/utils/ruby_exec.rb +66 -0
  55. data/lib/bridgetown-core/version.rb +2 -2
  56. data/lib/bridgetown-core/watcher.rb +21 -10
  57. data/lib/site_template/Gemfile.erb +19 -0
  58. data/lib/site_template/plugins/{.keep → builders/.keep} +0 -0
  59. data/lib/site_template/plugins/site_builder.rb +4 -0
  60. data/lib/site_template/src/_components/footer.html +3 -0
  61. data/lib/site_template/src/_components/head.html +9 -0
  62. data/lib/site_template/src/{_includes → _components}/navbar.html +1 -0
  63. data/lib/site_template/src/_layouts/default.html +3 -3
  64. data/lib/site_template/src/{_components/.keep → favicon.ico} +0 -0
  65. data/lib/site_template/src/posts.md +15 -0
  66. data/lib/site_template/start.js +1 -1
  67. metadata +107 -19
  68. data/lib/bridgetown-core/command.rb +0 -106
  69. data/lib/bridgetown-core/commands/help.rb +0 -34
  70. data/lib/site_template/src/_includes/footer.html +0 -3
  71. data/lib/site_template/src/_includes/head.html +0 -9
@@ -186,11 +186,7 @@ module Bridgetown
186
186
  private
187
187
 
188
188
  def copy_file(dest_path)
189
- if Bridgetown.env == "production"
190
- FileUtils.cp(path, dest_path)
191
- else
192
- FileUtils.copy_entry(path, dest_path)
193
- end
189
+ FileUtils.copy_entry(path, dest_path)
194
190
 
195
191
  unless File.symlink?(dest_path)
196
192
  File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
@@ -3,6 +3,10 @@
3
3
  module Bridgetown
4
4
  module Tags
5
5
  class IncludeTag < Liquid::Tag
6
+ class << self
7
+ attr_accessor :deprecation_message_shown
8
+ end
9
+
6
10
  VALID_SYNTAX = %r!
7
11
  ([\w-]+)\s*=\s*
8
12
  (?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.-]+))
@@ -18,6 +22,14 @@ module Bridgetown
18
22
 
19
23
  def initialize(tag_name, markup, tokens)
20
24
  super
25
+
26
+ unless self.class.deprecation_message_shown
27
+ Bridgetown.logger.warn "NOTICE: the {% include %} tag is deprecated and" \
28
+ " will be removed in Bridgetown 1.0. You should" \
29
+ " use the {% render %} tag instead."
30
+ self.class.deprecation_message_shown = true
31
+ end
32
+
21
33
  matched = markup.strip.match(VARIABLE_SYNTAX)
22
34
  if matched
23
35
  @file = matched["variable"].strip
@@ -3,27 +3,38 @@
3
3
  module Bridgetown
4
4
  module Tags
5
5
  class BlockRenderTag < Liquid::Block
6
- def initialize(tag_name, markup, options)
7
- super
6
+ def render(context)
7
+ context.stack({}) do
8
+ content = super.gsub(%r!^[ \t]+!, "") # unindent the incoming text
9
+ regions = gather_content_regions(context)
8
10
 
9
- @tag = tag_name
10
- @markup = markup
11
- @options = options
12
- end
11
+ site = context.registers[:site]
12
+ converter = site.find_converter_instance(Bridgetown::Converters::Markdown)
13
+ markdownified_content = converter.convert(content)
14
+ context["processed_component_content"] = markdownified_content
13
15
 
14
- def render(context)
15
- content = super.gsub(%r!^[ \t]+!, "") # unindent the incoming text
16
+ render_params = [@markup, "content: processed_component_content"]
17
+ unless regions.empty?
18
+ regions.each do |region_name, region_content|
19
+ region_name = region_name.sub("content_with_region_", "")
20
+ context[region_name] = converter.convert(region_content.gsub(%r!^[ \t]+!, ""))
21
+ render_params.push "#{region_name}: #{region_name}"
22
+ end
23
+ end
16
24
 
17
- site = context.registers[:site]
18
- converter = site.find_converter_instance(Bridgetown::Converters::Markdown)
19
- markdownified_content = converter.convert(content)
25
+ Liquid::Render.parse("render", render_params.join(","), nil, @parse_context)
26
+ .render_tag(context, +"")
27
+ end
28
+ end
29
+
30
+ private
20
31
 
21
- context.stack do
22
- context["componentcontent"] = markdownified_content
23
- render_params = "#{@markup}, content: componentcontent"
24
- render_tag = Liquid::Render.parse("render", render_params, @options, @parse_context)
25
- render_tag.render_tag(context, +"")
32
+ def gather_content_regions(context)
33
+ unless context.scopes[0].keys.find { |k| k.to_s.start_with? "content_with_region_" }
34
+ return {}
26
35
  end
36
+
37
+ context.scopes[0].select { |k| k.to_s.start_with? "content_with_region_" }
27
38
  end
28
39
  end
29
40
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Tags
5
+ class WithTag < Liquid::Block
6
+ def render(context)
7
+ region_name = @markup.strip
8
+ context["content_with_region_#{region_name}"] = super
9
+ ""
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ Liquid::Template.register_tag("with", Bridgetown::Tags::WithTag)
@@ -6,6 +6,7 @@ module Bridgetown
6
6
  autoload :Ansi, "bridgetown-core/utils/ansi"
7
7
  autoload :Exec, "bridgetown-core/utils/exec"
8
8
  autoload :Internet, "bridgetown-core/utils/internet"
9
+ autoload :RubyExec, "bridgetown-core/utils/ruby_exec"
9
10
  autoload :Platforms, "bridgetown-core/utils/platforms"
10
11
  autoload :ThreadEvent, "bridgetown-core/utils/thread_event"
11
12
  autoload :WinTZ, "bridgetown-core/utils/win_tz"
@@ -19,7 +20,7 @@ module Bridgetown
19
20
 
20
21
  # Takes a slug and turns it into a simple title.
21
22
  def titleize_slug(slug)
22
- slug.split("-").map!(&:capitalize).join(" ")
23
+ slug.gsub(%r![_ ]!, "-").split("-").map!(&:capitalize).join(" ")
23
24
  end
24
25
 
25
26
  # Non-destructive version of deep_merge_hashes! See that method.
@@ -94,32 +95,6 @@ module Bridgetown
94
95
  end
95
96
  end
96
97
 
97
- def transform_keys(hash)
98
- result = {}
99
- hash.each_key do |key|
100
- result[yield(key)] = hash[key]
101
- end
102
- result
103
- end
104
-
105
- # Apply #to_sym to all keys in the hash
106
- #
107
- # hash - the hash to which to apply this transformation
108
- #
109
- # Returns a new hash with symbolized keys
110
- def symbolize_hash_keys(hash)
111
- transform_keys(hash) { |key| key.to_sym rescue key }
112
- end
113
-
114
- # Apply #to_s to all keys in the Hash
115
- #
116
- # hash - the hash to which to apply this transformation
117
- #
118
- # Returns a new hash with stringified keys
119
- def stringify_hash_keys(hash)
120
- transform_keys(hash) { |key| key.to_s rescue key }
121
- end
122
-
123
98
  # Parse a date/time and throw an error if invalid
124
99
  #
125
100
  # input - the date/time to parse
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Utils
5
+ module RubyExec
6
+ extend self
7
+
8
+ # rubocop:disable Metrics/AbcSize
9
+ def search_data_for_ruby_code(convertible, renderer)
10
+ return if convertible.data.empty?
11
+
12
+ # Iterate using `keys` here so inline Ruby script can add new data keys
13
+ # if necessary without an error
14
+ data_keys = convertible.data.keys
15
+ data_keys.each do |k|
16
+ v = convertible.data[k]
17
+ next unless v.is_a?(Rb) || v.is_a?(Hash)
18
+
19
+ if v.is_a?(Hash)
20
+ v.each do |nested_k, nested_v|
21
+ next unless nested_v.is_a?(Rb)
22
+
23
+ Bridgetown.logger.warn("Executing inline Ruby…", convertible.relative_path)
24
+ convertible.data[k][nested_k] = run(nested_v, convertible, renderer)
25
+ Bridgetown.logger.warn("Inline Ruby completed!", convertible.relative_path)
26
+ end
27
+ else
28
+ Bridgetown.logger.warn("Executing inline Ruby…", convertible.relative_path)
29
+ convertible.data[k] = run(v, convertible, renderer)
30
+ Bridgetown.logger.warn("Inline Ruby completed!", convertible.relative_path)
31
+ end
32
+ end
33
+ end
34
+ # rubocop:enable Metrics/AbcSize
35
+
36
+ # Sets up a new context in which to eval Ruby coming from front matter.
37
+ #
38
+ # ruby_code - a string of code
39
+ # convertible - the Document/Page/Layout with the Ruby front matter
40
+ # renderer - the Renderer instance that's processing the document (optional)
41
+ #
42
+ # Returns the transformed output of the code
43
+ def run(ruby_code, convertible, renderer)
44
+ return unless ruby_code.is_a?(Rb)
45
+
46
+ klass = Class.new
47
+ obj = klass.new
48
+
49
+ if convertible.is_a?(Layout)
50
+ klass.attr_accessor :layout, :site, :data
51
+ obj.layout = convertible
52
+ else
53
+ klass.attr_accessor :document, :page, :renderer, :site, :data
54
+ obj.document = obj.page = convertible
55
+ obj.renderer = renderer
56
+ end
57
+ obj.site = convertible.site
58
+ obj.data = convertible.data
59
+
60
+ # This is where the magic happens! DON'T BE EVIL!!! ;-)
61
+ output = obj.instance_eval(ruby_code)
62
+ output.is_a?(Hash) ? output.with_indifferent_access : output
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "0.12.0"
5
- CODE_NAME = "Lovejoy"
4
+ VERSION = "0.15.0.beta1"
5
+ CODE_NAME = "Overlook"
6
6
  end
@@ -39,16 +39,21 @@ module Bridgetown
39
39
  def build_listener(site, options)
40
40
  webpack_path = site.in_root_dir(".bridgetown-webpack")
41
41
  FileUtils.mkdir(webpack_path) unless Dir.exist?(webpack_path)
42
+ plugin_paths_to_watch = site.plugin_manager.plugins_path.select do |path|
43
+ Dir.exist?(path)
44
+ end
45
+
42
46
  Listen.to(
43
47
  options["source"],
44
- site.in_root_dir(".bridgetown-webpack"),
48
+ webpack_path,
49
+ *plugin_paths_to_watch,
45
50
  ignore: listen_ignore_paths(options),
46
51
  force_polling: options["force_polling"],
47
- &listen_handler(site)
52
+ &listen_handler(site, options)
48
53
  )
49
54
  end
50
55
 
51
- def listen_handler(site)
56
+ def listen_handler(site, options)
52
57
  proc do |modified, added, removed|
53
58
  t = Time.now
54
59
  c = modified + added + removed
@@ -58,7 +63,7 @@ module Bridgetown
58
63
  Bridgetown.logger.info "", "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")}"
59
64
 
60
65
  c.each { |path| Bridgetown.logger.info "", path["#{site.root_dir}/".length..-1] }
61
- process(site, t)
66
+ process(site, t, options)
62
67
  end
63
68
  end
64
69
 
@@ -94,7 +99,6 @@ module Bridgetown
94
99
  # options - A Hash of options passed to the command
95
100
  #
96
101
  # Returns a list of relative paths from source that should be ignored
97
- # rubocop: disable Metrics/AbcSize
98
102
  def listen_ignore_paths(options)
99
103
  source = Pathname.new(options["source"]).expand_path
100
104
  paths = to_exclude(options)
@@ -116,20 +120,27 @@ module Bridgetown
116
120
  end
117
121
  end.compact + [%r!^\.bridgetown\-metadata!]
118
122
  end
119
- # rubocop:enable Metrics/AbcSize
120
123
 
121
124
  def sleep_forever
122
125
  loop { sleep 1000 }
123
126
  end
124
127
 
125
- def process(site, time)
128
+ def process(site, time, options)
126
129
  begin
130
+ Bridgetown::Hooks.trigger :site, :pre_reload, site
131
+ Bridgetown::Hooks.clear_reloadable_hooks
132
+ site.plugin_manager.reload_plugin_files
127
133
  site.process
128
134
  Bridgetown.logger.info "Done! 🎉", "#{"Completed".green} in less than" \
129
135
  " #{(Time.now - time).ceil(2)} seconds."
130
- rescue StandardError => e
131
- Bridgetown.logger.warn "Error:", e.message
132
- Bridgetown.logger.warn "Error:", "Run bridgetown build --trace for more information."
136
+ rescue Exception => e
137
+ Bridgetown.logger.error "Error:", e.message
138
+
139
+ if options[:trace]
140
+ Bridgetown.logger.info e.backtrace.join("\n")
141
+ else
142
+ Bridgetown.logger.warn "Error:", "Use the --trace option for more information."
143
+ end
133
144
  end
134
145
  Bridgetown.logger.info ""
135
146
  end
@@ -0,0 +1,19 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ # Hello! This is where you manage which Bridgetown version is used to run.
5
+ # When you want to use a different version, change it below, save the
6
+ # file and run `bundle install`. Run Bridgetown with `bundle exec`, like so:
7
+ #
8
+ # bundle exec bridgetown serve
9
+ #
10
+ # This will help ensure the proper Bridgetown version is running.
11
+ #
12
+ # To install a plugin, simply run bundle add and specify the group
13
+ # "bridgetown_plugins". For example:
14
+ #
15
+ # bundle add some-new-plugin -g bridgetown_plugins
16
+ #
17
+ # Happy Bridgetowning!
18
+
19
+ gem "bridgetown", "~> <%= Bridgetown::VERSION %>"
@@ -0,0 +1,4 @@
1
+ class SiteBuilder < Bridgetown::Builder
2
+ # write builders which subclass SiteBuilder in plugins/builder
3
+ end
4
+
@@ -0,0 +1,3 @@
1
+ <footer>
2
+ Contact me at {{ metadata.email }}
3
+ </footer>
@@ -0,0 +1,9 @@
1
+ <meta charset="utf-8" />
2
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3
+ {% capture page_title %}{{ title | strip_html | strip_newlines }}{% endcapture %}
4
+ <title>{% if page_title != "" %}{{ page_title | escape }} | {{ metadata.title | escape }}{% else %}{{ metadata.title | escape }}: {{ metadata.tagline | escape }}{% endif %}</title>
5
+
6
+ <meta name="description" content="{{ metadata.description }}" />
7
+
8
+ <link rel="stylesheet" href="{% webpack_path css %}" />
9
+ <script src="{% webpack_path js %}" defer></script>
@@ -1,4 +1,5 @@
1
1
  <nav>
2
2
  <a href="/">Home</a>
3
3
  <a href="/about">About</a>
4
+ <a href="/posts">Posts</a>
4
5
  </nav>
@@ -1,15 +1,15 @@
1
1
  <!doctype html>
2
2
  <html lang="en">
3
3
  <head>
4
- {% include head.html %}
4
+ {% render "head", metadata: site.metadata, title: page.title %}
5
5
  </head>
6
6
  <body class="{{ page.layout }} {{ page.page_class }}">
7
- {% include navbar.html %}
7
+ {% render "navbar" %}
8
8
 
9
9
  <main>
10
10
  {{ content }}
11
11
  </main>
12
12
 
13
- {% include footer.html %}
13
+ {% render "footer", metadata: site.metadata %}
14
14
  </body>
15
15
  </html>
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: page
3
+ title: Posts
4
+ permalink: /posts/
5
+ ---
6
+
7
+ <ul>
8
+ {% for post in site.posts %}
9
+ <li>
10
+ <a href="{{ post.url }}">{{ post.title }}</a>
11
+ </li>
12
+ {% endfor %}
13
+ </ul>
14
+
15
+ If you have a lot of posts, you may want to consider adding [pagination](https://www.bridgetownrb.com/docs/content/pagination)!
@@ -14,4 +14,4 @@ concurrently([
14
14
  ], {
15
15
  restartTries: 3,
16
16
  killOthers: ['failure', 'success'],
17
- }).then(() => {}, () => {});
17
+ }).then(() => { console.log("Done.");console.log('\033[0G'); }, () => {});
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.15.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-27 00:00:00.000000000 Z
11
+ date: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '6.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: addressable
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,34 @@ dependencies:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday_middleware
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
41
83
  - !ruby/object:Gem::Dependency
42
84
  name: i18n
43
85
  requirement: !ruby/object:Gem::Requirement
@@ -95,33 +137,47 @@ dependencies:
95
137
  - !ruby/object:Gem::Version
96
138
  version: '4.0'
97
139
  - !ruby/object:Gem::Dependency
98
- name: listen
140
+ name: liquid-component
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0.1'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: liquid-render-tag
99
155
  requirement: !ruby/object:Gem::Requirement
100
156
  requirements:
101
157
  - - "~>"
102
158
  - !ruby/object:Gem::Version
103
- version: '3.0'
159
+ version: '0.2'
104
160
  type: :runtime
105
161
  prerelease: false
106
162
  version_requirements: !ruby/object:Gem::Requirement
107
163
  requirements:
108
164
  - - "~>"
109
165
  - !ruby/object:Gem::Version
110
- version: '3.0'
166
+ version: '0.2'
111
167
  - !ruby/object:Gem::Dependency
112
- name: mercenary
168
+ name: listen
113
169
  requirement: !ruby/object:Gem::Requirement
114
170
  requirements:
115
171
  - - "~>"
116
172
  - !ruby/object:Gem::Version
117
- version: 0.4.0
173
+ version: '3.0'
118
174
  type: :runtime
119
175
  prerelease: false
120
176
  version_requirements: !ruby/object:Gem::Requirement
121
177
  requirements:
122
178
  - - "~>"
123
179
  - !ruby/object:Gem::Version
124
- version: 0.4.0
180
+ version: '3.0'
125
181
  - !ruby/object:Gem::Dependency
126
182
  name: pathutil
127
183
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +234,20 @@ dependencies:
178
234
  - - "~>"
179
235
  - !ruby/object:Gem::Version
180
236
  version: '1.8'
237
+ - !ruby/object:Gem::Dependency
238
+ name: thor
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '1.0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1.0'
181
251
  description: Bridgetown is a Webpack-aware, Ruby-powered static site generator for
182
252
  the modern Jamstack era
183
253
  email: maintainers@bridgetownrb.com
@@ -193,22 +263,34 @@ files:
193
263
  - lib/bridgetown-core/cache.rb
194
264
  - lib/bridgetown-core/cleaner.rb
195
265
  - lib/bridgetown-core/collection.rb
196
- - lib/bridgetown-core/command.rb
266
+ - lib/bridgetown-core/commands/apply.rb
267
+ - lib/bridgetown-core/commands/base.rb
197
268
  - lib/bridgetown-core/commands/build.rb
198
269
  - lib/bridgetown-core/commands/clean.rb
270
+ - lib/bridgetown-core/commands/concerns/actions.rb
271
+ - lib/bridgetown-core/commands/concerns/build_options.rb
272
+ - lib/bridgetown-core/commands/concerns/configuration_overridable.rb
273
+ - lib/bridgetown-core/commands/concerns/summarizable.rb
199
274
  - lib/bridgetown-core/commands/console.rb
200
275
  - lib/bridgetown-core/commands/doctor.rb
201
- - lib/bridgetown-core/commands/help.rb
202
276
  - lib/bridgetown-core/commands/new.rb
277
+ - lib/bridgetown-core/commands/plugins.rb
278
+ - lib/bridgetown-core/commands/registrations.rb
203
279
  - lib/bridgetown-core/commands/serve.rb
204
280
  - lib/bridgetown-core/commands/serve/servlet.rb
281
+ - lib/bridgetown-core/concerns/convertible.rb
282
+ - lib/bridgetown-core/concerns/site/configurable.rb
283
+ - lib/bridgetown-core/concerns/site/content.rb
284
+ - lib/bridgetown-core/concerns/site/extensible.rb
285
+ - lib/bridgetown-core/concerns/site/processable.rb
286
+ - lib/bridgetown-core/concerns/site/renderable.rb
287
+ - lib/bridgetown-core/concerns/site/writable.rb
205
288
  - lib/bridgetown-core/configuration.rb
206
289
  - lib/bridgetown-core/converter.rb
207
290
  - lib/bridgetown-core/converters/identity.rb
208
291
  - lib/bridgetown-core/converters/markdown.rb
209
292
  - lib/bridgetown-core/converters/markdown/kramdown_parser.rb
210
293
  - lib/bridgetown-core/converters/smartypants.rb
211
- - lib/bridgetown-core/convertible.rb
212
294
  - lib/bridgetown-core/deprecator.rb
213
295
  - lib/bridgetown-core/document.rb
214
296
  - lib/bridgetown-core/drops/bridgetown_drop.rb
@@ -253,6 +335,7 @@ files:
253
335
  - lib/bridgetown-core/readers/data_reader.rb
254
336
  - lib/bridgetown-core/readers/layout_reader.rb
255
337
  - lib/bridgetown-core/readers/page_reader.rb
338
+ - lib/bridgetown-core/readers/plugin_content_reader.rb
256
339
  - lib/bridgetown-core/readers/post_reader.rb
257
340
  - lib/bridgetown-core/readers/static_file_reader.rb
258
341
  - lib/bridgetown-core/regenerator.rb
@@ -266,46 +349,51 @@ files:
266
349
  - lib/bridgetown-core/tags/post_url.rb
267
350
  - lib/bridgetown-core/tags/render_content.rb
268
351
  - lib/bridgetown-core/tags/webpack_path.rb
352
+ - lib/bridgetown-core/tags/with.rb
269
353
  - lib/bridgetown-core/url.rb
270
354
  - lib/bridgetown-core/utils.rb
271
355
  - lib/bridgetown-core/utils/ansi.rb
272
356
  - lib/bridgetown-core/utils/exec.rb
273
357
  - lib/bridgetown-core/utils/internet.rb
274
358
  - lib/bridgetown-core/utils/platforms.rb
359
+ - lib/bridgetown-core/utils/ruby_exec.rb
275
360
  - lib/bridgetown-core/utils/thread_event.rb
276
361
  - lib/bridgetown-core/utils/win_tz.rb
277
362
  - lib/bridgetown-core/version.rb
278
363
  - lib/bridgetown-core/watcher.rb
279
364
  - lib/site_template/.gitignore
365
+ - lib/site_template/Gemfile.erb
280
366
  - lib/site_template/bridgetown.config.yml
281
367
  - lib/site_template/frontend/javascript/index.js
282
368
  - lib/site_template/frontend/styles/index.scss
283
369
  - lib/site_template/package.json
284
- - lib/site_template/plugins/.keep
370
+ - lib/site_template/plugins/builders/.keep
371
+ - lib/site_template/plugins/site_builder.rb
285
372
  - lib/site_template/src/404.html
286
- - lib/site_template/src/_components/.keep
373
+ - lib/site_template/src/_components/footer.html
374
+ - lib/site_template/src/_components/head.html
375
+ - lib/site_template/src/_components/navbar.html
287
376
  - lib/site_template/src/_data/site_metadata.yml
288
- - lib/site_template/src/_includes/footer.html
289
- - lib/site_template/src/_includes/head.html
290
- - lib/site_template/src/_includes/navbar.html
291
377
  - lib/site_template/src/_layouts/default.html
292
378
  - lib/site_template/src/_layouts/home.html
293
379
  - lib/site_template/src/_layouts/page.html
294
380
  - lib/site_template/src/_layouts/post.html
295
381
  - lib/site_template/src/_posts/0000-00-00-welcome-to-bridgetown.md.erb
296
382
  - lib/site_template/src/about.md
383
+ - lib/site_template/src/favicon.ico
297
384
  - lib/site_template/src/index.md
385
+ - lib/site_template/src/posts.md
298
386
  - lib/site_template/start.js
299
387
  - lib/site_template/sync.js
300
388
  - lib/site_template/webpack.config.js
301
- homepage: https://bridgetownrb.com
389
+ homepage: https://www.bridgetownrb.com
302
390
  licenses:
303
391
  - MIT
304
392
  metadata:
305
393
  source_code_uri: https://github.com/bridgetownrb/bridgetown
306
394
  bug_tracker_uri: https://github.com/bridgetownrb/bridgetown/issues
307
395
  changelog_uri: https://github.com/bridgetownrb/bridgetown/releases
308
- homepage_uri: https://bridgetownrb.com
396
+ homepage_uri: https://www.bridgetownrb.com
309
397
  post_install_message:
310
398
  rdoc_options:
311
399
  - "--charset=UTF-8"
@@ -315,7 +403,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
315
403
  requirements:
316
404
  - - ">="
317
405
  - !ruby/object:Gem::Version
318
- version: 2.4.0
406
+ version: 2.5.0
319
407
  required_rubygems_version: !ruby/object:Gem::Requirement
320
408
  requirements:
321
409
  - - ">="