bridgetown-core 0.18.6 → 0.19.0
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/bridgetown-core.gemspec +1 -0
- data/lib/bridgetown-core.rb +15 -1
- data/lib/bridgetown-core/commands/new.rb +20 -1
- data/lib/bridgetown-core/filters.rb +1 -1
- data/lib/bridgetown-core/page_without_a_file.rb +3 -0
- data/lib/bridgetown-core/ruby_template_view.rb +0 -1
- data/lib/bridgetown-core/version.rb +2 -2
- 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} +14 -8
- 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} +24 -0
- metadata +21 -5
- 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: 5a0a5aeb69553f660c93b0f0a4026696fb075fbbaee350dab4591d43efc2268d
|
4
|
+
data.tar.gz: 97a706bb02102be600a8b5462612249c2ee4cf366ee5f994b70c6047f7746c00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb0ce9658edcf29ecd07cab05c0b3dd97cac66d710d7447257e16ce1df584d9257cd4cb9d0aaadac54a829918084ef00c90540d0b97d3437d4467719b8052130
|
7
|
+
data.tar.gz: d051bf13d11a911562854c3190a206c0a6b2b6c824be1ecf2786dde0766eb25b1fef8d0910b13795a574d2945bacbe175f818d85e68b52676788639285eec778
|
data/bridgetown-core.gemspec
CHANGED
data/lib/bridgetown-core.rb
CHANGED
@@ -29,8 +29,12 @@ 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"
|
34
38
|
require "hash_with_dot_access"
|
35
39
|
require "pathutil"
|
36
40
|
require "addressable/uri"
|
@@ -58,6 +62,16 @@ SafeYAML::OPTIONS[:suppress_warnings] = true
|
|
58
62
|
class Rb < String; end
|
59
63
|
SafeYAML::OPTIONS[:whitelisted_tags] = ["!ruby/string:Rb"]
|
60
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
|
+
|
61
75
|
module Bridgetown
|
62
76
|
# internal requires
|
63
77
|
autoload :Cleaner, "bridgetown-core/cleaner"
|
@@ -126,7 +140,7 @@ module Bridgetown
|
|
126
140
|
# Tells you which Bridgetown environment you are building in so
|
127
141
|
# you can skip tasks if you need to.
|
128
142
|
def environment
|
129
|
-
ENV["BRIDGETOWN_ENV"] || "development"
|
143
|
+
(ENV["BRIDGETOWN_ENV"] || "development").inquiry
|
130
144
|
end
|
131
145
|
alias_method :env, :environment
|
132
146
|
|
@@ -28,6 +28,9 @@ module Bridgetown
|
|
28
28
|
class_option :"skip-yarn",
|
29
29
|
type: :boolean,
|
30
30
|
desc: "Skip 'yarn install'"
|
31
|
+
class_option :"use-postcss",
|
32
|
+
type: :boolean,
|
33
|
+
desc: "Create an empty PostCSS configuration instead of using Sass"
|
31
34
|
|
32
35
|
DOCSURL = "https://bridgetownrb.com/docs"
|
33
36
|
|
@@ -47,6 +50,8 @@ module Bridgetown
|
|
47
50
|
raise ArgumentError, "You must specify a path." if args.empty?
|
48
51
|
|
49
52
|
new_site_path = File.expand_path(args.join(" "), Dir.pwd)
|
53
|
+
@site_name = new_site_path.split(File::SEPARATOR).last
|
54
|
+
|
50
55
|
if preserve_source_location?(new_site_path, options)
|
51
56
|
say_status :conflict, "#{new_site_path} exists and is not empty.", :red
|
52
57
|
Bridgetown.logger.abort_with "Ensure #{new_site_path} is empty or else " \
|
@@ -67,7 +72,7 @@ module Bridgetown
|
|
67
72
|
end
|
68
73
|
|
69
74
|
def create_site(new_site_path)
|
70
|
-
directory ".", ".", exclude_pattern: %r!\.erb|DS_Store$!
|
75
|
+
directory ".", ".", exclude_pattern: %r!\.erb|DS_Store$|\.(s[ac]|c)ss$!
|
71
76
|
FileUtils.chmod_R "u+w", new_site_path
|
72
77
|
|
73
78
|
template(
|
@@ -75,6 +80,20 @@ module Bridgetown
|
|
75
80
|
"src/_posts/#{Time.now.strftime("%Y-%m-%d")}-welcome-to-bridgetown.md"
|
76
81
|
)
|
77
82
|
template("Gemfile.erb", "Gemfile")
|
83
|
+
template("package.json.erb", "package.json")
|
84
|
+
template("webpack.config.js.erb", "webpack.config.js")
|
85
|
+
template("frontend/javascript/index.js.erb", "frontend/javascript/index.js")
|
86
|
+
|
87
|
+
options["use-postcss"] ? configure_postcss : configure_sass
|
88
|
+
end
|
89
|
+
|
90
|
+
def configure_sass
|
91
|
+
copy_file("frontend/styles/index.scss")
|
92
|
+
end
|
93
|
+
|
94
|
+
def configure_postcss
|
95
|
+
template("postcss.config.js.erb", "postcss.config.js")
|
96
|
+
copy_file("frontend/styles/index.css")
|
78
97
|
end
|
79
98
|
|
80
99
|
# After a new site has been created, print a success notification and
|
@@ -126,7 +126,7 @@ module Bridgetown
|
|
126
126
|
# @return [String] a link unreadable for bots but will be recovered on focus or mouseover
|
127
127
|
def obfuscate_link(input, prefix = "mailto")
|
128
128
|
link = "<a href=\"#{prefix}:#{input}\">#{input}</a>"
|
129
|
-
script = "<script type=\"text/javascript\">document.currentScript.insertAdjacentHTML("
|
129
|
+
script = "<script type=\"text/javascript\">document.currentScript.insertAdjacentHTML('"
|
130
130
|
script += "beforebegin', '#{rot47(link).gsub(%r!\\!, '\\\\\\')}'.replace(/[!-~]/g,"
|
131
131
|
script += "function(c){{var j=c.charCodeAt(0);if((j>=33)&&(j<=126)){"
|
132
132
|
script += "return String.fromCharCode(33+((j+ 14)%94));}"
|
@@ -7,6 +7,9 @@ module Bridgetown
|
|
7
7
|
# The class instance is basically just a bare-bones entity with just
|
8
8
|
# attributes "dir", "name", "path", "url" defined on it.
|
9
9
|
class PageWithoutAFile < Page
|
10
|
+
Bridgetown.logger.warn "NOTICE: the PageWithoutAFile class is deprecated and" \
|
11
|
+
" will be removed in Bridgetown 0.20."
|
12
|
+
|
10
13
|
def read_yaml(*)
|
11
14
|
@data ||= {}
|
12
15
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% if options["use-postcss"] %>
|
2
|
+
import "index.css"
|
3
|
+
<% else %>
|
4
|
+
import "index.scss"
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
// Import all javascript files from src/_components
|
8
|
+
const componentsContext = require.context("bridgetownComponents", true, /.js$/)
|
9
|
+
componentsContext.keys().forEach(componentsContext)
|
10
|
+
|
11
|
+
console.info("Bridgetown is loaded!")
|
@@ -0,0 +1,19 @@
|
|
1
|
+
:root {
|
2
|
+
--body-background: #fafafa;
|
3
|
+
--body-color: #444;
|
4
|
+
}
|
5
|
+
|
6
|
+
body {
|
7
|
+
background: var(--body-background);
|
8
|
+
color: var(--body-color);
|
9
|
+
font-family: sans-serif;
|
10
|
+
}
|
11
|
+
|
12
|
+
h1, nav, footer {
|
13
|
+
text-align: center;
|
14
|
+
}
|
15
|
+
|
16
|
+
main {
|
17
|
+
margin: 4rem auto;
|
18
|
+
max-width: 60rem;
|
19
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"name": "
|
2
|
+
"name": "<%= @site_name %>",
|
3
3
|
"version": "1.0.0",
|
4
4
|
"private": true,
|
5
5
|
"scripts": {
|
@@ -21,14 +21,20 @@
|
|
21
21
|
"babel-loader": "^8.1.0",
|
22
22
|
"browser-sync": "^2.26.7",
|
23
23
|
"concurrently": "^5.2.0",
|
24
|
-
"css-loader": "^3.
|
25
|
-
"file-loader": "^6.
|
26
|
-
"mini-css-extract-plugin": "^
|
24
|
+
"css-loader": "^4.3.0",
|
25
|
+
"file-loader": "^6.2.0",
|
26
|
+
"mini-css-extract-plugin": "^1.3.1",
|
27
|
+
<% if options["use-postcss"] %>
|
28
|
+
"postcss": "^8.1.9",
|
29
|
+
"postcss-flexbugs-fixes": "^4.1.0",
|
30
|
+
"postcss-loader": "^4.1.0",
|
31
|
+
"postcss-preset-env": "^6.7.0",
|
32
|
+
<% else %>
|
27
33
|
"node-sass": "^4.13.1",
|
28
|
-
"sass-loader": "^8.0.2",
|
29
|
-
|
30
|
-
"webpack": "^4.
|
34
|
+
"sass-loader": "^8.0.2",
|
35
|
+
<% end %>
|
36
|
+
"webpack": "^4.44.2",
|
31
37
|
"webpack-cli": "^3.3.11",
|
32
|
-
"webpack-manifest-plugin": "^2.
|
38
|
+
"webpack-manifest-plugin": "^2.1.0"
|
33
39
|
}
|
34
40
|
}
|
@@ -23,4 +23,4 @@ print_hi('Tom')
|
|
23
23
|
#=> prints 'Hi, Tom' to STDOUT.
|
24
24
|
````
|
25
25
|
|
26
|
-
Check out the [Bridgetown docs](https://bridgetownrb.com/docs/) for more info on how to get the most out of Bridgetown. File all bugs/feature requests at [Bridgetown’s GitHub repo](https://github.com/bridgetownrb/bridgetown). If you have questions, you can ask them on [Bridgetown
|
26
|
+
Check out the [Bridgetown docs](https://bridgetownrb.com/docs/) for more info on how to get the most out of Bridgetown. File all bugs/feature requests at [Bridgetown’s GitHub repo](https://github.com/bridgetownrb/bridgetown). If you have questions, you can ask them on [Bridgetown Discussions on GitHub](https://github.com/bridgetownrb/bridgetown/discussions).
|
@@ -18,6 +18,14 @@ module.exports = {
|
|
18
18
|
},
|
19
19
|
resolve: {
|
20
20
|
extensions: [".js", ".jsx"],
|
21
|
+
modules: [
|
22
|
+
path.resolve(__dirname, 'frontend', 'javascript'),
|
23
|
+
path.resolve(__dirname, 'frontend', 'styles'),
|
24
|
+
path.resolve('./node_modules')
|
25
|
+
],
|
26
|
+
alias: {
|
27
|
+
bridgetownComponents: path.resolve(__dirname, "src", "_components")
|
28
|
+
}
|
21
29
|
},
|
22
30
|
plugins: [
|
23
31
|
new MiniCssExtractPlugin({
|
@@ -48,6 +56,21 @@ module.exports = {
|
|
48
56
|
},
|
49
57
|
},
|
50
58
|
},
|
59
|
+
<% if options["use-postcss"] %>
|
60
|
+
{
|
61
|
+
test: /\.(s[ac]|c)ss$/,
|
62
|
+
use: [
|
63
|
+
MiniCssExtractPlugin.loader,
|
64
|
+
{
|
65
|
+
loader: "css-loader",
|
66
|
+
options: {
|
67
|
+
importLoaders: 1
|
68
|
+
}
|
69
|
+
},
|
70
|
+
"postcss-loader"
|
71
|
+
],
|
72
|
+
},
|
73
|
+
<% else %>
|
51
74
|
{
|
52
75
|
test: /\.(s[ac]|c)ss$/,
|
53
76
|
use: [
|
@@ -65,6 +88,7 @@ module.exports = {
|
|
65
88
|
},
|
66
89
|
],
|
67
90
|
},
|
91
|
+
<% end %>
|
68
92
|
{
|
69
93
|
test: /\.woff2?$|\.ttf$|\.eot$|\.svg$/,
|
70
94
|
loader: "file-loader",
|
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.
|
4
|
+
version: 0.19.0
|
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-
|
11
|
+
date: 2020-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -304,6 +304,20 @@ dependencies:
|
|
304
304
|
- - "~>"
|
305
305
|
- !ruby/object:Gem::Version
|
306
306
|
version: '2.0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: webrick
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - "~>"
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '1.7'
|
314
|
+
type: :runtime
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - "~>"
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '1.7'
|
307
321
|
description: Bridgetown is a Webpack-aware, Ruby-powered static site generator for
|
308
322
|
the modern Jamstack era
|
309
323
|
email: maintainers@bridgetownrb.com
|
@@ -435,11 +449,13 @@ files:
|
|
435
449
|
- lib/site_template/.gitignore
|
436
450
|
- lib/site_template/Gemfile.erb
|
437
451
|
- lib/site_template/bridgetown.config.yml
|
438
|
-
- lib/site_template/frontend/javascript/index.js
|
452
|
+
- lib/site_template/frontend/javascript/index.js.erb
|
453
|
+
- lib/site_template/frontend/styles/index.css
|
439
454
|
- lib/site_template/frontend/styles/index.scss
|
440
|
-
- lib/site_template/package.json
|
455
|
+
- lib/site_template/package.json.erb
|
441
456
|
- lib/site_template/plugins/builders/.keep
|
442
457
|
- lib/site_template/plugins/site_builder.rb
|
458
|
+
- lib/site_template/postcss.config.js.erb
|
443
459
|
- lib/site_template/src/404.html
|
444
460
|
- lib/site_template/src/_components/footer.liquid
|
445
461
|
- lib/site_template/src/_components/head.liquid
|
@@ -457,7 +473,7 @@ files:
|
|
457
473
|
- lib/site_template/src/posts.md
|
458
474
|
- lib/site_template/start.js
|
459
475
|
- lib/site_template/sync.js
|
460
|
-
- lib/site_template/webpack.config.js
|
476
|
+
- lib/site_template/webpack.config.js.erb
|
461
477
|
homepage: https://www.bridgetownrb.com
|
462
478
|
licenses:
|
463
479
|
- MIT
|