bridgetown-core 0.21.0.beta3 → 0.21.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc153d4826e8e0678bea76a9e2c251040123418ab9cfe0b1243b7f38cb8f1ec5
4
- data.tar.gz: '08d6c10878993b10963dc1a89058c8b0a9dbd57a5ed2b399963a68ea537ea5f8'
3
+ metadata.gz: 2082873c6388655e983a22a2629e5d25ac322095c5bcc1dbbd6a4d7ee9b28957
4
+ data.tar.gz: b6952e9d9b9cee1470da8d3dd5e170b1ec331a3e6fe7ce41128943ff0db6f7a0
5
5
  SHA512:
6
- metadata.gz: 7151ae352509556c2b6b7e524e56186a3c782746dc1f2090756a37e9325c9153e48a03daf720e64fd0450e472a43b96c3e9b90ec53896d409881ab33b8aabea0
7
- data.tar.gz: 42289c4f1da1116e37fa50bdb49345264e2a56a719f1e76691eb294721a1b4c834909ab7dc22691d238bec4df509c6680c479fa7b6fec8831f69d79bee8fef6b
6
+ metadata.gz: 25d4e5d41be9a9b88e46d402726253fe400cd2d53d133e75337204ae3daafd7b41e275d3dbafa7bebf7d70f13de641371b3142251e746f4a2ba70238f9657d26
7
+ data.tar.gz: d51d1a5c5d6e9a714fac3f24b722b91e8a5fc9f1d42ab750060daa8f34999d460e55ac237f2a534e370795f978209c8249a7750d76f986e98aae84938293064e
@@ -86,10 +86,10 @@ module Bridgetown
86
86
  )
87
87
  template("Gemfile.erb", "Gemfile")
88
88
  template("package.json.erb", "package.json")
89
- template("webpack.config.js.erb", "webpack.config.js")
90
89
  template("frontend/javascript/index.js.erb", "frontend/javascript/index.js")
91
90
 
92
91
  options["use-postcss"] ? configure_postcss : configure_sass
92
+ invoke(Webpack, ["setup"], {})
93
93
  end
94
94
 
95
95
  def configure_sass
@@ -140,7 +140,7 @@ module Bridgetown
140
140
  # rubocop:enable Metrics/PerceivedComplexity
141
141
 
142
142
  def bundle_install(path)
143
- unless Bridgetown.environment == "test"
143
+ unless Bridgetown.environment.test?
144
144
  require "bundler"
145
145
  Bridgetown.with_unbundled_env do
146
146
  inside(path) do
@@ -156,7 +156,7 @@ module Bridgetown
156
156
  end
157
157
 
158
158
  def git_init(path)
159
- unless Bridgetown.environment == "test"
159
+ unless Bridgetown.environment.test?
160
160
  inside(path) do
161
161
  initialize_new_repo
162
162
  end
@@ -166,7 +166,7 @@ module Bridgetown
166
166
  end
167
167
 
168
168
  def yarn_install(path)
169
- unless Bridgetown.environment == "test"
169
+ unless Bridgetown.environment.test?
170
170
  inside(path) do
171
171
  run "yarn install", abort_on_failure: true
172
172
  end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Commands
5
+ class Webpack < Thor::Group
6
+ include Thor::Actions
7
+ extend Summarizable
8
+
9
+ Registrations.register do
10
+ register(Webpack, "webpack", "webpack ACTION", Webpack.summary)
11
+ end
12
+
13
+ def self.banner
14
+ "bridgetown webpack ACTION"
15
+ end
16
+ summary "Perform actions on the bridgetown webpack configuration"
17
+
18
+ def self.exit_on_failure?
19
+ true
20
+ end
21
+
22
+ def webpack
23
+ @logger = Bridgetown.logger
24
+ return show_actions if args.empty?
25
+
26
+ action = args.first
27
+ if supported_actions.include?(action)
28
+ perform action
29
+ else
30
+ @logger.error "Error:".red, "🚨 Please enter a valid action."
31
+ say "\n"
32
+ show_actions
33
+ end
34
+ end
35
+
36
+ def self.source_root
37
+ File.expand_path("./webpack", __dir__)
38
+ end
39
+
40
+ def self.destination_root
41
+ config.root_dir
42
+ end
43
+
44
+ def config
45
+ @config ||= Bridgetown.configuration({ root_dir: Dir.pwd })
46
+ end
47
+
48
+ protected
49
+
50
+ def perform(action)
51
+ automation = find_in_source_paths("#{action}.rb")
52
+ inside(New.created_site_dir || Dir.pwd) do
53
+ apply automation, verbose: false
54
+ end
55
+ end
56
+
57
+ def show_actions
58
+ say "Available actions:\n".bold
59
+
60
+ longest_action = supported_actions.keys.max_by(&:size).size
61
+ supported_actions.each do |action, description|
62
+ say action.ljust(longest_action).to_s.bold.blue + "\t" + "# #{description}"
63
+ end
64
+ end
65
+
66
+ def supported_actions
67
+ {
68
+ setup: "Sets up a webpack integration with Bridgetown in your project",
69
+ update: "Updates the Bridgetown webpack defaults to the latest available version",
70
+ "enable-postcss": "Configures PostCSS in your project",
71
+ }.with_indifferent_access
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ default_postcss_config = File.expand_path("../../../site_template/postcss.config.js.erb", __dir__)
4
+
5
+ template default_postcss_config, "postcss.config.js"
6
+ template "webpack.defaults.js.erb", "config/webpack.defaults.js", force: true
7
+
8
+ unless Bridgetown.environment.test?
9
+ packages = %w(postcss@8.3.0 postcss-loader@4.3.0 postcss-flexbugs-fixes postcss-preset-env)
10
+ run "yarn add -D #{packages.join(" ")}"
11
+ run "yarn remove sass sass-loader"
12
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ template "webpack.defaults.js.erb", "config/webpack.defaults.js"
4
+ copy_file "webpack.config.js", force: true
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ template "webpack.defaults.js.erb", "config/webpack.defaults.js", force: true
@@ -0,0 +1,18 @@
1
+ const config = require("./config/webpack.defaults.js")
2
+
3
+ // Add any overrides to the default webpack config here:
4
+
5
+ // Eg:
6
+ //
7
+ // ```
8
+ // const path = require("path")
9
+ // config.resolve.modules.push(path.resolve(__dirname, 'frontend', 'components'))
10
+ // config.resolve.alias.frontendComponents = path.resolve(__dirname, 'frontend', 'components')
11
+ // ```
12
+
13
+
14
+
15
+
16
+ ////////////////////////////////////////////////////////
17
+
18
+ module.exports = config
@@ -1,10 +1,21 @@
1
+ // This file is created and managed by Bridgetown.
2
+ // Instead of editing this file, add your overrides to `webpack.config.js`
3
+ //
4
+ // To update this file to the latest version provided by Bridgetown,
5
+ // run `bridgetown webpack update`. Any changes to this file will be overwritten
6
+ // when an update is applied hence we strongly recommend adding overrides to
7
+ // `webpack.config.js` instead of editing this file.
8
+ //
9
+ // Shipped with Bridgetown v<%= Bridgetown::VERSION %>
10
+
1
11
  const path = require("path");
12
+ const rootDir = path.resolve(__dirname, "..")
2
13
  const MiniCssExtractPlugin = require("mini-css-extract-plugin");
3
14
  const ManifestPlugin = require("webpack-manifest-plugin");
4
15
 
5
16
  module.exports = {
6
17
  entry: {
7
- main: "./frontend/javascript/index.js"
18
+ main: path.resolve(rootDir, "frontend", "javascript", "index.js")
8
19
  },
9
20
  devtool: "source-map",
10
21
  // Set some or all of these to true if you want more verbose logging:
@@ -15,18 +26,18 @@ module.exports = {
15
26
  children: false,
16
27
  },
17
28
  output: {
18
- path: path.resolve(__dirname, "output", "_bridgetown", "static", "js"),
29
+ path: path.resolve(rootDir, "output", "_bridgetown", "static", "js"),
19
30
  filename: "[name].[contenthash].js",
20
31
  },
21
32
  resolve: {
22
33
  extensions: [".js", ".jsx"],
23
34
  modules: [
24
- path.resolve(__dirname, 'frontend', 'javascript'),
25
- path.resolve(__dirname, 'frontend', 'styles'),
26
- path.resolve('./node_modules')
35
+ path.resolve(rootDir, 'frontend', 'javascript'),
36
+ path.resolve(rootDir, 'frontend', 'styles'),
37
+ path.resolve(rootDir, 'node_modules')
27
38
  ],
28
39
  alias: {
29
- bridgetownComponents: path.resolve(__dirname, "src", "_components")
40
+ bridgetownComponents: path.resolve(rootDir, "src", "_components")
30
41
  }
31
42
  },
32
43
  plugins: [
@@ -34,7 +45,7 @@ module.exports = {
34
45
  filename: "../css/[name].[contenthash].css",
35
46
  }),
36
47
  new ManifestPlugin({
37
- fileName: path.resolve(__dirname, ".bridgetown-webpack", "manifest.json"),
48
+ fileName: path.resolve(rootDir, ".bridgetown-webpack", "manifest.json"),
38
49
  }),
39
50
  ],
40
51
  module: {
@@ -54,11 +65,12 @@ module.exports = {
54
65
  helpers: false,
55
66
  },
56
67
  ],
68
+ ["@babel/plugin-proposal-private-methods", { "loose": true }],
57
69
  ],
58
70
  },
59
71
  },
60
72
  },
61
- <% if options["use-postcss"] %>
73
+ <% if self.config.uses_postcss? %>
62
74
  {
63
75
  test: /\.(s[ac]|c)ss$/,
64
76
  use: [
@@ -91,7 +103,7 @@ module.exports = {
91
103
  sassOptions: {
92
104
  fiber: false,
93
105
  includePaths: [
94
- path.resolve(__dirname, "src/_components")
106
+ path.resolve(rootDir, "src/_components")
95
107
  ],
96
108
  },
97
109
  },
@@ -119,4 +131,4 @@ module.exports = {
119
131
  },
120
132
  ],
121
133
  },
122
- };
134
+ };
@@ -30,24 +30,24 @@ module Bridgetown
30
30
  #
31
31
  # @param ext [String] erb, slim, etc.
32
32
  def renderer_for_ext(ext, &block)
33
- case ext
34
- when "erb"
35
- include ERBCapture
36
- Tilt::ErubiTemplate.new(component_template_path,
37
- outvar: "@_erbout",
38
- bufval: "Bridgetown::OutputBuffer.new",
39
- engine_class: Bridgetown::ERBEngine,
40
- &block)
41
- when "serb" # requires serbea
42
- include Serbea::Helpers
43
- Tilt::SerbeaTemplate.new(component_template_path, &block)
44
- when "slim" # requires bridgetown-slim
45
- Slim::Template.new(component_template_path, &block)
46
- when "haml" # requires bridgetown-haml
47
- Tilt::HamlTemplate.new(component_template_path, &block)
48
- else
49
- raise NameError
50
- end
33
+ @_tmpl ||= case ext
34
+ when "erb"
35
+ include ERBCapture
36
+ Tilt::ErubiTemplate.new(component_template_path,
37
+ outvar: "@_erbout",
38
+ bufval: "Bridgetown::OutputBuffer.new",
39
+ engine_class: Bridgetown::ERBEngine,
40
+ &block)
41
+ when "serb" # requires serbea
42
+ include Serbea::Helpers
43
+ Tilt::SerbeaTemplate.new(component_template_path, &block)
44
+ when "slim" # requires bridgetown-slim
45
+ Slim::Template.new(component_template_path, &block)
46
+ when "haml" # requires bridgetown-haml
47
+ Tilt::HamlTemplate.new(component_template_path, &block)
48
+ else
49
+ raise NameError
50
+ end
51
51
  rescue NameError, LoadError
52
52
  raise "No component rendering engine could be found for .#{ext} templates"
53
53
  end
@@ -56,26 +56,32 @@ module Bridgetown
56
56
  #
57
57
  # @return [String]
58
58
  def component_template_path
59
- stripped_path = File.join(
60
- File.dirname(source_location),
61
- File.basename(source_location, ".*")
62
- )
63
- supported_template_extensions.each do |ext|
64
- test_path = "#{stripped_path}.#{ext}"
65
- return test_path if File.exist?(test_path)
66
-
67
- test_path = "#{stripped_path}.html.#{ext}"
68
- return test_path if File.exist?(test_path)
59
+ @_tmpl_path ||= begin
60
+ stripped_path = File.join(
61
+ File.dirname(source_location),
62
+ File.basename(source_location, ".*")
63
+ )
64
+ supported_template_extensions.each do |ext|
65
+ test_path = "#{stripped_path}.#{ext}"
66
+ break test_path if File.exist?(test_path)
67
+
68
+ test_path = "#{stripped_path}.html.#{ext}"
69
+ break test_path if File.exist?(test_path)
70
+ end
71
+ end
72
+
73
+ unless @_tmpl_path.is_a?(String)
74
+ raise "#{name}: no matching template could be found in #{File.dirname(source_location)}"
69
75
  end
70
76
 
71
- raise "No matching templates could be found in #{File.dirname(source_location)}"
77
+ @_tmpl_path
72
78
  end
73
79
 
74
80
  # Read the template file.
75
81
  #
76
82
  # @return [String]
77
83
  def component_template_content
78
- File.read(component_template_path)
84
+ @_tmpl_content ||= File.read(component_template_path)
79
85
  end
80
86
 
81
87
  # A list of extensions supported by the renderer
@@ -154,7 +160,6 @@ module Bridgetown
154
160
  end
155
161
 
156
162
  def _renderer
157
- # TODO: figure out a way to compile templates for increased performance
158
163
  @_renderer ||= begin
159
164
  ext = File.extname(self.class.component_template_path).delete_prefix(".")
160
165
  self.class.renderer_for_ext(ext) { self.class.component_template_content }
@@ -11,7 +11,7 @@ module Bridgetown
11
11
  end
12
12
 
13
13
  def no_layout?
14
- data["layout"] == "none" || data["layout"] == false
14
+ data.layout.nil? || data.layout == "none" || data.layout == false
15
15
  end
16
16
  end
17
17
  end
@@ -118,7 +118,7 @@ module Bridgetown
118
118
  # override - the command-line options hash
119
119
  #
120
120
  # Returns the path to the Bridgetown root directory
121
- def root_dir(override)
121
+ def root_dir(override = "")
122
122
  get_config_value_with_override("root_dir", override)
123
123
  end
124
124
 
@@ -127,7 +127,7 @@ module Bridgetown
127
127
  # override - the command-line options hash
128
128
  #
129
129
  # Returns the path to the Bridgetown source directory
130
- def source(override)
130
+ def source(override = "")
131
131
  get_config_value_with_override("source", override)
132
132
  end
133
133
 
@@ -226,7 +226,7 @@ module Bridgetown
226
226
  raise ArgumentError, "Configuration file: (INVALID) #{file}".yellow
227
227
  end
228
228
 
229
- Bridgetown.logger.info "Configuration file:", file
229
+ Bridgetown.logger.debug "Configuration file:", file
230
230
  next_config
231
231
  rescue SystemCallError
232
232
  if @default_config_file ||= nil
@@ -340,5 +340,12 @@ module Bridgetown
340
340
 
341
341
  self
342
342
  end
343
+
344
+ # Whether or not PostCSS is being used to process stylesheets.
345
+ #
346
+ # @return [Boolean] true if `postcss.config.js` exists, false if not
347
+ def uses_postcss?
348
+ File.exist?(Bridgetown.sanitized_path(root_dir, "postcss.config.js"))
349
+ end
343
350
  end
344
351
  end
@@ -8,17 +8,19 @@ unless File.exist?("postcss.config.js")
8
8
  error_message = "#{"postcss.config.js".bold} not found. Please configure postcss in your project."
9
9
 
10
10
  @logger.error "\nError:".red, "🚨 #{error_message}"
11
- @logger.info "\nFor new projects, you can use #{"bridgetown new my_project --use-postcss".bold.blue}\n"
11
+ @logger.info "\nRun #{"bridgetown webpack enable-postcss".bold.blue} to set it up.\n"
12
12
 
13
13
  return
14
14
  end
15
15
 
16
+ confirm = ask "This configuration will ovewrite your existing #{"postcss.config.js".bold.white}. Would you like to continue? [Yn]"
17
+ return unless confirm.casecmp?("Y")
18
+
16
19
  plugins = %w(postcss-easy-import postcss-mixins postcss-color-function cssnano)
17
20
 
18
21
  say "Adding the following PostCSS plugins: #{plugins.join(' | ')}", :green
19
22
  run "yarn add -D #{plugins.join(' ')}"
20
23
 
21
- remove_file "postcss.config.js"
22
- copy_file "#{TEMPLATE_PATH}/postcss.config.js", "postcss.config.js"
24
+ copy_file "#{TEMPLATE_PATH}/postcss.config.js", "postcss.config.js", force: true
23
25
 
24
26
  # rubocop:enable all
@@ -8,16 +8,18 @@ unless File.exist?("postcss.config.js")
8
8
  error_message = "#{"postcss.config.js".bold} not found. Please configure postcss in your project."
9
9
 
10
10
  @logger.error "\nError:".red, "🚨 #{error_message}"
11
- @logger.info "\nFor new projects, you can use #{"bridgetown new my_project --use-postcss".bold.blue}\n"
11
+ @logger.info "\nRun #{"bridgetown webpack enable-postcss".bold.blue} to set it up.\n"
12
12
 
13
13
  return
14
14
  end
15
15
 
16
+ confirm = ask "This configuration will ovewrite your existing #{"postcss.config.js".bold.white}. Would you like to continue? [Yn]"
17
+ return unless confirm.casecmp?("Y")
18
+
16
19
  run "yarn add -D tailwindcss"
17
20
  run "npx tailwindcss init"
18
21
 
19
- remove_file "postcss.config.js"
20
- copy_file "#{TEMPLATE_PATH}/postcss.config.js", "postcss.config.js"
22
+ copy_file "#{TEMPLATE_PATH}/postcss.config.js", "postcss.config.js", force: true
21
23
 
22
24
  prepend_to_file "frontend/styles/index.css",
23
25
  File.read("#{TEMPLATE_PATH}/css_imports.css")
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Handles Legacy Pages
3
+ # Handles Generated Pages
4
4
  Bridgetown::Hooks.register :pages, :post_init, reloadable: false do |page|
5
5
  if page.class != Bridgetown::PrototypePage && page.data["prototype"].is_a?(Hash)
6
6
  Bridgetown::PrototypeGenerator.add_matching_template(page)
@@ -14,6 +14,11 @@ Bridgetown::Hooks.register :resources, :post_read, reloadable: false do |resourc
14
14
  end
15
15
  end
16
16
 
17
+ # Ensure sites clear out templates before rebuild
18
+ Bridgetown::Hooks.register :site, :after_reset, reloadable: false do |_site|
19
+ Bridgetown::PrototypeGenerator.matching_templates.clear
20
+ end
21
+
17
22
  module Bridgetown
18
23
  class PrototypeGenerator < Generator
19
24
  priority :low
@@ -21,9 +26,9 @@ module Bridgetown
21
26
  # @return [Bridgetown::Site]
22
27
  attr_reader :site
23
28
 
24
- # @return [Array<Bridgetown::Page, Bridgetown::Resource::Base>]
29
+ # @return [Set<Bridgetown::Page, Bridgetown::Resource::Base>]
25
30
  def self.matching_templates
26
- @matching_templates ||= []
31
+ @matching_templates ||= Set.new
27
32
  end
28
33
 
29
34
  def self.add_matching_template(template)
@@ -41,6 +46,8 @@ module Bridgetown
41
46
  end
42
47
 
43
48
  if prototype_pages.length.positive?
49
+ ensure_pagination_enabled
50
+
44
51
  page_list.reject! do |page|
45
52
  prototype_pages.include? page
46
53
  end
@@ -56,6 +63,15 @@ module Bridgetown
56
63
  end
57
64
  end
58
65
 
66
+ def ensure_pagination_enabled
67
+ unless @site.config.dig(:pagination, :enabled)
68
+ Bridgetown.logger.warn(
69
+ "Pagination:",
70
+ "Must be enabled for prototype pages to contain matches"
71
+ )
72
+ end
73
+ end
74
+
59
75
  # Check incoming prototype configuration and normalize options.
60
76
  #
61
77
  # @param prototype_page [Bridgetown::Page, Bridgetown::Resource::Base]
@@ -70,7 +86,12 @@ module Bridgetown
70
86
  @configured_collection = prototype_page.data["prototype"]["collection"]
71
87
  end
72
88
 
73
- return nil unless site.collections[@configured_collection]
89
+ unless site.collections[@configured_collection]
90
+ Bridgetown.logger.warn(
91
+ "No collection specified for prototype page #{prototype_page.relative_path}"
92
+ )
93
+ return nil
94
+ end
74
95
 
75
96
  # Categories and Tags are unique in that singular and plural front matter
76
97
  # can be present for each
@@ -39,12 +39,22 @@ module Bridgetown
39
39
  # Gets/Sets the document output (for layout-compatible converters)
40
40
  attr_accessor :current_document_output
41
41
 
42
+ # Determines the label a layout should use based on its filename
43
+ #
44
+ # @param file [String]
45
+ # @return [String]
46
+ def self.label_for_file(file)
47
+ # TODO: refactor this so multi-extension layout filenames don't leak
48
+ # middle extensions into layout label
49
+ file.split(".")[0..-2].join(".")
50
+ end
51
+
42
52
  # Initialize a new Layout.
43
53
  #
44
- # site - The Site.
45
- # base - The String path to the source.
46
- # name - The String filename of the layout file.
47
- # from_plugin - true if the layout comes from a Gem-based plugin folder.
54
+ # @param site [Bridgetown::Site]
55
+ # @param base [String] The path to the source.
56
+ # @param name [String] The filename of the layout file.
57
+ # @param from_plugin [Boolean] if the layout comes from a Gem-based plugin folder.
48
58
  def initialize(site, base, name, from_plugin: false)
49
59
  @site = site
50
60
  @base = base
@@ -83,17 +93,24 @@ module Bridgetown
83
93
  end
84
94
  end
85
95
 
86
- # The inspect string for this document.
87
- # Includes the relative path and the collection label.
96
+ # The label of the layout (should match what would used in front matter
97
+ # references).
88
98
  #
89
- # Returns the inspect string for this document.
99
+ # @return [String]
100
+ def label
101
+ @label ||= self.class.label_for_file(name)
102
+ end
103
+
104
+ # The inspect string for this layout. Includes the relative path.
105
+ #
106
+ # @return [String]
90
107
  def inspect
91
- "#<#{self.class} #{@path}>"
108
+ "#<#{self.class} #{relative_path}>"
92
109
  end
93
110
 
94
- # Provide this Layout's data to a Hash suitable for use by Liquid.
111
+ # Provide this Layout's data for use by Liquid.
95
112
  #
96
- # Returns the Hash representation of this Layout.
113
+ # @return [HashWithDotAccess::Hash]
97
114
  def to_liquid
98
115
  data
99
116
  end
@@ -44,7 +44,7 @@ module Bridgetown
44
44
  end
45
45
 
46
46
  def layout_name(file)
47
- file.split(".")[0..-2].join(".")
47
+ Layout.label_for_file(file)
48
48
  end
49
49
 
50
50
  def within(directory)
@@ -42,6 +42,22 @@ module Bridgetown
42
42
  model.collection
43
43
  end
44
44
 
45
+ # Layout associated with this resource
46
+ # This will output a warning if the layout can't be found.
47
+ #
48
+ # @return [Bridgetown::Layout]
49
+ def layout
50
+ return @layout if @layout
51
+ return if no_layout?
52
+
53
+ @layout = site.layouts[data.layout].tap do |layout|
54
+ unless layout
55
+ Bridgetown.logger.warn "Resource:", "Layout '#{data.layout}' " \
56
+ "requested via #{relative_path} does not exist."
57
+ end
58
+ end
59
+ end
60
+
45
61
  # The relative path of source file or file-like origin
46
62
  #
47
63
  # @return [Pathname]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "0.21.0.beta3"
4
+ VERSION = "0.21.0.beta4"
5
5
  CODE_NAME = "Broughton Beach"
6
6
  end
@@ -127,6 +127,7 @@ module Bridgetown
127
127
 
128
128
  def process(site, time, options)
129
129
  begin
130
+ I18n.reload! # make sure any locale files get read again
130
131
  Bridgetown::Hooks.trigger :site, :pre_reload, site
131
132
  Bridgetown::Hooks.clear_reloadable_hooks
132
133
  site.plugin_manager.reload_plugin_files
File without changes
@@ -25,9 +25,9 @@
25
25
  "file-loader": "^6.2.0",
26
26
  "mini-css-extract-plugin": "^1.3.1",
27
27
  <% if options["use-postcss"] %>
28
- "postcss": "^8.1.9",
28
+ "postcss": "^8.3.0",
29
29
  "postcss-flexbugs-fixes": "^4.1.0",
30
- "postcss-loader": "^4.1.0",
30
+ "postcss-loader": "^4.3.0",
31
31
  "postcss-preset-env": "^6.7.0",
32
32
  <% else %>
33
33
  "sass": "^1.32.8",
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.21.0.beta3
4
+ version: 0.21.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-15 00:00:00.000000000 Z
11
+ date: 2021-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -323,6 +323,12 @@ files:
323
323
  - lib/bridgetown-core/commands/registrations.rb
324
324
  - lib/bridgetown-core/commands/serve.rb
325
325
  - lib/bridgetown-core/commands/serve/servlet.rb
326
+ - lib/bridgetown-core/commands/webpack.rb
327
+ - lib/bridgetown-core/commands/webpack/enable-postcss.rb
328
+ - lib/bridgetown-core/commands/webpack/setup.rb
329
+ - lib/bridgetown-core/commands/webpack/update.rb
330
+ - lib/bridgetown-core/commands/webpack/webpack.config.js
331
+ - lib/bridgetown-core/commands/webpack/webpack.defaults.js.erb
326
332
  - lib/bridgetown-core/component.rb
327
333
  - lib/bridgetown-core/concerns/data_accessible.rb
328
334
  - lib/bridgetown-core/concerns/front_matter_importer.rb
@@ -450,6 +456,7 @@ files:
450
456
  - lib/site_template/Gemfile.erb
451
457
  - lib/site_template/README.md
452
458
  - lib/site_template/bridgetown.config.yml
459
+ - lib/site_template/config/.keep
453
460
  - lib/site_template/frontend/javascript/index.js.erb
454
461
  - lib/site_template/frontend/styles/index.css
455
462
  - lib/site_template/frontend/styles/index.scss
@@ -474,7 +481,6 @@ files:
474
481
  - lib/site_template/src/posts.md
475
482
  - lib/site_template/start.js
476
483
  - lib/site_template/sync.js
477
- - lib/site_template/webpack.config.js.erb
478
484
  homepage: https://www.bridgetownrb.com
479
485
  licenses:
480
486
  - MIT