bridgetown-core 0.14.1 → 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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -1
  3. data/bin/bridgetown +9 -23
  4. data/bridgetown-core.gemspec +2 -1
  5. data/lib/bridgetown-core.rb +9 -2
  6. data/lib/bridgetown-core/commands/apply.rb +73 -0
  7. data/lib/bridgetown-core/commands/base.rb +45 -0
  8. data/lib/bridgetown-core/commands/build.rb +91 -86
  9. data/lib/bridgetown-core/commands/clean.rb +30 -29
  10. data/lib/bridgetown-core/commands/concerns/actions.rb +95 -0
  11. data/lib/bridgetown-core/commands/concerns/build_options.rb +76 -0
  12. data/lib/bridgetown-core/commands/concerns/configuration_overridable.rb +18 -0
  13. data/lib/bridgetown-core/commands/concerns/summarizable.rb +13 -0
  14. data/lib/bridgetown-core/commands/console.rb +46 -38
  15. data/lib/bridgetown-core/commands/doctor.rb +126 -126
  16. data/lib/bridgetown-core/commands/new.rb +120 -155
  17. data/lib/bridgetown-core/commands/plugins.rb +167 -130
  18. data/lib/bridgetown-core/commands/registrations.rb +16 -0
  19. data/lib/bridgetown-core/commands/serve.rb +214 -215
  20. data/lib/bridgetown-core/generators/prototype_generator.rb +2 -0
  21. data/lib/bridgetown-core/liquid_renderer.rb +1 -0
  22. data/lib/bridgetown-core/liquid_renderer/file_system.rb +3 -1
  23. data/lib/bridgetown-core/plugin_manager.rb +4 -4
  24. data/lib/bridgetown-core/renderer.rb +28 -15
  25. data/lib/bridgetown-core/tags/include.rb +12 -0
  26. data/lib/bridgetown-core/tags/render_content.rb +27 -16
  27. data/lib/bridgetown-core/tags/with.rb +15 -0
  28. data/lib/bridgetown-core/version.rb +2 -2
  29. data/lib/bridgetown-core/watcher.rb +17 -10
  30. data/lib/site_template/Gemfile.erb +19 -0
  31. data/lib/site_template/src/_components/footer.html +3 -0
  32. data/lib/site_template/src/_components/head.html +9 -0
  33. data/lib/site_template/src/{_includes → _components}/navbar.html +0 -0
  34. data/lib/site_template/src/_layouts/default.html +3 -3
  35. data/lib/site_template/start.js +1 -1
  36. metadata +39 -19
  37. data/lib/bridgetown-core/command.rb +0 -112
  38. data/lib/bridgetown-core/commands/help.rb +0 -34
  39. data/lib/site_template/src/_components/.keep +0 -0
  40. data/lib/site_template/src/_includes/footer.html +0 -3
  41. data/lib/site_template/src/_includes/head.html +0 -9
@@ -63,6 +63,8 @@ module Bridgetown
63
63
  new_page
64
64
  end
65
65
 
66
+ # TODO: this would be a great use of .try
67
+ # document.try(:collection).try(:label) == @configured_collection
66
68
  def terms_matching_pages(search_term)
67
69
  selected_docs = @site.documents.select do |document|
68
70
  document.respond_to?(:collection) && document.collection.label == @configured_collection
@@ -26,6 +26,7 @@ module Bridgetown
26
26
  def reset
27
27
  @stats = {}
28
28
  @cache = {}
29
+ Renderer.cached_partials = {}
29
30
  end
30
31
 
31
32
  def file(filename)
@@ -31,7 +31,9 @@ module Bridgetown
31
31
  raise Liquid::FileSystemError, "No such template '#{template_path}'" if found_paths.empty?
32
32
 
33
33
  # Last path in the list wins
34
- ::File.read(found_paths.last, site.file_read_opts)
34
+ LiquidComponent.parse(
35
+ ::File.read(found_paths.last, site.file_read_opts)
36
+ ).content
35
37
  end
36
38
  end
37
39
  end
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Bridgetown
4
4
  class PluginManager
5
+ PLUGINS_GROUP = :bridgetown_plugins
6
+
5
7
  attr_reader :site
6
8
 
7
9
  @source_manifests = Set.new
@@ -40,11 +42,9 @@ module Bridgetown
40
42
  if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] && File.file?("Gemfile")
41
43
  require "bundler"
42
44
 
43
- group_name = :bridgetown_plugins
44
-
45
- required_gems = Bundler.require group_name
45
+ required_gems = Bundler.require PLUGINS_GROUP
46
46
  required_gems.select! do |dep|
47
- (dep.groups & [group_name]).any? && dep.should_include?
47
+ (dep.groups & [PLUGINS_GROUP]).any? && dep.should_include?
48
48
  end
49
49
 
50
50
  install_yarn_dependencies(required_gems)
@@ -5,11 +5,16 @@ module Bridgetown
5
5
  attr_reader :document, :site
6
6
  attr_writer :layouts, :payload
7
7
 
8
+ class << self
9
+ attr_accessor :cached_partials
10
+ end
11
+
8
12
  def initialize(site, document, site_payload = nil)
9
13
  @site = site
10
14
  @document = document
11
15
  @payload = site_payload
12
16
  @layouts = nil
17
+ self.class.cached_partials ||= {}
13
18
  end
14
19
 
15
20
  # Fetches the payload used in Liquid rendering.
@@ -67,18 +72,14 @@ module Bridgetown
67
72
  # Returns String rendered document output
68
73
  # rubocop: disable Metrics/AbcSize
69
74
  def render_document
70
- info = {
71
- registers: { site: site, page: payload["page"] },
72
- strict_filters: liquid_options["strict_filters"],
73
- strict_variables: liquid_options["strict_variables"],
74
- }
75
+ liquid_context = provide_liquid_context
75
76
 
76
77
  execute_inline_ruby!
77
78
 
78
79
  output = document.content
79
80
  if document.render_with_liquid?
80
81
  Bridgetown.logger.debug "Rendering Liquid:", document.relative_path
81
- output = render_liquid(output, payload, info, document.path)
82
+ output = render_liquid(output, payload, liquid_context, document.path)
82
83
  end
83
84
 
84
85
  Bridgetown.logger.debug "Rendering Markup:", document.relative_path
@@ -87,12 +88,24 @@ module Bridgetown
87
88
 
88
89
  if document.place_in_layout?
89
90
  Bridgetown.logger.debug "Rendering Layout:", document.relative_path
90
- output = place_in_layouts(output, payload, info)
91
+ output = place_in_layouts(output, payload, liquid_context)
91
92
  end
92
93
 
93
94
  output
94
95
  end
95
96
 
97
+ def provide_liquid_context
98
+ {
99
+ registers: {
100
+ site: site,
101
+ page: payload["page"],
102
+ cached_partials: self.class.cached_partials,
103
+ },
104
+ strict_filters: liquid_options["strict_filters"],
105
+ strict_variables: liquid_options["strict_variables"],
106
+ }
107
+ end
108
+
96
109
  def execute_inline_ruby!
97
110
  return unless site.config.should_execute_inline_ruby?
98
111
 
@@ -101,21 +114,21 @@ module Bridgetown
101
114
 
102
115
  # rubocop: enable Metrics/AbcSize
103
116
 
104
- # Render the given content with the payload and info
117
+ # Render the given content with the payload and context
105
118
  #
106
119
  # content -
107
120
  # payload -
108
- # info -
121
+ # context -
109
122
  # path - (optional) the path to the file, for use in ex
110
123
  #
111
124
  # Returns String the content, rendered by Liquid.
112
- def render_liquid(content, payload, info, path = nil)
125
+ def render_liquid(content, payload, liquid_context, path = nil)
113
126
  template = site.liquid_renderer.file(path).parse(content)
114
127
  template.warnings.each do |e|
115
128
  Bridgetown.logger.warn "Liquid Warning:",
116
129
  LiquidRenderer.format_error(e, path || document.relative_path)
117
130
  end
118
- template.render!(payload, info)
131
+ template.render!(payload, liquid_context)
119
132
  # rubocop: disable Lint/RescueException
120
133
  rescue Exception => e
121
134
  Bridgetown.logger.error "Liquid Exception:",
@@ -151,7 +164,7 @@ module Bridgetown
151
164
  # Render layouts and place document content inside.
152
165
  #
153
166
  # Returns String rendered content
154
- def place_in_layouts(content, payload, info)
167
+ def place_in_layouts(content, payload, liquid_context)
155
168
  output = content.dup
156
169
  layout = layouts[document.data["layout"].to_s]
157
170
  validate_layout(layout)
@@ -162,7 +175,7 @@ module Bridgetown
162
175
  payload["layout"] = nil
163
176
 
164
177
  while layout
165
- output = render_layout(output, layout, info)
178
+ output = render_layout(output, layout, liquid_context)
166
179
  add_regenerator_dependencies(layout)
167
180
 
168
181
  next unless (layout = site.layouts[layout.data["layout"]])
@@ -189,14 +202,14 @@ module Bridgetown
189
202
  # Render layout content into document.output
190
203
  #
191
204
  # Returns String rendered content
192
- def render_layout(output, layout, info)
205
+ def render_layout(output, layout, liquid_context)
193
206
  payload["content"] = output
194
207
  payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {})
195
208
 
196
209
  render_liquid(
197
210
  layout.content,
198
211
  payload,
199
- info,
212
+ liquid_context,
200
213
  layout.path
201
214
  )
202
215
  end
@@ -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)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "0.14.1"
5
- CODE_NAME = "Hazelwood"
4
+ VERSION = "0.15.0.beta1"
5
+ CODE_NAME = "Overlook"
6
6
  end
@@ -39,17 +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
48
  webpack_path,
45
- *site.plugin_manager.plugins_path,
49
+ *plugin_paths_to_watch,
46
50
  ignore: listen_ignore_paths(options),
47
51
  force_polling: options["force_polling"],
48
- &listen_handler(site)
52
+ &listen_handler(site, options)
49
53
  )
50
54
  end
51
55
 
52
- def listen_handler(site)
56
+ def listen_handler(site, options)
53
57
  proc do |modified, added, removed|
54
58
  t = Time.now
55
59
  c = modified + added + removed
@@ -59,7 +63,7 @@ module Bridgetown
59
63
  Bridgetown.logger.info "", "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")}"
60
64
 
61
65
  c.each { |path| Bridgetown.logger.info "", path["#{site.root_dir}/".length..-1] }
62
- process(site, t)
66
+ process(site, t, options)
63
67
  end
64
68
  end
65
69
 
@@ -95,7 +99,6 @@ module Bridgetown
95
99
  # options - A Hash of options passed to the command
96
100
  #
97
101
  # Returns a list of relative paths from source that should be ignored
98
- # rubocop: disable Metrics/AbcSize
99
102
  def listen_ignore_paths(options)
100
103
  source = Pathname.new(options["source"]).expand_path
101
104
  paths = to_exclude(options)
@@ -117,13 +120,12 @@ module Bridgetown
117
120
  end
118
121
  end.compact + [%r!^\.bridgetown\-metadata!]
119
122
  end
120
- # rubocop:enable Metrics/AbcSize
121
123
 
122
124
  def sleep_forever
123
125
  loop { sleep 1000 }
124
126
  end
125
127
 
126
- def process(site, time)
128
+ def process(site, time, options)
127
129
  begin
128
130
  Bridgetown::Hooks.trigger :site, :pre_reload, site
129
131
  Bridgetown::Hooks.clear_reloadable_hooks
@@ -131,9 +133,14 @@ module Bridgetown
131
133
  site.process
132
134
  Bridgetown.logger.info "Done! 🎉", "#{"Completed".green} in less than" \
133
135
  " #{(Time.now - time).ceil(2)} seconds."
134
- rescue StandardError => e
135
- Bridgetown.logger.warn "Error:", e.message
136
- 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
137
144
  end
138
145
  Bridgetown.logger.info ""
139
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,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,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>
@@ -14,4 +14,4 @@ concurrently([
14
14
  ], {
15
15
  restartTries: 3,
16
16
  killOthers: ['failure', 'success'],
17
- }).then(() => { console.log("Done.") }, () => {});
17
+ }).then(() => { console.log("Done.");console.log('\033[0G'); }, () => {});
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
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-05-23 00:00:00.000000000 Z
11
+ date: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -137,47 +137,47 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '4.0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: liquid-render-tag
140
+ name: liquid-component
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '0.2'
145
+ version: '0.1'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '0.2'
152
+ version: '0.1'
153
153
  - !ruby/object:Gem::Dependency
154
- name: listen
154
+ name: liquid-render-tag
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '3.0'
159
+ version: '0.2'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '3.0'
166
+ version: '0.2'
167
167
  - !ruby/object:Gem::Dependency
168
- name: mercenary
168
+ name: listen
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.4.0
173
+ version: '3.0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.4.0
180
+ version: '3.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: pathutil
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +234,20 @@ dependencies:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
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'
237
251
  description: Bridgetown is a Webpack-aware, Ruby-powered static site generator for
238
252
  the modern Jamstack era
239
253
  email: maintainers@bridgetownrb.com
@@ -249,14 +263,19 @@ files:
249
263
  - lib/bridgetown-core/cache.rb
250
264
  - lib/bridgetown-core/cleaner.rb
251
265
  - lib/bridgetown-core/collection.rb
252
- - lib/bridgetown-core/command.rb
266
+ - lib/bridgetown-core/commands/apply.rb
267
+ - lib/bridgetown-core/commands/base.rb
253
268
  - lib/bridgetown-core/commands/build.rb
254
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
255
274
  - lib/bridgetown-core/commands/console.rb
256
275
  - lib/bridgetown-core/commands/doctor.rb
257
- - lib/bridgetown-core/commands/help.rb
258
276
  - lib/bridgetown-core/commands/new.rb
259
277
  - lib/bridgetown-core/commands/plugins.rb
278
+ - lib/bridgetown-core/commands/registrations.rb
260
279
  - lib/bridgetown-core/commands/serve.rb
261
280
  - lib/bridgetown-core/commands/serve/servlet.rb
262
281
  - lib/bridgetown-core/concerns/convertible.rb
@@ -330,6 +349,7 @@ files:
330
349
  - lib/bridgetown-core/tags/post_url.rb
331
350
  - lib/bridgetown-core/tags/render_content.rb
332
351
  - lib/bridgetown-core/tags/webpack_path.rb
352
+ - lib/bridgetown-core/tags/with.rb
333
353
  - lib/bridgetown-core/url.rb
334
354
  - lib/bridgetown-core/utils.rb
335
355
  - lib/bridgetown-core/utils/ansi.rb
@@ -342,6 +362,7 @@ files:
342
362
  - lib/bridgetown-core/version.rb
343
363
  - lib/bridgetown-core/watcher.rb
344
364
  - lib/site_template/.gitignore
365
+ - lib/site_template/Gemfile.erb
345
366
  - lib/site_template/bridgetown.config.yml
346
367
  - lib/site_template/frontend/javascript/index.js
347
368
  - lib/site_template/frontend/styles/index.scss
@@ -349,11 +370,10 @@ files:
349
370
  - lib/site_template/plugins/builders/.keep
350
371
  - lib/site_template/plugins/site_builder.rb
351
372
  - lib/site_template/src/404.html
352
- - 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
353
376
  - lib/site_template/src/_data/site_metadata.yml
354
- - lib/site_template/src/_includes/footer.html
355
- - lib/site_template/src/_includes/head.html
356
- - lib/site_template/src/_includes/navbar.html
357
377
  - lib/site_template/src/_layouts/default.html
358
378
  - lib/site_template/src/_layouts/home.html
359
379
  - lib/site_template/src/_layouts/page.html