bridgetown-core 0.13.0 → 0.15.0.beta3

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 (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"