bridgetown-core 0.12.0 → 0.15.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="