bridgetown-core 0.18.6 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|