bridgetown-core 0.13.0 → 0.15.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -1
  3. data/bin/bridgetown +9 -48
  4. data/bridgetown-core.gemspec +6 -2
  5. data/lib/bridgetown-core.rb +13 -3
  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 +123 -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 -39
  16. data/lib/bridgetown-core/commands/doctor.rb +126 -127
  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 -215
  21. data/lib/bridgetown-core/{convertible.rb → concerns/convertible.rb} +3 -6
  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 +49 -0
  27. data/lib/bridgetown-core/concerns/site/writable.rb +31 -0
  28. data/lib/bridgetown-core/configuration.rb +2 -9
  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/page_drop.rb +1 -1
  32. data/lib/bridgetown-core/drops/site_drop.rb +1 -1
  33. data/lib/bridgetown-core/excerpt.rb +4 -1
  34. data/lib/bridgetown-core/external.rb +17 -21
  35. data/lib/bridgetown-core/filters.rb +10 -0
  36. data/lib/bridgetown-core/generators/prototype_generator.rb +3 -1
  37. data/lib/bridgetown-core/hooks.rb +62 -62
  38. data/lib/bridgetown-core/layout.rb +10 -4
  39. data/lib/bridgetown-core/liquid_renderer.rb +1 -0
  40. data/lib/bridgetown-core/liquid_renderer/file.rb +1 -4
  41. data/lib/bridgetown-core/liquid_renderer/file_system.rb +3 -1
  42. data/lib/bridgetown-core/page.rb +11 -19
  43. data/lib/bridgetown-core/plugin.rb +2 -0
  44. data/lib/bridgetown-core/plugin_manager.rb +88 -21
  45. data/lib/bridgetown-core/reader.rb +5 -0
  46. data/lib/bridgetown-core/readers/data_reader.rb +5 -2
  47. data/lib/bridgetown-core/readers/layout_reader.rb +9 -2
  48. data/lib/bridgetown-core/readers/plugin_content_reader.rb +48 -0
  49. data/lib/bridgetown-core/renderer.rb +38 -28
  50. data/lib/bridgetown-core/site.rb +20 -463
  51. data/lib/bridgetown-core/tags/include.rb +12 -0
  52. data/lib/bridgetown-core/tags/render_content.rb +29 -16
  53. data/lib/bridgetown-core/tags/with.rb +15 -0
  54. data/lib/bridgetown-core/utils.rb +45 -27
  55. data/lib/bridgetown-core/utils/ruby_exec.rb +1 -4
  56. data/lib/bridgetown-core/version.rb +2 -2
  57. data/lib/bridgetown-core/watcher.rb +21 -10
  58. data/lib/site_template/Gemfile.erb +19 -0
  59. data/lib/site_template/package.json +1 -0
  60. data/lib/site_template/plugins/{.keep → builders/.keep} +0 -0
  61. data/lib/site_template/plugins/site_builder.rb +4 -0
  62. data/lib/site_template/src/_components/footer.html +3 -0
  63. data/lib/site_template/src/_components/head.html +9 -0
  64. data/lib/site_template/src/{_includes → _components}/navbar.html +1 -0
  65. data/lib/site_template/src/_layouts/default.html +3 -3
  66. data/lib/site_template/src/posts.md +15 -0
  67. data/lib/site_template/start.js +1 -1
  68. data/lib/site_template/webpack.config.js +3 -3
  69. metadata +90 -18
  70. data/lib/bridgetown-core/command.rb +0 -106
  71. data/lib/bridgetown-core/commands/help.rb +0 -34
  72. data/lib/site_template/src/_components/.keep +0 -0
  73. data/lib/site_template/src/_includes/footer.html +0 -3
  74. data/lib/site_template/src/_includes/head.html +0 -9
@@ -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,40 @@
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
+ # unindent the incoming text
9
+ content = Bridgetown::Utils.reindent_for_markdown(super)
8
10
 
9
- @tag = tag_name
10
- @markup = markup
11
- @options = options
12
- end
11
+ regions = gather_content_regions(context)
13
12
 
14
- def render(context)
15
- content = super.gsub(%r!^[ \t]+!, "") # unindent the incoming text
13
+ site = context.registers[:site]
14
+ converter = site.find_converter_instance(Bridgetown::Converters::Markdown)
15
+ markdownified_content = converter.convert(content)
16
+ context["processed_component_content"] = markdownified_content
17
+
18
+ render_params = [@markup, "content: processed_component_content"]
19
+ unless regions.empty?
20
+ regions.each do |region_name, region_content|
21
+ region_name = region_name.sub("content_with_region_", "")
22
+ context[region_name] = converter.convert(region_content.strip_heredoc)
23
+ render_params.push "#{region_name}: #{region_name}"
24
+ end
25
+ end
16
26
 
17
- site = context.registers[:site]
18
- converter = site.find_converter_instance(Bridgetown::Converters::Markdown)
19
- markdownified_content = converter.convert(content)
27
+ Liquid::Render.parse("render", render_params.join(","), nil, @parse_context)
28
+ .render_tag(context, +"")
29
+ end
30
+ end
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
+ private
33
+
34
+ def gather_content_regions(context)
35
+ unless context.scopes[0].keys.find { |k| k.to_s.start_with? "content_with_region_" }
36
+ return {}
26
37
  end
38
+
39
+ context.scopes[0].select { |k| k.to_s.start_with? "content_with_region_" }
27
40
  end
28
41
  end
29
42
  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)
@@ -20,7 +20,7 @@ module Bridgetown
20
20
 
21
21
  # Takes a slug and turns it into a simple title.
22
22
  def titleize_slug(slug)
23
- slug.split("-").map!(&:capitalize).join(" ")
23
+ slug.gsub(%r![_ ]!, "-").split("-").map!(&:capitalize).join(" ")
24
24
  end
25
25
 
26
26
  # Non-destructive version of deep_merge_hashes! See that method.
@@ -95,32 +95,6 @@ module Bridgetown
95
95
  end
96
96
  end
97
97
 
98
- def transform_keys(hash)
99
- result = {}
100
- hash.each_key do |key|
101
- result[yield(key)] = hash[key]
102
- end
103
- result
104
- end
105
-
106
- # Apply #to_sym to all keys in the hash
107
- #
108
- # hash - the hash to which to apply this transformation
109
- #
110
- # Returns a new hash with symbolized keys
111
- def symbolize_hash_keys(hash)
112
- transform_keys(hash) { |key| key.to_sym rescue key }
113
- end
114
-
115
- # Apply #to_s to all keys in the Hash
116
- #
117
- # hash - the hash to which to apply this transformation
118
- #
119
- # Returns a new hash with stringified keys
120
- def stringify_hash_keys(hash)
121
- transform_keys(hash) { |key| key.to_s rescue key }
122
- end
123
-
124
98
  # Parse a date/time and throw an error if invalid
125
99
  #
126
100
  # input - the date/time to parse
@@ -313,6 +287,50 @@ module Bridgetown
313
287
  merged
314
288
  end
315
289
 
290
+ # Returns a string that's been reindented so that Markdown's four+ spaces =
291
+ # code doesn't get triggered for nested Liquid components
292
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
293
+ def reindent_for_markdown(input)
294
+ lines = input.lines
295
+ return input if lines.first.nil?
296
+
297
+ starting_indentation = lines.find { |line| line != "\n" }&.match(%r!^ +!)
298
+ return input unless starting_indentation
299
+
300
+ starting_indent_length = starting_indentation[0].length
301
+
302
+ skip_pre_lines = false
303
+ lines.map do |line|
304
+ continue_processing = !skip_pre_lines
305
+
306
+ if skip_pre_lines
307
+ skip_pre_lines = false if line.include?("</pre>")
308
+ end
309
+ if line.include?("<pre")
310
+ skip_pre_lines = true
311
+ continue_processing = false
312
+ end
313
+
314
+ if continue_processing
315
+ line_indentation = line.match(%r!^ +!).yield_self do |indent|
316
+ indent.nil? ? "" : indent[0]
317
+ end
318
+ new_indentation = line_indentation.rjust(starting_indent_length, " ")
319
+
320
+ if %r!^ +!.match?(line)
321
+ line
322
+ .sub(%r!^ {1,#{starting_indent_length}}!, new_indentation)
323
+ .sub(%r!^#{new_indentation}!, "")
324
+ else
325
+ line
326
+ end
327
+ else
328
+ line
329
+ end
330
+ end.join("")
331
+ end
332
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
333
+
316
334
  private
317
335
 
318
336
  def merge_values(target, overwrite)
@@ -59,10 +59,7 @@ module Bridgetown
59
59
 
60
60
  # This is where the magic happens! DON'T BE EVIL!!! ;-)
61
61
  output = obj.instance_eval(ruby_code)
62
-
63
- output = Bridgetown::Utils.stringify_hash_keys(output) if output.is_a?(Hash)
64
-
65
- output
62
+ output.is_a?(Hash) ? output.with_indifferent_access : output
66
63
  end
67
64
  end
68
65
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "0.13.0"
5
- CODE_NAME = "Klickitat"
4
+ VERSION = "0.15.0.beta3"
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 %>"
@@ -14,6 +14,7 @@
14
14
  "devDependencies": {
15
15
  "@babel/core": "^7.9.0",
16
16
  "@babel/plugin-proposal-class-properties": "^7.8.3",
17
+ "@babel/plugin-proposal-decorators": "^7.10.1",
17
18
  "@babel/plugin-transform-runtime": "^7.9.0",
18
19
  "@babel/preset-env": "^7.9.0",
19
20
  "babel-loader": "^8.1.0",
@@ -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'); }, () => {});
@@ -36,7 +36,8 @@ module.exports = {
36
36
  options: {
37
37
  presets: ["@babel/preset-env"],
38
38
  plugins: [
39
- "@babel/plugin-proposal-class-properties",
39
+ ["@babel/plugin-proposal-decorators", { "legacy": true }],
40
+ ["@babel/plugin-proposal-class-properties", { "loose" : true }],
40
41
  [
41
42
  "@babel/plugin-transform-runtime",
42
43
  {
@@ -57,8 +58,7 @@ module.exports = {
57
58
  options: {
58
59
  sassOptions: {
59
60
  includePaths: [
60
- path.resolve(__dirname, "src/_components"),
61
- path.resolve(__dirname, "src/_includes"),
61
+ path.resolve(__dirname, "src/_components")
62
62
  ],
63
63
  },
64
64
  },
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.13.0
4
+ version: 0.15.0.beta3
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-05-06 00:00:00.000000000 Z
11
+ date: 2020-06-05 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
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
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'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: i18n
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,33 +137,47 @@ dependencies:
109
137
  - !ruby/object:Gem::Version
110
138
  version: '4.0'
111
139
  - !ruby/object:Gem::Dependency
112
- 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
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
157
  - - "~>"
116
158
  - !ruby/object:Gem::Version
117
- version: '3.0'
159
+ version: '0.2'
118
160
  type: :runtime
119
161
  prerelease: false
120
162
  version_requirements: !ruby/object:Gem::Requirement
121
163
  requirements:
122
164
  - - "~>"
123
165
  - !ruby/object:Gem::Version
124
- version: '3.0'
166
+ version: '0.2'
125
167
  - !ruby/object:Gem::Dependency
126
- name: mercenary
168
+ name: listen
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
171
  - - "~>"
130
172
  - !ruby/object:Gem::Version
131
- version: 0.4.0
173
+ version: '3.0'
132
174
  type: :runtime
133
175
  prerelease: false
134
176
  version_requirements: !ruby/object:Gem::Requirement
135
177
  requirements:
136
178
  - - "~>"
137
179
  - !ruby/object:Gem::Version
138
- version: 0.4.0
180
+ version: '3.0'
139
181
  - !ruby/object:Gem::Dependency
140
182
  name: pathutil
141
183
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +234,20 @@ dependencies:
192
234
  - - "~>"
193
235
  - !ruby/object:Gem::Version
194
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'
195
251
  description: Bridgetown is a Webpack-aware, Ruby-powered static site generator for
196
252
  the modern Jamstack era
197
253
  email: maintainers@bridgetownrb.com
@@ -207,22 +263,34 @@ files:
207
263
  - lib/bridgetown-core/cache.rb
208
264
  - lib/bridgetown-core/cleaner.rb
209
265
  - lib/bridgetown-core/collection.rb
210
- - lib/bridgetown-core/command.rb
266
+ - lib/bridgetown-core/commands/apply.rb
267
+ - lib/bridgetown-core/commands/base.rb
211
268
  - lib/bridgetown-core/commands/build.rb
212
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
213
274
  - lib/bridgetown-core/commands/console.rb
214
275
  - lib/bridgetown-core/commands/doctor.rb
215
- - lib/bridgetown-core/commands/help.rb
216
276
  - lib/bridgetown-core/commands/new.rb
277
+ - lib/bridgetown-core/commands/plugins.rb
278
+ - lib/bridgetown-core/commands/registrations.rb
217
279
  - lib/bridgetown-core/commands/serve.rb
218
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
219
288
  - lib/bridgetown-core/configuration.rb
220
289
  - lib/bridgetown-core/converter.rb
221
290
  - lib/bridgetown-core/converters/identity.rb
222
291
  - lib/bridgetown-core/converters/markdown.rb
223
292
  - lib/bridgetown-core/converters/markdown/kramdown_parser.rb
224
293
  - lib/bridgetown-core/converters/smartypants.rb
225
- - lib/bridgetown-core/convertible.rb
226
294
  - lib/bridgetown-core/deprecator.rb
227
295
  - lib/bridgetown-core/document.rb
228
296
  - lib/bridgetown-core/drops/bridgetown_drop.rb
@@ -267,6 +335,7 @@ files:
267
335
  - lib/bridgetown-core/readers/data_reader.rb
268
336
  - lib/bridgetown-core/readers/layout_reader.rb
269
337
  - lib/bridgetown-core/readers/page_reader.rb
338
+ - lib/bridgetown-core/readers/plugin_content_reader.rb
270
339
  - lib/bridgetown-core/readers/post_reader.rb
271
340
  - lib/bridgetown-core/readers/static_file_reader.rb
272
341
  - lib/bridgetown-core/regenerator.rb
@@ -280,6 +349,7 @@ files:
280
349
  - lib/bridgetown-core/tags/post_url.rb
281
350
  - lib/bridgetown-core/tags/render_content.rb
282
351
  - lib/bridgetown-core/tags/webpack_path.rb
352
+ - lib/bridgetown-core/tags/with.rb
283
353
  - lib/bridgetown-core/url.rb
284
354
  - lib/bridgetown-core/utils.rb
285
355
  - lib/bridgetown-core/utils/ansi.rb
@@ -292,17 +362,18 @@ files:
292
362
  - lib/bridgetown-core/version.rb
293
363
  - lib/bridgetown-core/watcher.rb
294
364
  - lib/site_template/.gitignore
365
+ - lib/site_template/Gemfile.erb
295
366
  - lib/site_template/bridgetown.config.yml
296
367
  - lib/site_template/frontend/javascript/index.js
297
368
  - lib/site_template/frontend/styles/index.scss
298
369
  - lib/site_template/package.json
299
- - lib/site_template/plugins/.keep
370
+ - lib/site_template/plugins/builders/.keep
371
+ - lib/site_template/plugins/site_builder.rb
300
372
  - lib/site_template/src/404.html
301
- - 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
302
376
  - lib/site_template/src/_data/site_metadata.yml
303
- - lib/site_template/src/_includes/footer.html
304
- - lib/site_template/src/_includes/head.html
305
- - lib/site_template/src/_includes/navbar.html
306
377
  - lib/site_template/src/_layouts/default.html
307
378
  - lib/site_template/src/_layouts/home.html
308
379
  - lib/site_template/src/_layouts/page.html
@@ -311,17 +382,18 @@ files:
311
382
  - lib/site_template/src/about.md
312
383
  - lib/site_template/src/favicon.ico
313
384
  - lib/site_template/src/index.md
385
+ - lib/site_template/src/posts.md
314
386
  - lib/site_template/start.js
315
387
  - lib/site_template/sync.js
316
388
  - lib/site_template/webpack.config.js
317
- homepage: https://bridgetownrb.com
389
+ homepage: https://www.bridgetownrb.com
318
390
  licenses:
319
391
  - MIT
320
392
  metadata:
321
393
  source_code_uri: https://github.com/bridgetownrb/bridgetown
322
394
  bug_tracker_uri: https://github.com/bridgetownrb/bridgetown/issues
323
395
  changelog_uri: https://github.com/bridgetownrb/bridgetown/releases
324
- homepage_uri: https://bridgetownrb.com
396
+ homepage_uri: https://www.bridgetownrb.com
325
397
  post_install_message:
326
398
  rdoc_options:
327
399
  - "--charset=UTF-8"