bridgetown-core 0.18.5 → 0.19.3
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.
- checksums.yaml +4 -4
- data/bin/bridgetown +6 -0
- data/bridgetown-core.gemspec +3 -3
- data/lib/bridgetown-core.rb +24 -2
- data/lib/bridgetown-core/commands/apply.rb +4 -3
- data/lib/bridgetown-core/commands/concerns/actions.rb +0 -5
- data/lib/bridgetown-core/commands/configure.rb +62 -0
- data/lib/bridgetown-core/commands/new.rb +28 -1
- data/lib/bridgetown-core/commands/plugins.rb +1 -0
- data/lib/bridgetown-core/configurations/.keep +0 -0
- data/lib/bridgetown-core/configurations/bt-postcss.rb +26 -0
- data/lib/bridgetown-core/configurations/bt-postcss/postcss.config.js +21 -0
- data/lib/bridgetown-core/configurations/minitesting.rb +95 -0
- data/lib/bridgetown-core/configurations/netlify.rb +6 -0
- data/lib/bridgetown-core/configurations/netlify/netlify.sh +14 -0
- data/lib/bridgetown-core/configurations/netlify/netlify.toml +44 -0
- data/lib/bridgetown-core/configurations/purgecss.rb +49 -0
- data/lib/bridgetown-core/configurations/stimulus.rb +49 -0
- data/lib/bridgetown-core/configurations/swup.rb +37 -0
- data/lib/bridgetown-core/configurations/tailwindcss.rb +29 -0
- data/lib/bridgetown-core/configurations/tailwindcss/css_imports.css +4 -0
- data/lib/bridgetown-core/configurations/tailwindcss/postcss.config.js +12 -0
- data/lib/bridgetown-core/configurations/turbo.rb +16 -0
- data/lib/bridgetown-core/converters/erb_templates.rb +6 -13
- data/lib/bridgetown-core/filters.rb +3 -3
- data/lib/bridgetown-core/generator.rb +2 -1
- data/lib/bridgetown-core/page_without_a_file.rb +3 -0
- data/lib/bridgetown-core/plugin.rb +2 -26
- data/lib/bridgetown-core/ruby_template_view.rb +9 -2
- data/lib/bridgetown-core/utils/ruby_exec.rb +4 -4
- data/lib/bridgetown-core/version.rb +2 -2
- data/lib/site_template/README.md +70 -0
- data/lib/site_template/frontend/javascript/index.js.erb +11 -0
- data/lib/site_template/frontend/styles/index.css +19 -0
- data/lib/site_template/{package.json → package.json.erb} +16 -9
- data/lib/site_template/postcss.config.js.erb +11 -0
- data/lib/site_template/src/_components/footer.liquid +1 -1
- data/lib/site_template/src/_posts/0000-00-00-welcome-to-bridgetown.md.erb +1 -1
- data/lib/site_template/{webpack.config.js → webpack.config.js.erb} +42 -2
- metadata +41 -23
- data/lib/site_template/frontend/javascript/index.js +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad7d5025a99240586457a8afa4aa3e9a9aba0e289484ff855648bd772b89e7a9
|
4
|
+
data.tar.gz: 1ea0ad14dc78ca7465f7ff93bab6e178ec18b336e08641ac18bf75cf655b7246
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95b1542d9fa33741d18832a026aa43e720f99520b8367b12672e2689c7be19200e0cedd53b8070666c15e7594af43dec3c1885fa8570e6c7daf463afcae3405f
|
7
|
+
data.tar.gz: '00048d6aa2ca15728544ecbf46ee05b4b813630a03a0f35154b45096a2f9720ea645e23faac13fcab18a85e395fa6782eee522cbd39248b88b0f2a80a7fcff41'
|
data/bin/bridgetown
CHANGED
@@ -5,6 +5,12 @@ STDOUT.sync = true
|
|
5
5
|
|
6
6
|
$LOAD_PATH.unshift File.expand_path("../../bridgetown/lib", __dir__)
|
7
7
|
|
8
|
+
# Used by commands/automations
|
9
|
+
require "active_support"
|
10
|
+
require "active_support/core_ext/array/extract_options"
|
11
|
+
require "active_support/core_ext/string/strip"
|
12
|
+
require "active_support/core_ext/string/indent"
|
13
|
+
|
8
14
|
require "bridgetown"
|
9
15
|
|
10
16
|
Bridgetown::PluginManager.require_from_bundler
|
data/bridgetown-core.gemspec
CHANGED
@@ -42,14 +42,14 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.add_runtime_dependency("i18n", "~> 1.0")
|
43
43
|
s.add_runtime_dependency("kramdown", "~> 2.1")
|
44
44
|
s.add_runtime_dependency("kramdown-parser-gfm", "~> 1.0")
|
45
|
-
s.add_runtime_dependency("liquid", "~>
|
45
|
+
s.add_runtime_dependency("liquid", "~> 5.0")
|
46
46
|
s.add_runtime_dependency("liquid-component", ">= 0.1")
|
47
|
-
s.add_runtime_dependency("liquid-render-tag", "~> 0.2")
|
48
47
|
s.add_runtime_dependency("listen", "~> 3.0")
|
49
48
|
s.add_runtime_dependency("pathutil", "~> 0.9")
|
50
49
|
s.add_runtime_dependency("rouge", "~> 3.0")
|
51
50
|
s.add_runtime_dependency("safe_yaml", "~> 1.0")
|
52
51
|
s.add_runtime_dependency("terminal-table", "~> 1.8")
|
53
|
-
s.add_runtime_dependency("thor", "~> 1.
|
52
|
+
s.add_runtime_dependency("thor", "~> 1.1")
|
54
53
|
s.add_runtime_dependency("tilt", "~> 2.0")
|
54
|
+
s.add_runtime_dependency("webrick", "~> 1.7")
|
55
55
|
end
|
data/lib/bridgetown-core.rb
CHANGED
@@ -29,14 +29,18 @@ require "csv"
|
|
29
29
|
require "json"
|
30
30
|
|
31
31
|
# 3rd party
|
32
|
+
require "active_support"
|
33
|
+
require "active_support/core_ext/hash/keys"
|
32
34
|
require "active_support/core_ext/object/blank"
|
33
35
|
require "active_support/core_ext/string/inflections"
|
36
|
+
require "active_support/core_ext/string/inquiry"
|
37
|
+
require "active_support/core_ext/string/starts_ends_with"
|
38
|
+
require "active_support/descendants_tracker"
|
34
39
|
require "hash_with_dot_access"
|
35
40
|
require "pathutil"
|
36
41
|
require "addressable/uri"
|
37
42
|
require "safe_yaml/load"
|
38
43
|
require "liquid"
|
39
|
-
require "liquid-render-tag"
|
40
44
|
require "liquid-component"
|
41
45
|
require "kramdown"
|
42
46
|
require "colorator"
|
@@ -44,12 +48,30 @@ require "i18n"
|
|
44
48
|
require "faraday"
|
45
49
|
require "thor"
|
46
50
|
|
51
|
+
module HashWithDotAccess
|
52
|
+
class Hash # :nodoc:
|
53
|
+
def to_liquid
|
54
|
+
to_h.to_liquid
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
47
59
|
SafeYAML::OPTIONS[:suppress_warnings] = true
|
48
60
|
|
49
61
|
# Create our little String subclass for Ruby Front Matter
|
50
62
|
class Rb < String; end
|
51
63
|
SafeYAML::OPTIONS[:whitelisted_tags] = ["!ruby/string:Rb"]
|
52
64
|
|
65
|
+
if RUBY_VERSION.start_with?("3.0")
|
66
|
+
# workaround for Ruby 3 preview 2, maybe can remove later
|
67
|
+
# rubocop:disable Style/GlobalVars
|
68
|
+
old_verbose = $VERBOSE
|
69
|
+
$VERBOSE = nil
|
70
|
+
SafeYAML::SafeToRubyVisitor.const_set(:INITIALIZE_ARITY, 2)
|
71
|
+
$verbose = old_verbose
|
72
|
+
# rubocop:enable Style/GlobalVars
|
73
|
+
end
|
74
|
+
|
53
75
|
module Bridgetown
|
54
76
|
# internal requires
|
55
77
|
autoload :Cleaner, "bridgetown-core/cleaner"
|
@@ -118,7 +140,7 @@ module Bridgetown
|
|
118
140
|
# Tells you which Bridgetown environment you are building in so
|
119
141
|
# you can skip tasks if you need to.
|
120
142
|
def environment
|
121
|
-
ENV["BRIDGETOWN_ENV"] || "development"
|
143
|
+
(ENV["BRIDGETOWN_ENV"] || "development").inquiry
|
122
144
|
end
|
123
145
|
alias_method :env, :environment
|
124
146
|
|
@@ -26,6 +26,7 @@ module Bridgetown
|
|
26
26
|
|
27
27
|
def apply_automation
|
28
28
|
@source_paths = [Dir.pwd]
|
29
|
+
@logger = Bridgetown.logger
|
29
30
|
|
30
31
|
if options[:apply]
|
31
32
|
apply_after_new_command
|
@@ -33,9 +34,9 @@ module Bridgetown
|
|
33
34
|
apply_in_pwd
|
34
35
|
end
|
35
36
|
rescue SystemExit => e
|
36
|
-
|
37
|
+
@logger.error "Problem occurred while running automation:"
|
37
38
|
e.backtrace[0..3].each do |backtrace_line|
|
38
|
-
|
39
|
+
@logger.info backtrace_line if backtrace_line.include?(":in `apply'")
|
39
40
|
end
|
40
41
|
raise e
|
41
42
|
end
|
@@ -66,7 +67,7 @@ module Bridgetown
|
|
66
67
|
apply_from_url automation_command
|
67
68
|
end
|
68
69
|
rescue ArgumentError => e
|
69
|
-
|
70
|
+
@logger.warn "Oops!", e.message
|
70
71
|
end
|
71
72
|
end
|
72
73
|
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Mostly not used here, but may come in handy in new automations
|
4
|
-
require "active_support/core_ext/array/extract_options"
|
5
|
-
require "active_support/core_ext/string/strip"
|
6
|
-
require "active_support/core_ext/string/indent"
|
7
|
-
|
8
3
|
module Bridgetown
|
9
4
|
module Commands
|
10
5
|
module Actions
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bridgetown
|
4
|
+
module Commands
|
5
|
+
class Configure < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
extend Summarizable
|
8
|
+
|
9
|
+
Registrations.register do
|
10
|
+
register(Configure, "configure", "configure CONFIGURATION", Configure.summary)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.banner
|
14
|
+
"bridgetown configure CONFIGURATION(S)"
|
15
|
+
end
|
16
|
+
summary "Set up bundled Bridgetown configurations"
|
17
|
+
|
18
|
+
def self.exit_on_failure?
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
22
|
+
def perform_configurations
|
23
|
+
logger = Bridgetown.logger
|
24
|
+
list_configurations if args.empty?
|
25
|
+
|
26
|
+
args.each do |configuration|
|
27
|
+
configure configuration
|
28
|
+
rescue Thor::Error
|
29
|
+
logger.error "Error:".red, "🚨 Configuration doesn't exist: #{configuration}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.source_root
|
34
|
+
File.expand_path("../configurations", __dir__)
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
def configure(configuration)
|
40
|
+
configuration_file = find_in_source_paths("#{configuration}.rb")
|
41
|
+
|
42
|
+
inside(New.created_site_dir || Dir.pwd) do
|
43
|
+
Apply.new.invoke(:apply_automation, [configuration_file])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def list_configurations
|
48
|
+
say "Please specify a valid packaged configuration from the below list:\n\n"
|
49
|
+
configurations.each do |configuration|
|
50
|
+
configuration = set_color configuration, :blue, :bold
|
51
|
+
say configuration
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def configurations
|
56
|
+
inside self.class.source_root do
|
57
|
+
return Dir.glob("*.rb").map { |file| file.sub(".rb", "") }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -19,6 +19,10 @@ module Bridgetown
|
|
19
19
|
aliases: "-a",
|
20
20
|
banner: "PATH|URL",
|
21
21
|
desc: "Apply an automation after creating the site scaffold"
|
22
|
+
class_option :configure,
|
23
|
+
aliases: "-c",
|
24
|
+
banner: "CONFIGURATION(S)",
|
25
|
+
desc: "Comma separated list of bundled configurations to perform"
|
22
26
|
class_option :force,
|
23
27
|
type: :boolean,
|
24
28
|
desc: "Force creation even if PATH already exists"
|
@@ -28,6 +32,9 @@ module Bridgetown
|
|
28
32
|
class_option :"skip-yarn",
|
29
33
|
type: :boolean,
|
30
34
|
desc: "Skip 'yarn install'"
|
35
|
+
class_option :"use-postcss",
|
36
|
+
type: :boolean,
|
37
|
+
desc: "Create an empty PostCSS configuration instead of using Sass"
|
31
38
|
|
32
39
|
DOCSURL = "https://bridgetownrb.com/docs"
|
33
40
|
|
@@ -47,6 +54,8 @@ module Bridgetown
|
|
47
54
|
raise ArgumentError, "You must specify a path." if args.empty?
|
48
55
|
|
49
56
|
new_site_path = File.expand_path(args.join(" "), Dir.pwd)
|
57
|
+
@site_name = new_site_path.split(File::SEPARATOR).last
|
58
|
+
|
50
59
|
if preserve_source_location?(new_site_path, options)
|
51
60
|
say_status :conflict, "#{new_site_path} exists and is not empty.", :red
|
52
61
|
Bridgetown.logger.abort_with "Ensure #{new_site_path} is empty or else " \
|
@@ -67,7 +76,7 @@ module Bridgetown
|
|
67
76
|
end
|
68
77
|
|
69
78
|
def create_site(new_site_path)
|
70
|
-
directory ".", ".", exclude_pattern: %r!\.erb|DS_Store$!
|
79
|
+
directory ".", ".", exclude_pattern: %r!\.erb|DS_Store$|\.(s[ac]|c)ss$!
|
71
80
|
FileUtils.chmod_R "u+w", new_site_path
|
72
81
|
|
73
82
|
template(
|
@@ -75,12 +84,27 @@ module Bridgetown
|
|
75
84
|
"src/_posts/#{Time.now.strftime("%Y-%m-%d")}-welcome-to-bridgetown.md"
|
76
85
|
)
|
77
86
|
template("Gemfile.erb", "Gemfile")
|
87
|
+
template("package.json.erb", "package.json")
|
88
|
+
template("webpack.config.js.erb", "webpack.config.js")
|
89
|
+
template("frontend/javascript/index.js.erb", "frontend/javascript/index.js")
|
90
|
+
|
91
|
+
options["use-postcss"] ? configure_postcss : configure_sass
|
92
|
+
end
|
93
|
+
|
94
|
+
def configure_sass
|
95
|
+
copy_file("frontend/styles/index.scss")
|
96
|
+
end
|
97
|
+
|
98
|
+
def configure_postcss
|
99
|
+
template("postcss.config.js.erb", "postcss.config.js")
|
100
|
+
copy_file("frontend/styles/index.css")
|
78
101
|
end
|
79
102
|
|
80
103
|
# After a new site has been created, print a success notification and
|
81
104
|
# then automatically execute bundle install from within the new site dir
|
82
105
|
# unless the user opts to skip 'bundle install'.
|
83
106
|
# rubocop:todo Metrics/CyclomaticComplexity
|
107
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
84
108
|
def after_install(path, cli_path, options = {})
|
85
109
|
git_init path
|
86
110
|
|
@@ -91,6 +115,7 @@ module Bridgetown
|
|
91
115
|
yarn_install path unless options["skip-yarn"]
|
92
116
|
|
93
117
|
invoke(Apply, [], options) if options[:apply]
|
118
|
+
invoke(Configure, options[:configure].split(","), {}) if options[:configure]
|
94
119
|
|
95
120
|
logger = Bridgetown.logger
|
96
121
|
yarn_start = "yarn start"
|
@@ -111,6 +136,7 @@ module Bridgetown
|
|
111
136
|
logger.info "Yarn install skipped.".yellow if @skipped_yarn
|
112
137
|
end
|
113
138
|
# rubocop:enable Metrics/CyclomaticComplexity
|
139
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
114
140
|
|
115
141
|
def bundle_install(path)
|
116
142
|
unless Bridgetown.environment == "test"
|
@@ -132,6 +158,7 @@ module Bridgetown
|
|
132
158
|
unless Bridgetown.environment == "test"
|
133
159
|
inside(path) do
|
134
160
|
run "git init", abort_on_failure: true
|
161
|
+
run "if [[ -n $(git status | grep 'On branch master') ]]; then git checkout -b main; fi"
|
135
162
|
end
|
136
163
|
end
|
137
164
|
rescue SystemExit
|
@@ -150,6 +150,7 @@ module Bridgetown
|
|
150
150
|
inside name do # rubocop:todo Metrics/BlockLength
|
151
151
|
run "rm -rf .git"
|
152
152
|
run "git init"
|
153
|
+
run "if [[ -n $(git status | grep 'On branch master') ]]; then git checkout -b main; fi"
|
153
154
|
|
154
155
|
run "mv bridgetown-sample-plugin.gemspec #{new_gemspec}"
|
155
156
|
gsub_file new_gemspec, "https://github.com/bridgetownrb/bridgetown-sample-plugin", "https://github.com/username/#{name}"
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable all
|
4
|
+
|
5
|
+
TEMPLATE_PATH = File.expand_path("./bt-postcss", __dir__)
|
6
|
+
|
7
|
+
begin
|
8
|
+
find_in_source_paths("postcss.config.js")
|
9
|
+
rescue Thor::Error
|
10
|
+
error_message = "#{"postcss.config.js".bold} not found. Please configure postcss in your project."
|
11
|
+
|
12
|
+
@logger.error "\nError:".red, "🚨 #{error_message}"
|
13
|
+
@logger.info "\nFor new projects, you can use #{"bridgetown new my_project --use-postcss".bold.blue}\n"
|
14
|
+
|
15
|
+
return
|
16
|
+
end
|
17
|
+
|
18
|
+
plugins = %w(postcss-easy-import postcss-mixins postcss-color-function cssnano)
|
19
|
+
|
20
|
+
say "Adding the following PostCSS plugins: #{plugins.join(' | ')}", :green
|
21
|
+
run "yarn add -D #{plugins.join(' ')}"
|
22
|
+
|
23
|
+
remove_file "postcss.config.js"
|
24
|
+
copy_file "#{TEMPLATE_PATH}/postcss.config.js", "postcss.config.js"
|
25
|
+
|
26
|
+
# rubocop:enable all
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module.exports = {
|
2
|
+
plugins: {
|
3
|
+
'postcss-easy-import': {},
|
4
|
+
'postcss-mixins': {},
|
5
|
+
'postcss-color-function': {},
|
6
|
+
'postcss-flexbugs-fixes': {},
|
7
|
+
'postcss-preset-env': {
|
8
|
+
autoprefixer: {
|
9
|
+
flexbox: 'no-2009'
|
10
|
+
},
|
11
|
+
stage: 2,
|
12
|
+
features: {
|
13
|
+
'nesting-rules': true,
|
14
|
+
'custom-media-queries': true
|
15
|
+
},
|
16
|
+
},
|
17
|
+
'cssnano' : {
|
18
|
+
preset: 'default'
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable all
|
4
|
+
|
5
|
+
say_status :minitesting, "Adding test gems, package.json scripts, and examples"
|
6
|
+
|
7
|
+
append_to_file "Gemfile" do
|
8
|
+
<<~GEMS
|
9
|
+
\n
|
10
|
+
group :test, optional: true do
|
11
|
+
gem "nokogiri"
|
12
|
+
gem "minitest"
|
13
|
+
gem "minitest-profile"
|
14
|
+
gem "minitest-reporters"
|
15
|
+
gem "shoulda"
|
16
|
+
gem "rails-dom-testing"
|
17
|
+
end
|
18
|
+
GEMS
|
19
|
+
end
|
20
|
+
|
21
|
+
new_scripts = ' "test": "BRIDGETOWN_ENV=test yarn build",'
|
22
|
+
new_scripts += "\n" + ' "deploy:test": "bundle install --with test && yarn deploy"'
|
23
|
+
package_json = "package.json"
|
24
|
+
script_regex = %r{"scripts": \{(\s+".*,?)*}
|
25
|
+
inject_into_file(package_json, ",\n" + new_scripts, after: script_regex)
|
26
|
+
|
27
|
+
create_file "test/helper.rb" do
|
28
|
+
<<~RUBY
|
29
|
+
require "nokogiri"
|
30
|
+
require "minitest/autorun"
|
31
|
+
require "minitest/reporters"
|
32
|
+
require "minitest/profile"
|
33
|
+
require "shoulda"
|
34
|
+
require "rails-dom-testing"
|
35
|
+
# Report with color.
|
36
|
+
Minitest::Reporters.use! [
|
37
|
+
Minitest::Reporters::DefaultReporter.new(
|
38
|
+
color: true
|
39
|
+
),
|
40
|
+
]
|
41
|
+
Minitest::Test.class_eval do
|
42
|
+
include Rails::Dom::Testing::Assertions
|
43
|
+
def site
|
44
|
+
@site ||= Bridgetown.sites.first
|
45
|
+
end
|
46
|
+
def nokogiri(input)
|
47
|
+
input.respond_to?(:output) ? Nokogiri::HTML(input.output) : Nokogiri::HTML(input)
|
48
|
+
end
|
49
|
+
def document_root(root)
|
50
|
+
@document_root = root.is_a?(Nokogiri::XML::Document) ? root : nokogiri(root)
|
51
|
+
end
|
52
|
+
def document_root_element
|
53
|
+
if @document_root.nil?
|
54
|
+
raise "Call `document_root' with a Nokogiri document before testing your assertions"
|
55
|
+
end
|
56
|
+
@document_root
|
57
|
+
end
|
58
|
+
end
|
59
|
+
RUBY
|
60
|
+
end
|
61
|
+
|
62
|
+
create_file "test/test_homepage.rb" do
|
63
|
+
<<~RUBY
|
64
|
+
require_relative "./helper"
|
65
|
+
class TestHomepage < Minitest::Test
|
66
|
+
context "homepage" do
|
67
|
+
setup do
|
68
|
+
page = site.pages.find { |doc| doc.url == "/" }
|
69
|
+
document_root page
|
70
|
+
end
|
71
|
+
should "exist" do
|
72
|
+
assert_select "body"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
RUBY
|
77
|
+
end
|
78
|
+
|
79
|
+
create_file "plugins/test_output.rb" do
|
80
|
+
<<~RUBY
|
81
|
+
unless Bridgetown.environment == "development"
|
82
|
+
Bridgetown::Hooks.register :site, :post_write do
|
83
|
+
# Load test suite to run on exit
|
84
|
+
require "nokogiri"
|
85
|
+
Dir["test/**/*.rb"].each { |file| require_relative("../\#{file}") }
|
86
|
+
rescue LoadError
|
87
|
+
Bridgetown.logger.warn "Testing:", "To run tests, you must first run \`bundle install --with test\`"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
RUBY
|
91
|
+
end
|
92
|
+
|
93
|
+
say_status :minitesting, "All set! To get started, look at test/test_homepage.rb and then run \`yarn test\`"
|
94
|
+
|
95
|
+
# rubocop:enable all
|