bridgetown-core 1.2.0.beta3 → 1.2.0.beta5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -1
  3. data/lib/bridgetown-core/collection.rb +9 -2
  4. data/lib/bridgetown-core/commands/base.rb +2 -0
  5. data/lib/bridgetown-core/commands/concerns/actions.rb +6 -4
  6. data/lib/bridgetown-core/commands/esbuild/esbuild.defaults.js.erb +1 -1
  7. data/lib/bridgetown-core/commands/start.rb +1 -0
  8. data/lib/bridgetown-core/concerns/localizable.rb +5 -1
  9. data/lib/bridgetown-core/configuration/configuration_dsl.rb +1 -1
  10. data/lib/bridgetown-core/configuration.rb +11 -3
  11. data/lib/bridgetown-core/configurations/bt-postcss.rb +1 -1
  12. data/lib/bridgetown-core/configurations/gh-pages/gh-pages.yml +22 -6
  13. data/lib/bridgetown-core/configurations/gh-pages.rb +1 -1
  14. data/lib/bridgetown-core/configurations/lit.rb +2 -2
  15. data/lib/bridgetown-core/configurations/stimulus.rb +2 -2
  16. data/lib/bridgetown-core/drops/drop.rb +1 -1
  17. data/lib/bridgetown-core/drops/static_file_drop.rb +1 -1
  18. data/lib/bridgetown-core/helpers.rb +9 -3
  19. data/lib/bridgetown-core/model/repo_origin.rb +4 -1
  20. data/lib/bridgetown-core/plugin_manager.rb +2 -1
  21. data/lib/bridgetown-core/rack/static_indexes.rb +4 -4
  22. data/lib/bridgetown-core/resource/base.rb +1 -1
  23. data/lib/bridgetown-core/static_file.rb +6 -4
  24. data/lib/bridgetown-core/tasks/bridgetown_tasks.rake +1 -1
  25. data/lib/bridgetown-core/utils/ruby_front_matter.rb +2 -2
  26. data/lib/bridgetown-core/utils.rb +7 -4
  27. data/lib/bridgetown-core/version.rb +1 -1
  28. data/lib/bridgetown-core/watcher.rb +6 -1
  29. data/lib/bridgetown-core.rb +5 -2
  30. data/lib/site_template/config/initializers.rb +1 -1
  31. data/lib/site_template/config/puma.rb +4 -0
  32. data/lib/site_template/package.json.erb +5 -2
  33. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b1d92b4942102e7a3aba18f3a617d905bdb13bf7193a816cd444e26340935c7
4
- data.tar.gz: 6fdc5319169d9b2cc712680c0d73c12ea71364610172f7af5764d068c555457e
3
+ metadata.gz: 7db2117b99eb2b2943920e6cbfe4267b2a668842de44e360df645da6554ea877
4
+ data.tar.gz: b8e3652ab12db38512546612a74df6939bd841166d9cfae371aa75d6ae8d8265
5
5
  SHA512:
6
- metadata.gz: 7e82b661568cedb825c2de4c327b759169dad229e23a64bd256d28fa37cd64108901143ff882afe3b9db7393427a3863a33017bf414ccbe53c5ea12d148ba2cb
7
- data.tar.gz: 2f957ec8ade498fcce3667604779db33f4a5b71778e8c5d449afec3c56b224aa8c034d0c5eb0894d68c23b049a0db9a36c9db84bf05e76a1c1dd5dc59acc7683
6
+ metadata.gz: 446f796d17a209b19afdb9d8f349d1e5197d7f5600598bc21be3c23c73df7d10c125379d739bd608322d404365ca37b4a37cbe9b38fa8bdd22a97c84c41bee7c
7
+ data.tar.gz: 89293450447e8acb5718cdcdc782124699faa138c559474c5df66609715163fca809d4ed477cf5ee75b905f62e0bcbd540f62a46841b8c58fede225670ae429b
data/.rubocop.yml CHANGED
@@ -25,7 +25,6 @@ AllCops:
25
25
 
26
26
  Lint/ConstantDefinitionInBlock:
27
27
  Exclude:
28
- - test/test_filters.rb
29
28
  - test/test_liquid_extensions.rb
30
29
  - test/test_site.rb
31
30
 
@@ -271,6 +271,7 @@ module Bridgetown
271
271
  # Read in resource from repo path
272
272
  # @param full_path [String]
273
273
  # @param manifest [Bridgetown::Configuration::SourceManifest]
274
+ # @return [void]
274
275
  def read_resource(full_path, manifest: nil)
275
276
  model_relative_path = relative_model_path_for(full_path, manifest: manifest)
276
277
  model = Bridgetown::Model::Base.find(
@@ -279,14 +280,20 @@ module Bridgetown
279
280
  )
280
281
 
281
282
  if model_is_multi_locale?(model, model_relative_path)
282
- site.config.available_locales.each do |locale|
283
- model.locale = locale
283
+ # If the model specifies a locales key, use that to determine the
284
+ # the locale of each resource, otherwise fall back to `site.config.available_locales`
285
+ locales = model.locales || site.config.available_locales
286
+
287
+ locales.each do |locale|
288
+ model.locale = locale.to_sym
284
289
  add_resource_from_model model
285
290
  end
291
+
286
292
  return
287
293
  end
288
294
 
289
295
  add_resource_from_model model
296
+ nil
290
297
  end
291
298
 
292
299
  # @param model [Bridgetown::Model::Base]
@@ -108,6 +108,8 @@ module Bridgetown
108
108
  end
109
109
  end
110
110
  end
111
+ rescue LoadError
112
+ nil
111
113
  end
112
114
  end
113
115
  end
@@ -27,7 +27,7 @@ module Bridgetown
27
27
 
28
28
  def javascript_import(data = nil, filename: "index.js") # rubocop:todo Metrics/PerceivedComplexity
29
29
  data ||= yield if block_given?
30
- data += "\n" unless data.chars.last == "\n"
30
+ data += "\n" unless data[-1] == "\n"
31
31
 
32
32
  say_status :javascript_import, filename
33
33
 
@@ -56,8 +56,9 @@ module Bridgetown
56
56
  options = +""
57
57
  options += " -v \"#{version}\"" if version
58
58
  options += " -g #{group}" if group
59
+ # in_bundle? returns the path to the gemfile
59
60
  run "bundle add #{gemname}#{options}",
60
- env: { "BUNDLE_GEMFILE" => File.join(destination_root, "Gemfile") }
61
+ env: { "BUNDLE_GEMFILE" => Bundler::SharedHelpers.in_bundle? }
61
62
  rescue SystemExit
62
63
  say_status :run, "Gem not added due to bundler error", :red
63
64
  end
@@ -67,7 +68,8 @@ module Bridgetown
67
68
  say_status :initializer, name
68
69
  data = yield if block_given?
69
70
  data = data.indent(2).lstrip
70
- data += "\n" unless data.chars.last == "\n"
71
+ data = " #{data}" unless data.start_with?(",")
72
+ data += "\n" unless data[-1] == "\n"
71
73
 
72
74
  init_file = File.join("config", "initializers.rb")
73
75
  unless File.exist?(init_file)
@@ -84,7 +86,7 @@ module Bridgetown
84
86
  say_status :configure, name
85
87
  data = yield if block_given?
86
88
  data = data.indent(2)
87
- data += "\n" unless data.chars.last == "\n"
89
+ data += "\n" unless data[-1] == "\n"
88
90
 
89
91
  init_file = File.join("config", "initializers.rb")
90
92
  unless File.exist?(init_file)
@@ -290,7 +290,7 @@ module.exports = async (outputFolder, esbuildOptions) => {
290
290
  minify: process.argv.includes("--minify"),
291
291
  sourcemap: true,
292
292
  target: "es2016",
293
- entryPoints: ["frontend/javascript/index.js"],
293
+ entryPoints: ["./frontend/javascript/index.js"],
294
294
  entryNames: "[dir]/[name].[hash]",
295
295
  outdir: path.join(process.cwd(), `${outputFolder}/_bridgetown/static`),
296
296
  publicPath: "/_bridgetown/static",
@@ -42,6 +42,7 @@ module Bridgetown
42
42
  # Load Bridgetown configuration into thread memory
43
43
  bt_options = configuration_with_overrides(options)
44
44
 
45
+ # Set a local site URL in the config if one is not available
45
46
  if Bridgetown.env.development? && !options["url"]
46
47
  scheme = bt_options.bind&.split("://")&.first == "ssl" ? "https" : "http"
47
48
  port = bt_options.bind&.split(":")&.last || ENV["BRIDGETOWN_PORT"] || 4000
@@ -12,7 +12,11 @@ module Bridgetown
12
12
  []
13
13
  end
14
14
 
15
- result_set.select { |item| item.data.slug == data.slug }.sort_by do |item|
15
+ matching_resources = result_set.select do |item|
16
+ item.relative_path.parent == relative_path.parent && item.data.slug == data.slug
17
+ end
18
+
19
+ matching_resources.sort_by do |item|
16
20
  site.config.available_locales.index item.data.locale
17
21
  end
18
22
  end
@@ -73,7 +73,7 @@ module Bridgetown
73
73
  end
74
74
 
75
75
  def method_missing(key, *value, &block) # rubocop:disable Style/MissingRespondToMissing
76
- return get(key) if value.length.zero? && block.nil?
76
+ return get(key) if value.empty? && block.nil?
77
77
 
78
78
  set(key, value[0], &block)
79
79
  end
@@ -43,6 +43,7 @@ module Bridgetown
43
43
  "autoload_paths" => [],
44
44
  "eager_load_paths" => [],
45
45
  "autoloader_collapsed_paths" => [],
46
+ "additional_watch_paths" => [],
46
47
  "plugins_use_zeitwerk" => true,
47
48
 
48
49
  # Handling Reading
@@ -129,7 +130,7 @@ module Bridgetown
129
130
  end
130
131
  end
131
132
 
132
- def run_initializers!(context:)
133
+ def run_initializers!(context:) # rubocop:todo Metrics/AbcSize, Metrics/CyclomaticComplexity
133
134
  initializers_file = File.join(root_dir, "config", "initializers.rb")
134
135
  return unless File.file?(initializers_file)
135
136
 
@@ -143,9 +144,11 @@ module Bridgetown
143
144
  Bridgetown.logger.debug "Initializing:", "Running initializers with `#{context}' context in:"
144
145
  Bridgetown.logger.debug "", initializers_file
145
146
  self.init_params = {}
147
+ cached_url = url&.include?("//localhost") ? url : nil
146
148
  dsl = ConfigurationDSL.new(scope: self, data: self)
147
149
  dsl.instance_variable_set(:@context, context)
148
150
  dsl.instance_exec(dsl, &init_init.block)
151
+ self.url = cached_url if cached_url # restore local development URL if need be
149
152
 
150
153
  setup_load_paths! appending: true
151
154
 
@@ -307,7 +310,8 @@ module Bridgetown
307
310
  next_config
308
311
  rescue SystemCallError
309
312
  if @default_config_file ||= nil
310
- Bridgetown.logger.warn "Configuration file:", "none"
313
+ initializers_file = File.join(root_dir, "config", "initializers.rb")
314
+ Bridgetown.logger.warn "Configuration file:", "none" unless File.file?(initializers_file)
311
315
  {}
312
316
  else
313
317
  Bridgetown.logger.error "Fatal:", "The configuration file '#{file}' could not be found."
@@ -353,6 +357,10 @@ module Bridgetown
353
357
  File.expand_path(collapsed_path, root_dir)
354
358
  end
355
359
 
360
+ additional_watch_paths.map! do |collapsed_path|
361
+ File.expand_path(collapsed_path, root_dir)
362
+ end
363
+
356
364
  self
357
365
  end
358
366
 
@@ -395,7 +403,7 @@ module Bridgetown
395
403
 
396
404
  DEFAULT_EXCLUDES = %w(
397
405
  .sass-cache .bridgetown-cache
398
- gemfiles Gemfile Gemfile.lock
406
+ gemfiles Gemfile Gemfile.lock gems.rb gems.locked
399
407
  node_modules
400
408
  vendor/bundle/ vendor/cache/ vendor/gems/ vendor/ruby/
401
409
  ).freeze
@@ -11,7 +11,7 @@ unless File.exist?("postcss.config.js")
11
11
  return
12
12
  end
13
13
 
14
- confirm = ask "This configuration will ovewrite your existing #{"postcss.config.js".bold.white}. Would you like to continue? [Yn]"
14
+ confirm = ask "This configuration will overwrite your existing #{"postcss.config.js".bold.white}. Would you like to continue? [Yn]"
15
15
  return unless confirm.casecmp?("Y")
16
16
 
17
17
  plugins = %w(postcss-mixins postcss-color-mod-function cssnano)
@@ -6,7 +6,7 @@ on:
6
6
  - main
7
7
 
8
8
  jobs:
9
- deploy:
9
+ build:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
12
  - uses: actions/checkout@v2
@@ -26,10 +26,26 @@ jobs:
26
26
  - name: Build
27
27
  env:
28
28
  BRIDGETOWN_ENV: production
29
- run: bin/bridgetown deploy
29
+ run: bin/bridgetown deploy
30
30
 
31
- - name: Deploy
32
- uses: peaceiris/actions-gh-pages@v3
31
+ - name: Upload build artifact
32
+ uses: actions/upload-pages-artifact@v1
33
33
  with:
34
- github_token: ${{ secrets.GITHUB_TOKEN }}
35
- publish_dir: ./output
34
+ path: ./output
35
+
36
+ deploy:
37
+ needs: build
38
+
39
+ permissions:
40
+ pages: write
41
+ id-token: write
42
+
43
+ environment:
44
+ name: github-pages
45
+ url: ${{ steps.deployment.outputs.page_url }}
46
+
47
+ runs-on: ubuntu-latest
48
+ steps:
49
+ - name: Deploy to GitHub Pages
50
+ id: deployment
51
+ uses: actions/deploy-pages@v1
@@ -7,7 +7,7 @@ copy_file in_templates_dir("gh-pages.yml"), ".github/workflows/gh-pages.yml"
7
7
  say "🎉 A GitHub action to deploy your site to GitHub pages has been configured!"
8
8
  say ""
9
9
 
10
- say "🛠️ After pushing the action, go to your repository settings and configure GitHub Pages to deploy from the branch `gh-pages`."
10
+ say "🛠️ After pushing the action, go to your repository settings and configure GitHub Pages to deploy from GitHub Actions."
11
11
  say ""
12
12
 
13
13
  say "You'll likely also need to set `base_path` in your `bridgetown.config.yml` to your repository's name. If you do this you'll need to use the `relative_url` helper for all links and assets in your HTML."
@@ -38,7 +38,7 @@ gsub_file "esbuild.config.js", %r{const esbuildOptions = {}\n} do |_match|
38
38
  // Read https://www.bridgetownrb.com/docs/components/lit#sidecar-css-files for documentation.
39
39
  /*
40
40
  postCssPluginConfig: {
41
- filter: /(?:index|\.global)\.css$/,
41
+ filter: /(?:index|\\.global)\\.css$/,
42
42
  },
43
43
  */
44
44
  }
@@ -59,7 +59,7 @@ unless found_match
59
59
  // Read https://www.bridgetownrb.com/docs/components/lit#sidecar-css-files for documentation.
60
60
  /*
61
61
  postCssPluginConfig: {
62
- filter: /(?:index|\.global)\.css$/,
62
+ filter: /(?:index|\\.global)\\.css$/,
63
63
  },
64
64
  */
65
65
  JS
@@ -36,7 +36,7 @@ append_to_file(File.join(javascript_dir, "index.js")) do
36
36
  Object.entries(controllers).forEach(([filename, controller]) => {
37
37
  if (filename.includes("_controller.") || filename.includes("-controller.")) {
38
38
  const identifier = filename.replace("./controllers/", "")
39
- .replace(/[_\-]controller\..*$/, "")
39
+ .replace(/[_-]controller\\..*$/, "")
40
40
  .replace("_", "-")
41
41
  .replace("/", "--")
42
42
 
@@ -48,7 +48,7 @@ append_to_file(File.join(javascript_dir, "index.js")) do
48
48
  <<~JS
49
49
 
50
50
  window.Stimulus = Application.start()
51
- const context = require.context("./controllers", true, /\.js$/)
51
+ const context = require.context("./controllers", true, /\\.js$/)
52
52
  Stimulus.load(definitionsFromContext(context))
53
53
  JS
54
54
  end
@@ -184,7 +184,7 @@ module Bridgetown
184
184
  if block_given?
185
185
  self[key] = yield key, self[key], other[key]
186
186
  else
187
- if Utils.mergable?(self[key]) && Utils.mergable?(other[key])
187
+ if Utils.mergeable?(self[key]) && Utils.mergeable?(other[key])
188
188
  self[key] = Utils.deep_merge_hashes(self[key], other[key])
189
189
  next
190
190
  end
@@ -4,7 +4,7 @@ module Bridgetown
4
4
  module Drops
5
5
  class StaticFileDrop < Drop
6
6
  extend Forwardable
7
- def_delegators :@obj, :name, :extname, :modified_time, :basename
7
+ def_delegators :@obj, :name, :extname, :date, :modified_time, :basename
8
8
  def_delegator :@obj, :relative_path, :path
9
9
  def_delegator :@obj, :type, :collection
10
10
 
@@ -59,11 +59,11 @@ module Bridgetown
59
59
  # `url` or `relative_url`
60
60
  # @return [String] the permalink URL for the file
61
61
  def url_for(relative_path)
62
- if relative_path.respond_to?(:relative_url) # rubocop:disable Style/GuardClause
62
+ if relative_path.respond_to?(:relative_url)
63
63
  return safe(relative_path.relative_url) # new resource engine
64
64
  elsif relative_path.respond_to?(:url)
65
65
  return safe(relative_url(relative_path.url)) # old legacy engine
66
- elsif relative_path.to_s.start_with?("/", "http")
66
+ elsif relative_path.to_s.start_with?("/", "http", "#", "mailto:", "tel:")
67
67
  return safe(relative_path)
68
68
  end
69
69
 
@@ -97,7 +97,13 @@ module Bridgetown
97
97
  # @param options [Hash] key-value pairs of HTML attributes to add to the tag
98
98
  # @return [String] the anchor tag HTML
99
99
  # @raise [ArgumentError] if the file cannot be found
100
- def link_to(text, relative_path, options = {})
100
+ def link_to(text, relative_path = nil, options = {})
101
+ if block_given?
102
+ relative_path = text
103
+ text = yield
104
+ elsif relative_path.nil?
105
+ raise ArgumentError, "You must provide a relative path"
106
+ end
101
107
  segments = attributes_from_options({ href: url_for(relative_path) }.merge(options))
102
108
 
103
109
  safe("<a #{segments}>#{text}</a>")
@@ -111,7 +111,7 @@ module Bridgetown
111
111
  collection.data?
112
112
  end
113
113
 
114
- def read_file_data # rubocop:todo Metrics/MethodLength
114
+ def read_file_data # rubocop:todo Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/AbcSize
115
115
  case original_path.extname.downcase
116
116
  when ".csv"
117
117
  {
@@ -130,6 +130,9 @@ module Bridgetown
130
130
  }
131
131
  when ".rb"
132
132
  process_ruby_data(File.read(original_path), original_path, 1)
133
+ when ".json"
134
+ json_data = JSON.parse(File.read(original_path))
135
+ json_data.is_a?(Array) ? { rows: json_data } : json_data
133
136
  else
134
137
  yaml_data = YAMLParser.load_file(original_path)
135
138
  yaml_data.is_a?(Array) ? { rows: yaml_data } : yaml_data
@@ -61,7 +61,8 @@ module Bridgetown
61
61
  end
62
62
 
63
63
  def self.setup_bundler(skip_yarn: false)
64
- if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] && (File.file?("Gemfile") || Bridgetown.env.test?)
64
+ if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] &&
65
+ (Bundler::SharedHelpers.in_bundle? || Bridgetown.env.test?)
65
66
  require "bundler"
66
67
 
67
68
  require_relative "utils/initializers"
@@ -14,10 +14,10 @@ Roda::RodaPlugins::Public::RequestMethods.module_eval do
14
14
  seg == ".." ? segments.pop : segments << seg
15
15
  end
16
16
 
17
- path = ::File.join(roda_class.opts[:public_root], *segments)
18
- unless ::File.file?(path)
19
- path = ::File.join(path, "index.html")
20
- if ::File.file?(path)
17
+ path = File.join(roda_class.opts[:public_root], *segments)
18
+ unless File.file?(path)
19
+ path = File.join(path, "index.html")
20
+ if File.file?(path)
21
21
  segments << "index.html"
22
22
  else
23
23
  segments[segments.size - 1] = "#{segments.last}.html"
@@ -373,7 +373,7 @@ module Bridgetown
373
373
  found_locale = data.language || data.lang || basename_without_ext.split(".")[1..].last
374
374
  return unless found_locale && site.config.available_locales.include?(found_locale.to_sym)
375
375
 
376
- found_locale
376
+ found_locale.to_sym
377
377
  end
378
378
 
379
379
  def format_url(url)
@@ -73,6 +73,8 @@ module Bridgetown
73
73
  @modified_time ||= File.stat(path).mtime
74
74
  end
75
75
 
76
+ alias_method :date, :modified_time
77
+
76
78
  # Returns last modification time for this file.
77
79
  def mtime
78
80
  modified_time.to_i
@@ -119,12 +121,12 @@ module Bridgetown
119
121
  @to_liquid ||= Drops::StaticFileDrop.new(self)
120
122
  end
121
123
 
122
- # Generate "basename without extension" and strip away any trailing periods.
123
- # NOTE: `String#gsub` removes all trailing periods (in comparison to `String#chomp`)
124
124
  def basename
125
- @basename ||= File.basename(name, extname).gsub(%r!\.*\z!, "")
125
+ @basename ||= File.basename(name, ".*")
126
126
  end
127
127
 
128
+ alias_method :basename_without_ext, :basename
129
+
128
130
  def relative_path_basename_without_prefix
129
131
  return_path = Pathname.new("")
130
132
  Pathname.new(cleaned_relative_path).each_filename do |filename|
@@ -185,7 +187,7 @@ module Bridgetown
185
187
 
186
188
  # Returns the type of the collection if present, nil otherwise.
187
189
  def type
188
- @type ||= @collection.nil? ? nil : @collection.label.to_sym
190
+ @type ||= @collection&.label&.to_sym
189
191
  end
190
192
 
191
193
  # Returns the front matter defaults defined for the file's URL and/or type
@@ -11,7 +11,7 @@ namespace :frontend do
11
11
  task :watcher, :sidecar do |_task, args|
12
12
  # sidecar is when the task is running alongside the start command
13
13
  sidecar = args[:sidecar] == true
14
- Bridgetown::Utils::Aux.run_process "Frontend", :yellow, "bundle exec bridgetown frontend:dev"
14
+ Bridgetown::Utils::Aux.run_process "Frontend", :yellow, "bridgetown frontend:dev"
15
15
 
16
16
  if sidecar
17
17
  # give FE bundler time to boot before returning control to the start command
@@ -14,9 +14,9 @@ module Bridgetown
14
14
  end
15
15
 
16
16
  def method_missing(key, *value, &block) # rubocop:disable Metrics/CyclomaticComplexity, Style/MissingRespondToMissing
17
- return super if respond_to?(key) || (value.length.zero? && block.nil? && !@data.key?(key))
17
+ return super if respond_to?(key) || (value.empty? && block.nil? && !@data.key?(key))
18
18
 
19
- return get(key) if value.length.zero? && block.nil? && @data.key?(key)
19
+ return get(key) if value.empty? && block.nil? && @data.key?(key)
20
20
 
21
21
  set(key, value[0], &block)
22
22
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Bridgetown
4
4
  module Utils # rubocop:todo Metrics/ModuleLength
5
+ extend Gem::Deprecate
5
6
  extend self
6
7
  autoload :Ansi, "bridgetown-core/utils/ansi"
7
8
  autoload :Aux, "bridgetown-core/utils/aux"
@@ -62,9 +63,11 @@ module Bridgetown
62
63
  target
63
64
  end
64
65
 
65
- def mergable?(value)
66
+ def mergeable?(value)
66
67
  value.is_a?(Hash) || value.is_a?(Drops::Drop)
67
68
  end
69
+ alias_method :mergable?, :mergeable?
70
+ deprecate :mergable?, :mergeable?, 2023, 7
68
71
 
69
72
  def duplicable?(obj)
70
73
  case obj
@@ -449,10 +452,10 @@ module Bridgetown
449
452
  def default_github_branch_name(repo_url)
450
453
  repo_match = Bridgetown::Commands::Actions::GITHUB_REPO_REGEX.match(repo_url)
451
454
  api_endpoint = "https://api.github.com/repos/#{repo_match[1]}"
452
- JSON.parse(Faraday.get(api_endpoint).body)["default_branch"] || "master"
455
+ JSON.parse(Faraday.get(api_endpoint).body)["default_branch"] || "main"
453
456
  rescue StandardError => e
454
457
  Bridgetown.logger.warn("Unable to connect to GitHub API: #{e.message}")
455
- "master"
458
+ "main"
456
459
  end
457
460
 
458
461
  def live_reload_js(site) # rubocop:disable Metrics/MethodLength
@@ -508,7 +511,7 @@ module Bridgetown
508
511
  target.merge!(overwrite) do |_key, old_val, new_val|
509
512
  if new_val.nil?
510
513
  old_val
511
- elsif mergable?(old_val) && mergable?(new_val)
514
+ elsif mergeable?(old_val) && mergeable?(new_val)
512
515
  deep_merge_hashes(old_val, new_val)
513
516
  else
514
517
  new_val
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "1.2.0.beta3"
4
+ VERSION = "1.2.0.beta5"
5
5
  CODE_NAME = "Bonny Slope"
6
6
  end
@@ -42,7 +42,12 @@ module Bridgetown
42
42
  #
43
43
  # @param (see #watch)
44
44
  def load_paths_to_watch(site, options)
45
- (site.plugin_manager.plugins_path + options.autoload_paths).uniq.select do |path|
45
+ additional_paths = options.additional_watch_paths
46
+ [
47
+ *site.plugin_manager.plugins_path,
48
+ *options.autoload_paths,
49
+ *additional_paths,
50
+ ].uniq.select do |path|
46
51
  Dir.exist?(path)
47
52
  end
48
53
  end
@@ -16,6 +16,7 @@ end
16
16
 
17
17
  # rubygems
18
18
  require "rubygems"
19
+ require "bundler/shared_helpers"
19
20
 
20
21
  # stdlib
21
22
  require "find"
@@ -230,11 +231,13 @@ module Bridgetown
230
231
 
231
232
  def load_tasks
232
233
  require "bridgetown-core/commands/base"
234
+ unless Bridgetown::Current.preloaded_configuration
235
+ Bridgetown::Current.preloaded_configuration = Bridgetown::Configuration::Preflight.new
236
+ end
233
237
  Bridgetown::PluginManager.setup_bundler(skip_yarn: true)
238
+
234
239
  if Bridgetown::Current.preloaded_configuration.is_a?(Bridgetown::Configuration::Preflight)
235
240
  Bridgetown::Current.preloaded_configuration = Bridgetown.configuration
236
- else
237
- Bridgetown::Current.preloaded_configuration ||= Bridgetown.configuration
238
241
  end
239
242
  load File.expand_path("bridgetown-core/tasks/bridgetown_tasks.rake", __dir__)
240
243
  end
@@ -39,5 +39,5 @@ Bridgetown.configure do |config|
39
39
  #
40
40
 
41
41
  # For more documentation on how to configure your site using this initializers file,
42
- # visit: https://edge.bridgetownrb.com/documentation/configuration/initializers/
42
+ # visit: https://edge.bridgetownrb.com/docs/configuration/initializers/
43
43
  end
@@ -1,6 +1,10 @@
1
1
  # Puma is a fast, concurrent web server for Ruby & Rack
2
2
  #
3
3
  # Learn more at: https://puma.io
4
+ # Bridgetown configuration documentation:
5
+ # https://edge.bridgetownrb.com/docs/configuration/puma
6
+
7
+ # This port number can be overriden by a bind configuration option
4
8
  #
5
9
  port ENV.fetch("BRIDGETOWN_PORT") { 4000 }
6
10
 
@@ -15,7 +15,7 @@
15
15
  <%- if frontend_bundling_option == "webpack" -%>
16
16
  "css-loader": "^6.7.1",
17
17
  <%- end -%>
18
- "esbuild": "^0.14.39",
18
+ "esbuild": "^0.15.12",
19
19
  <%- if frontend_bundling_option == "webpack" -%>
20
20
  "esbuild-loader": "^2.18.0",
21
21
  "mini-css-extract-plugin": "^2.6.0",
@@ -31,7 +31,10 @@
31
31
  <%- else -%>
32
32
  "postcss-loader": "^6.2.1",
33
33
  <%- end -%>
34
- "postcss-preset-env": "^7.4.3"<%= "," if frontend_bundling_option == "webpack" || !postcss_option %>
34
+ "postcss-preset-env": "^7.4.3",
35
+ <%- if frontend_bundling_option == "esbuild" -%>
36
+ "read-cache": "^1.0.0"<%= "," unless postcss_option %>
37
+ <%- end -%>
35
38
  <%- end -%>
36
39
  <%- unless postcss_option -%>
37
40
  "sass": "^1.50.1",
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: 1.2.0.beta3
4
+ version: 1.2.0.beta5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-09 00:00:00.000000000 Z
11
+ date: 2023-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel